1. DFAの最小化:教科書P65質問9
ソリューション:
私 |
{1,2,3,4,5} |
{6,7} |
|
{1,2} B - > {2} {3,4} B - > {6,7} {5} B-> ε
|
{6,7} |
II |
{1,2} {3,4} {5} |
{6,7} |
|
{3} C - > {3}、{4} C - > {3} {3} D - > {5}、{4} D - > {5} {3} B - > {6}、{4} B - > {7} 従って区別できない{3,4}
{1} B - > {2}、{2} B - > {2} {1} - > {3} {2} - > {4} 従って区別できない{1,2} |
{6,7}区別できません |
したがって、変換行列が最小化されます
|
|
A |
B |
C |
D |
1 |
{1,2} |
{3,4} |
{1,2} |
|
|
2 |
{3,4} |
|
{6,7} |
{3,4} |
{5} |
3 |
{5} |
{3,4} |
|
|
|
4 |
{6,7} |
|
{6,7} |
|
|
そのため、DFAの最小化
2. DFA対応する文法の最小構成
S→0A | 1B
A→1S | 1
B→0S | 0
ソリューション:
S-> 0(1S | 1)| 1(0S | 0)
S-> 01S | 01 | 10S | 10
S-> 01S | 10S | 01 | 10
S - >(01 | 10)S |(01 | 10)
S - >(01 | 10)*(01 | 10)
これは、NFAです
変換行列でDFAに変換します。
|
|
0 |
1 |
1 |
ε {S} = {} SAD |
{} EC |
{BG} |
2 |
{} EC |
|
ε{によって} = {} ADF |
3 |
{BG} |
ε{によって} = {} ADF |
|
4 |
{ADF} |
{} EC |
{BG} |
DFAグラフを変換して得られる行列
私 |
{1,2,3} |
{4} |
|
{1} 0 - > {2} {2} 0-> ε {3} 0 - > {4}
|
{4} |
II |
{1} {2} {3} |
{4} |
一番最初に見つけたので、DFAを最小にするよう、DFAのほとんどされています
3.与えられる以下の文法 G [ S ]:
S → AB
A → を1aA | ɛ
B → B | bBで
给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么?
解:
S -> AB
S -> aAB
S -> aaAB
S -> aaaAB
S -> aaaɛB
S -> aaaɛb
S -> aaab
回溯产生的原因:反复提取公共左因子
4.P100 练习4,反复提取公共左因子,对文法进行改写
解:
A->a( ɛ |C) | bAA
A->aA' | bAA
B->b( ɛ |C) | aBB
B->bB' | aBB
C->bA | aB
C->baA' | aB
C->a(bA' | B)
C->bAA | bB'