- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第 四 章 词 法 分 析
构造下列正规式相应的DFA:(1)1(0|1)*101
(2)1(1010*|1(010)*1)*0
(3)a((a|b)*|ab*a)*b
(4)b((ab)*|bb)*ab解:
(1)1(0|1)*101对应的NFA为
0
11
1
1
0
1
0 1 2 3 4
转换为
II
I
I
I
0
=ε-closure(MoveTo(I,0))
1
=ε-closure(MoveTo(I,1))
由子集法将NFADFA:
I
I
I
I
0
=ε-closure(MoveTo(I,0))
1
=ε-closure(MoveTo(I,1))
A[0]
B[1]
B[1]
B[1]
C[1,2]
C[1,2]
D[1,3]
C[1,2]
D[1,3]
B[1]
E[1,4]
E[1,4]
B[1]
B[1]
0 0
1101ABεC
1
1
0
1
A
B
ε
C
D
E
ε 1
1
1
0
1
0
1
1
0
0
1
2
3
4
5
6
10
0,1
1
ε
ε
0
0
1
7 8
9
ε
下表由子集法将NFA 转
换 为DFA:
A[0]
B[1,6]
C[10]
B[1,6]
D[2,5,7]
C[10]
D[2,5,7]
E[3,8]
B[1,6]
E[3,8]
F[1,4,6,9]
G[1,2,5,6,9,10]
F[1,4,6,9]
D[2,5,7]
G[1,2,5,6,9,10]
H[1,3,6,9,10]
I[1,2,5,6,7]
H[1,3,6,9,10]
J[1,6,9,10]
K[2,4,5,7]
I[1,2,5,6,7]
J[1,6,9,10]
K[2,4,5,7]
L[3,8,10]
J[1,6,9,10]
M[2,3,5,8]
I[1,2,5,6,7]
D[2,5,7]
B[1,6]
L[3,8,10]
M[2,3,5,8]
N[3]
F[1,4,6,9]
F[1,4,6,9]
N[3]
O[4]
P[2,5]
O[4]
P[2,5]
N[3]
B[1,6]
1
1
1
L
1
1
1
1
1
0
0
1
0
0
A B D E F I K M
0
0
1
1
0
0
0
C
1
1
G
H
J
0
1
0
1
P O N
0
(3)a((a|b)*|ab*a)*b (略)
(4)b((ab)*|bb)*ab (略)
2.已知NFA=({x,y,z},{0,1},M,{x},{z})其中:M(x,0)={z},M(y,0)={x,y},M(z,0)={x,z},M(x,1)={x},
下表由子集法将
下表由子集法将NF1A转换为DFA:
I
0
0
I =ε-closure(MoveTo(I,0))
0
A[x]
B[z]
C[x,z]D[y]
E[x,y]
F[x,y,z]
0
1
0
z
I
1
A[x]
D[y]
E[x,y]
=ε-closure(MoveTo(I,1))
x
0
B[zy]
C[x,z]
C[x,z]
E[x,y]
F[x,y,z]
F[x,y,z]
A[x]
E[x,y]
1
AB0
A
B
下面将该DFA最小化:
1 0
FE0 0 0
F
E
D 1
0 1
1
首先将它的状态集分成两个子集:P={A,D,E},P={B,C,F}
1 2
(2)区分P:由于F(F,1)=F(C,1)=E,F(F,0)=F并且F(C,0)=C,所以F,C等价。由于F(B,0)=F(C,0)=C,
2
F(B,1)=D,F(C,1)=E,而D,E不等价(见下步),从而B与C,F可以区分。有P
={C,F},P
21
={B}。
22
区分P1:由于A,E输入0到终态,而 D输入0不到终态,所以 D与A,E可以区分,有
P={A,E},P
11
={D}。
12
由于F(A,0)=B,F(E,0)=F,而B,F不等价,所以A,E可以区分。
综上所述,DFA可以区分为P={{A},{B},{D},{E},{C,F}}。所以最小化的DFA如下:
1
1
0
A B
3.将图4.16确定化:
1 0
1
0 0
E F
0
0
0
解:下表由子集法将NFA转换为DFA:
V图4.16
0
I
0,
I
0
0
=ε-closure(MoveTo(I,0))
I =ε-closure(MoveTo(I,1))
1
A[S]
B[Q,V]
C[Q,U]
D[V,Z]E[V]F[Q,U,Z]
G[Z]
S
1B[Q,V]
D[V,Z]E[V]
1G[Z]
G[Z]D[V,Z
文档评论(0)