构造下列正规式相应的DFA
(1) | 1(0|1)*101 |
(2) | 1(1010*|1(010)*1)*0 |
(3) | 0*10*10*10* |
(4) | (00|11)*((01|10)(00|11)*(01|10)(00|11)*)* |
复习概念:
NFA转换为DFA
能发生转换的数据为 1 , 0 , ϵ 1, 0, \epsilon 1,0,ϵ,初态为 0 0 0,且它的 ϵ \epsilon ϵ闭包为 { 0 } \{0\} {0}, 所以不妨先求出 I = 0 的 I 0 与 I 1 I=0的I_0与I_1 I=0的I0与I1
I 0 I_0 I0表示,从 I I I的元素出发,只经过一次 0 0 0状态转化可以到达的元素集合
I 1 I_1 I1表示,从 I I I的元素出发,只经过一次 1 1 1状态转化可以到达的元素集合
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
{ 0 } \{0\} {0} | ∅ \empty ∅ | { 1 , 2 , 3 } \{1,2,3\} {1,2,3} |
这里产生了新的非空集合 { 1 , 2 , 3 } \{1,2,3\} {1,2,3},需要对该集合作为新的 I I I进行处理
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
{ 1 , 2 , 3 } \{1,2,3\} {1,2,3} | { 2 , 3 } \{2,3\} {2,3} | { 2 , 3 , 4 } \{2,3,4\} {2,3,4} |
注意, ϵ \epsilon ϵ变化直接默认放进去 |
于是产生了新的集合 { 2 , 3 } \{2,3\} {2,3}和 { 2 , 3 , 4 } \{2,3,4\} {2,3,4},继续对新集合产生上述操作
最后得到全部 状态转换矩阵
I I I | I 0 I_0 I0 | I 1 I_1 I1 | 说明 |
---|---|---|---|
{ 0 } \{0\} {0} | ∅ \empty ∅ | { 1 , 2 , 3 } \{1,2,3\} {1,2,3} | 新集合 { 1 , 2 , 3 } \{1,2,3\} {1,2,3} |
{ 1 , 2 , 3 } \{1,2,3\} {1,2,3} | { 2 , 3 } \{2,3\} {2,3} | { 2 , 3 , 4 } \{2,3,4\} {2,3,4} | 新集合 { 2 , 3 } \{2,3\} {2,3}, { 2 , 3 , 4 } \{2,3,4\} {2,3,4},1没有0的状态转移,删去 |
{ 2 , 3 } \{2,3\} {2,3} | { 2 , 3 } \{2,3\} {2,3} | { 2 , 3 , 4 } \{2,3,4\} {2,3,4} | 无新集合 |
{ 2 , 3 , 4 } \{2,3,4\} {2,3,4} | { 2 , 3 , 5 } \{2,3,5\} {2,3,5} | { 2 , 3 , 4 } \{2,3,4\} {2,3,4} | 新集合 { 2 , 3 , 5 } \{2,3,5\} {2,3,5} |
{ 2 , 3 , 5 } \{2,3,5\} {2,3,5} | { 2 , 3 } \{2,3\} {2,3} | { 2 , 3 , 4 , 6 } \{2,3,4,6\} {2,3,4,6} | 新集合 { 2 , 3 , 4 , 6 } \{2,3,4,6\} {2,3,4,6},注意5没有0的状态转移,删去 |
{ 2 , 3 , 4 , 6 } \{2,3,4,6\} {2,3,4,6} | { 2 , 3 , 5 } \{2,3,5\} {2,3,5} | { 2 , 3 , 4 } \{2,3,4\} {2,3,4} | 无新集合 |
∅ \empty ∅ | ∅ \empty ∅ | ∅ \empty ∅ | 无新集合 |
重命名
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
0 | ∅ \empty ∅ | 1 |
1 | 2 | 3 |
2 | 2 | 3 |
3 | 4 | 3 |
4 | 2 | 5 |
5 | 4 | 3 |
∅ \empty ∅ | ∅ \empty ∅ | ∅ \empty ∅ |
然后我们还需要最小化状态转换矩阵,我们对所有的状态有如下定义
综上我们要去掉前两种状态,并合并等价状态
首先删去空集状态,其为死状态。
然后能到达原NFA中6
状态的都是终态,也就是说重命名后的状态5
为终态,记 { 5 } \{5\} {5}为 I ( 2 ) I^{(2)} I(2);剩余状态0,1,2,3,4
为非终态, 记 { 0 , 1 , 2 , 3 , 4 } \{0,1,2,3,4\} {0,1,2,3,4}为 I ( 1 ) I^{(1)} I(1);
不难发现 { 5 } \{5\} {5}无法划分,
I 0 ( 1 ) = { 2 , 4 } I 1 ( 1 ) = { 1 , 3 , 5 } I^{(1)}_0 = \{2,4\}\quad I^{(1)}_1 = \{1,3,5\} I0(1)={2,4}I1(1)={1,3,5}
其中 { 1 , 3 , 5 } \{1,3,5\} {1,3,5}不包含于任何划分,需要拆分 I ( 1 ) I^{(1)} I(1)
注意到只有4
经过1
到达5
,需要将4
划分出来
变成
{ 0 , 1 , 2 , 3 } 记为 I ( 11 ) { 4 } 记为 I ( 12 ) \{0,1,2,3\}\quad记为I^{(11)}\\ \{4\}\quad 记为I^{(12)} {0,1,2,3}记为I(11){4}记为I(12)
显然 I ( 12 ) I^{(12)} I(12)无法划分,继续考察 I ( 11 ) I^{(11)} I(11)
I 0 ( 11 ) = { 2 , 4 } I 1 ( 11 ) = { 1 , 3 } I^{(11)}_0 = \{2,4\}\quad I^{(11)}_1 = \{1, 3\} I0(11)={2,4}I1(11)={1,3}
{ 2 , 4 } \{2,4\} {2,4}不包含于任何划分
注意到只有3
经过0
到达4
,需要将3
划分出来
{ 0 , 1 , 2 } 记为 I ( t m p ) { 3 } 记为 I ( 112 ) \{0,1,2\}\quad记为I^{(tmp)}\\ \{3\}\quad 记为I^{(112)} {0,1,2}记为I(tmp){3}记为I(112)
I 0 ( t m p ) = { 2 } I 1 ( t m p ) = { 1 , 3 } I^{(tmp)}_0 = \{2\}\quad I^{(tmp)}_1 =\{1,3\} I0(tmp)={2}I1(tmp)={1,3}
划分之后发现 { 1 , 3 } \{1,3\} {1,3}也不被包含于新的划分了,需要继续划分 I ( t m p ) I^{(tmp)} I(tmp):0通过1转化为1,所以将0划分
{ 1 , 2 } 记为 I ( 111 ) { 0 } 记为 I ( 113 ) \{1,2\} \quad 记为 I^{(111)} \\ \{0\}\quad记为I^{(113)} {1,2}记为I(111){0}记为I(113)
最后得到划分
{ 0 } { 1 , 2 } { 3 } { 4 } { 5 } \{0\}\{1,2\}\{3\}\{4\}\{5\} {0}{1,2}{3}{4}{5}
并重命名为 0,1,2,3,4
得到最简状态矩阵转换表
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
0 | 1 | |
1 | 1 | 2 |
2 | 3 | 2 |
3 | 1 | 4 |
4 | 3 | 2 |
对于 1(1010*|1(010)*1)*0
被()*
包围住的部分可以使用循环来表示
然后进入循环的部分两旁使用 ϵ \epsilon ϵ进行循环的离开
如 1010* 和 1(010)*1可以表示为如下NFA
整体的NFA如下
初始状态转换矩阵
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
{ 0 } \{0\} {0} | ∅ \empty ∅ | { 1 , 2 , 12 } \{1,2,12\} {1,2,12} |
{ 1 , 2 , 12 } \{1,2,12\} {1,2,12} | { 13 } \{13\} {13} | { 3 , 7 , 8 , 9 } \{3,7,8,9\} {3,7,8,9} |
{ 13 } \{13\} {13} | ∅ \empty ∅ | ∅ \empty ∅ |
{ 3 , 7 , 8 , 9 } \{3,7,8,9\} {3,7,8,9} | { 4 , 10 } \{4,10\} {4,10} | { 2 , 12 } \{2,12\} {2,12} |
{ 4 , 10 } \{4,10\} {4,10} | ∅ \empty ∅ | { 5 , 6 , 2 , 12 , 11 } \{5,6,2,12,11\} {5,6,2,12,11} |
{ 2 , 12 } \{2,12\} {2,12} | { 13 } \{13\} {13} | { 3 , 7 , 8 , 9 } \{3,7,8,9\} {3,7,8,9} |
{ 2 , 5 , 6 , 12 , 11 } \{2,5,6,12,11\} {2,5,6,12,11} | { 2 , 6 , 8 , 9 , 12 , 13 } \{2,6,8,9,12,13\} {2,6,8,9,12,13} | { 3 , 7 , 8 , 9 } \{3,7,8,9\} {3,7,8,9} |
{ 2 , 6 , 8 , 9 , 12 , 13 } \{2,6,8,9,12, 13\} {2,6,8,9,12,13} | { 2 , 6 , 10 , 12 , 13 } \{2,6,10,12,13\} {2,6,10,12,13} | { 2 , 3 , 7 , 8 , 9 , 12 } \{2,3,7,8,9,12\} {2,3,7,8,9,12} |
{ 2 , 6 , 10 , 12 , 13 } \{2,6,10,12,13\} {2,6,10,12,13} | { 2 , 6 , 12 , 13 } \{2,6,12,13\} {2,6,12,13} | { 3 , 7 , 8 , 9 , 11 } \{3,7,8,9,11\} {3,7,8,9,11} |
{ 2 , 6 , 12 , 13 } \{2,6,12,13\} {2,6,12,13} | { 2 , 6 , 12 , 13 } \{2,6,12,13\} {2,6,12,13} | { 3 , 7 , 8 , 9 } \{3,7,8,9\} {3,7,8,9} |
{ 2 , 3 , 7 , 8 , 9 , 12 } \{2,3,7,8,9,12\} {2,3,7,8,9,12} | { 4 , 10 , 13 } \{4,10,13\} {4,10,13} | { 2 , 3 , 7 , 8 , 9 , 12 } \{2,3,7,8,9,12\} {2,3,7,8,9,12} |
{ 3 , 7 , 8 , 9 , 11 } \{3,7,8,9,11\} {3,7,8,9,11} | { 4 , 8 , 9 , 10 } \{4,8,9,10\} {4,8,9,10} | { 2 , 12 } \{2,12\} {2,12} |
{ 4 , 10 , 13 } \{4,10,13\} {4,10,13} | ∅ \empty ∅ | { 2 , 5 , 6 , 11 , 12 } \{2,5,6,11,12\} {2,5,6,11,12} |
{ 4 , 8 , 9 , 10 } \{4,8,9,10\} {4,8,9,10} | { 10 } \{10\} {10} | { 2 , 5 , 6 , 11 , 12 } \{2,5,6,11,12\} {2,5,6,11,12} |
{ 10 } \{10\} {10} | ∅ \empty ∅ | { 11 } \{11\} {11} |
{ 11 } \{11\} {11} | { 8 , 9 } \{8,9\} {8,9} | ∅ \empty ∅ |
{ 8 , 9 } \{8,9\} {8,9} | { 10 } \{10\} {10} | { 2 , 12 } \{2,12\} {2,12} |
重命名
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
0 | ∅ | 1 |
1 | 2 | 3 |
3 | 4 | 5 |
4 | ∅ | 6 |
5 | 2 | 3 |
6 | 7 | 3 |
7 | 8 | 10 |
8 | 9 | 11 |
9 | 9 | 3 |
10 | 12 | 10 |
11 | 13 | 5 |
12 | ∅ | 6 |
13 | 14 | 6 |
14 | ∅ | 15 |
15 | 16 | ∅ |
16 | 14 | 5 |
终态集合 { 2 , 7 , 8 , 9 , 12 } \{2,7,8,9,12\} {2,7,8,9,12},
非终态集合 { 1 , 3 , 4 , 5 , 6 , 10 , 11 } \{1,3,4,5,6,10,11\} {1,3,4,5,6,10,11}
拆分后有
{ 1 , 5 } , { 0 } , { 2 } , { 3 } , { 4 } , { 6 } , { 7 } , { 8 } , { 9 } , { 10 } , { 11 } , { 12 } , { 13 } , { 14 } , { 15 } , { 16 } \{1, 5\} , \{0\} , \{2\}, \{3\} , \{4\} , \{6\} ,\{7\} , \{8\} , \{9\}, \{10\} , \{11\} , \{12\}, \{13\}, \{14\} , \{15\}, \{16\} {1,5},{0},{2},{3},{4},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16}
1和5合并为1后,状态图如下
0*10*10*10*的NFA如下图
初态 I I I集合为 { 0 , 1 , 2 } \{0,1,2\} {0,1,2}
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
{ 0 , 1 , 2 } \{0,1,2\} {0,1,2} | { 1 , 2 } \{1,2\} {1,2} | { 3 , 4 , 5 } \{3,4,5\} {3,4,5} |
{ 1 , 2 } \{1,2\} {1,2} | { 1 , 2 } \{1,2\} {1,2} | { 3 , 4 , 5 } \{3,4,5\} {3,4,5} |
{ 3 , 4 , 5 } \{3,4,5\} {3,4,5} | { 4 , 5 } \{4,5\} {4,5} | { 6 , 7 , 8 } \{6,7,8\} {6,7,8} |
{ 4 , 5 } \{4,5\} {4,5} | { 4 , 5 } \{4,5\} {4,5} | { 6 , 7 , 8 } \{6,7,8\} {6,7,8} |
{ 6 , 7 , 8 } \{6,7,8\} {6,7,8} | { 7 , 8 } \{7,8\} {7,8} | { 9 , 10 , 11 } \{9,10,11\} {9,10,11} |
{ 7 , 8 } \{7,8\} {7,8} | { 7 , 8 } \{7,8\} {7,8} | { 9 , 10 , 11 } \{9,10,11\} {9,10,11} |
{ 9 , 10 , 11 } \{9,10,11\} {9,10,11} | { 10 , 11 } \{10,11\} {10,11} | ∅ \empty ∅ |
{ 10 , 11 } \{10,11\} {10,11} | { 10 , 11 } \{10,11\} {10,11} | ∅ \empty ∅ |
重命名
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
0 | 1 | 2 |
1 | 1 | 2 |
2 | 3 | 4 |
3 | 3 | 4 |
4 | 5 | 6 |
5 | 5 | 6 |
6 | 7 | ∅ |
7 | 7 | ∅ |
得到未化简DFA
非终态 { 0 , 1 , 2 , 3 , 4 , 5 } \{0,1,2,3,4,5\} {0,1,2,3,4,5};终态 { 6 , 7 } \{6,7\} {6,7}
显然 { 6 , 7 } \{6,7\} {6,7}无须划分
I ( 1 ) I^{(1)} I(1) | I 0 ( 1 ) I^{(1)}_0 I0(1) | I 1 ( 1 ) I^{(1)}_1 I1(1) |
---|---|---|
{ 0 , 1 , 2 , 3 , 4 , 5 } \{0,1,2,3,4,5\} {0,1,2,3,4,5} | { 1 , 3 , 5 } \{1,3,5\} {1,3,5} | { 2 , 4 , 6 } \{2,4,6\} {2,4,6} |
{ 2 , 4 , 6 } \{2,4,6\} {2,4,6}不包含于任何划分,需要将能转换为6的状态 4 , 5 4,5 4,5划分
I ( 11 ) = { 0 , 1 , 2 , 3 } I ( 12 ) = { 4 , 5 } I^{(11)} = \{0,1,2,3\}\quad I^{(12)} = \{4,5\} I(11)={0,1,2,3}I(12)={4,5}
同理继续划分
I ( 11 ) I^{(11)} I(11) | I 0 ( 11 ) I^{(11)}_0 I0(11) | I 1 ( 11 ) I^{(11)}_1 I1(11) |
---|---|---|
{ 0 , 1 , 2 , 3 } \{0,1,2,3\} {0,1,2,3} | { 1 , 3 } \{1,3\} {1,3} | { 2 , 4 } \{2,4\} {2,4} |
将3与2划分出 I ( 11 ) I^{(11)} I(11) | ||
I ( 111 ) = { 0 , 1 } I ( 112 ) = { 2 , 3 } I^{(111)} = \{0,1\}\quad I^{(112)} = \{2,3\} I(111)={0,1}I(112)={2,3} |
最后的划分
{ 0 , 1 } { 2 , 3 } { 4 , 5 } { 6 , 7 } \{0,1\}\quad\{2,3\}\quad\{4,5\}\quad\{6,7\} {0,1}{2,3}{4,5}{6,7}
经检验,他们经0、1转换后的集合都包含于现有划分
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
{ 0 , 1 } \{0,1\} {0,1} | { 1 } ⊆ { 0 , 1 } \{1\}\sube\{0,1\} {1}⊆{0,1} | { 2 } ⊆ { 2 , 3 } \{2\}\sube\{2,3\} {2}⊆{2,3} |
{ 2 , 3 } \{2,3\} {2,3} | { 3 } ⊆ { 2 , 3 } \{3\}\sube\{2,3\} {3}⊆{2,3} | { 4 } ⊆ { 4 , 5 } \{4\}\sube\{4,5\} {4}⊆{4,5} |
{ 4 , 5 } \{4,5\} {4,5} | { 5 } ⊆ { 4 , 5 } \{5\}\sube\{4,5\} {5}⊆{4,5} | { 6 } ⊆ { 6 , 7 } \{6\}\sube\{6,7\} {6}⊆{6,7} |
{ 6 , 7 } \{6,7\} {6,7} | { 6 } ⊆ { 6 , 7 } \{6\}\sube\{6,7\} {6}⊆{6,7} |
更名得到最简DFA
NFA如下
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
{ 0 , 1 , 4 , 5 , 19 } \{0,1,4,5,19\} {0,1,4,5,19} | { 2 , 6 } \{2,6\} {2,6} | { 3 , 8 } \{3,8\} {3,8} |
{ 2 , 6 } \{2,6\} {2,6} | { 1 , 4 , 5 , 19 } \{1,4,5,19\} {1,4,5,19} | { 7 , 9 , 12 } \{7,9,12\} {7,9,12} |
{ 3 , 8 } \{3,8\} {3,8} | { 7 , 9 , 12 } \{7,9,12\} {7,9,12} | { 1 , 4 , 5 , 19 } \{1,4,5,19\} {1,4,5,19} |
{ 1 , 4 , 5 , 19 } \{1,4,5,19\} {1,4,5,19} | { 2 , 6 } \{2,6\} {2,6} | { 3 , 8 } \{3,8\} {3,8} |
{ 7 , 9 , 12 } \{7,9,12\} {7,9,12} | { 10 , 13 } \{10,13\} {10,13} | { 11 , 15 } \{11,15\} {11,15} |
{ 10 , 13 } \{10,13\} {10,13} | { 9 , 12 } \{9,12\} {9,12} | { 5 , 14 , 16 , 19 } \{5,14,16,19\} {5,14,16,19} |
{ 11 , 15 } \{11,15\} {11,15} | { 5 , 14 , 16 , 19 } \{5,14,16,19\} {5,14,16,19} | { 9 , 12 } \{9,12\} {9,12} |
{ 9 , 12 } \{9,12\} {9,12} | { 10 , 13 } \{10,13\} {10,13} | { 11 , 15 } \{11,15\} {11,15} |
{ 5 , 14 , 16 , 19 } \{5,14,16,19\} {5,14,16,19} | { 6 , 17 } \{6,17\} {6,17} | { 8 , 18 } \{8,18\} {8,18} |
{ 6 , 17 } \{6,17\} {6,17} | { 5 , 16 , 19 } \{5,16,19\} {5,16,19} | { 7 , 9 , 12 } \{7,9,12\} {7,9,12} |
{ 8 , 18 } \{8,18\} {8,18} | { 7 , 9 , 12 } \{7,9,12\} {7,9,12} | { 5 , 16 , 19 } \{5,16,19\} {5,16,19} |
{ 5 , 16 , 19 } \{5,16,19\} {5,16,19} | { 6 , 17 } \{6,17\} {6,17} | { 8 , 18 } \{8,18\} {8,18} |
重命名
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
0 | 1 | 2 |
1 | 3 | 4 |
2 | 4 | 3 |
3 | 1 | 2 |
4 | 5 | 6 |
5 | 7 | 8 |
6 | 8 | 7 |
7 | 5 | 6 |
8 | 9 | 10 |
9 | 11 | 4 |
10 | 4 | 11 |
11 | 9 | 10 |
非终态 { 1 , 2 , 4 , 5 , 6 , 7 , 9 , 10 } \{1,2,4,5,6,7,9,10\} {1,2,4,5,6,7,9,10};终态 { 0 , 3 , 8 , 11 } \{0,3,8,11\} {0,3,8,11}
划分过程略,最终化简
{ 3 , 6 , 8 , 11 } { 1 , 6 , 9 } { 4 , 7 } { 2 , 5 , 10 } \{3,6,8,11\}\quad\{1,6,9\}\quad\{4,7\}\quad\{2,5,10\} {3,6,8,11}{1,6,9}{4,7}{2,5,10}
( 0 ∣ 1 ) ∗ 01 (0|1)^*01 (0∣1)∗01
( ( + ∣ − ) ( ( ( 1 ∣ 2 ∣ 3 ∣ 4 ∣ 5 ∣ 6 ∣ 7 ∣ 8 ∣ 9 ) ( 0 ∣ 1 ∣ 2 ∣ 3 ∣ 4 ∣ 5 ∣ 6 ∣ 7 ∣ 8 ∣ 9 ) ∗ ( 0 ∣ 5 ) ) ∣ 5 ) ) ∣ 0 ((+|-) (((1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)^*(0|5))|5))|0 ((+∣−)(((1∣2∣3∣4∣5∣6∣7∣8∣9)(0∣1∣2∣3∣4∣5∣6∣7∣8∣9)∗(0∣5))∣5))∣0
解释
((+|-)(((1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)^*(0|5))|5))
,内部可分为两部分
(+|-)
表示+整数,-负数(((1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)^*(0|5))|5)
,可以根据分隔符继续分成两部分
((1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)^*(0|5))
表示至少为2位的能被5整除的正整数0 ∗ 1 ( 0 ∣ 1 0 ∗ 1 ) ∗ ∣ 1 ∗ 0 ( 1 ∣ 0 1 ∗ 0 ) 0^*1(0|10^*1)^*\ |\ 1^*0(1|01^*0) 0∗1(0∣10∗1)∗ ∣ 1∗0(1∣01∗0)
I I I | I a I_a Ia | I b I_b Ib |
---|---|---|
{ 0 } \{0\} {0} | { 0 , 1 } \{0,1\} {0,1} | { 1 } \{1\} {1} |
{ 0 , 1 } \{0,1\} {0,1} | { 0 , 1 } \{0,1\} {0,1} | { 1 } \{1\} {1} |
{ 1 } \{1\} {1} | { 0 } \{0\} {0} | ∅ \empty ∅ |
重命名后为:
I I I | I a I_a Ia | I b I_b Ib |
---|---|---|
0 | 1 | 2 |
1 | 1 | 2 |
2 | 1 | ∅ \empty ∅ |
非终态 { 2 } \{2\} {2};终态 { 0 , 1 } \{0,1\} {0,1}
{ 0 , 1 } a = { 1 } ⊆ { 0 , 1 } \{0,1\}_a = \{1\} \sube \{0,1\} {0,1}a={1}⊆{0,1}
{ 0 , 1 } b = { 2 } ⊆ { 2 } \{0,1\}_b = \{2\} \sube \{2\} {0,1}b={2}⊆{2}
已经是最优划分
最简DFA为
本题已经确定化了,需要进行最小化
考虑到划分
I ( 1 ) = { 0 , 1 } 与 I ( 2 ) = { 2 , 3 , 4 , 5 } I^{(1)} = \{0,1\}与 I^{(2)} = \{2,3,4,5\} I(1)={0,1}与I(2)={2,3,4,5}
I a ( 2 ) = { 0 , 1 , 3 , 5 } I^{(2)}_a = \{0,1,3,5\} Ia(2)={0,1,3,5}
需要划分为
I ( 21 ) = { 2 , 3 } I ( 22 ) = { 4 , 5 } I^{(21)} = \{2,3\}\quad I^{(22)} = \{4,5\} I(21)={2,3}I(22)={4,5}
最终将$ {0,1}\quad {2,3}\quad {4,5}$重命名
构造DFS,令其满足
∑ = { 0 , 1 } ∧ “每个 1 都有 0 直接跟在右边”的字符串 \sum = \{0,1\} \land “每个1都有0直接跟在右边”的字符串 ∑={0,1}∧“每个1都有0直接跟在右边”的字符串
正规式(0|10)^*
NFA
I I I | I 0 I_0 I0 | I 1 I_1 I1 |
---|---|---|
{ X , 0 , Y } \{X,0,Y\} {X,0,Y} | { 0 , Y } \{0,Y\} {0,Y} | { 1 } \{1\} {1} |
{ 0 , Y } \{0,Y\} {0,Y} | { 0 , Y } \{0,Y\} {0,Y} | { 1 } \{1\} {1} |
{ 1 } \{1\} {1} | { 0 , Y } \{0,Y\} {0,Y} | ∅ \empty ∅ |
重命名的DFA如下
观察划分
{ 0 , 1 } 与 { 2 } \{0,1\}与\{2\} {0,1}与{2}
显然0,1可以进行合并,得到最简DFA