构造正规式相应的DFA

时间:2023-05-07 04:25:11 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


构造正规式相应的DFA1(0|1)*101 按照以下三步:

1)由正规表达式构造转换系统(NFA

2)由转换系统(NFA)构造确定的有穷自动机DFA 3DFA的最小化

答:1)首先构造与正规式10|1*101相应的NFA,然后再将NFA确定化。为正规式构造NFA的方法为“语法制导”法,即依据正规式的语法构造来构造。首先将正规式r=10|1*101分解成r=r1,r2r3,其中:

r1=1r2=0|1*r3=101 对于r1,有:

1

X

A



对于r2,有:

0,1

A



对于r3,有:

1

X

B

0

C

1

Y



因此,与正规式r=r1r2r3相对应的NFA如图所示为:

0,1

1

X

A

1

B

0

C

1

Y



展开为:






0

1

X

A1

ε

A2

ε

1

A3

B

0

C

1

Y

1





2)将NFA转换成DFA 采用子集法,DFA的每个状态对应NFA的一个状态集合。构造DFA的状态集C假定C={T0T1,…Ti},集中T0=ε-closureX,对于任何a∈∑Ti=ε-closureMoveTia Ti

{A0} T0 {A1A2A3} T1 {A2A3} T2 {A2A3A4} T3 {A2A3A5} T4 {A2A3A4A6} T5

DFA的状态转换图

0 1

1

T1

Ti0 {}

{A2A3}=T2 {A2A3}=T2 {A2A5A3}=T4 {A2A3}=T2 {A2A5A3}=T4

Ti1

{A1A2A3}=T1 {A2A4A3}=T3 {A2A4A3}=T3 {A2A4A3}=T3 {A2A4A6A3}=T6 {A2A4A3}=T3

0

0

0

T2

T0

1

T3 T4

1

T5

0 1

1





3)化简DFA:分割法,把DFA的状态集分成一些不想交的子集,使得不同的两子集的状态是可区别的,同一子集的状态是等价的。首先,将状态分成两个子集:一个由终态组成,一个由非态组成:{T0T1T2T3T4} {T5} {T0T1T2T3} {T4} {T5} { T0T1T2} {T3} {T4} {T5} {T0} {T1T2} {T3} {T4} {T5}

在等价状态子集{T1T2}中选状态T2做代表,消去其他状态T1,把从消去状态T1射出和




本文来源:https://www.wddqw.com/doc/35525a92f58a6529647d27284b73f242326c3113.html