画出下列有限自动机的状态转换图.docx
《画出下列有限自动机的状态转换图.docx》由会员分享,可在线阅读,更多相关《画出下列有限自动机的状态转换图.docx(10页珍藏版)》请在冰豆网上搜索。
画出下列有限自动机的状态转换图
习题3
3-1画出下列有限自动机的状态转换图,并说明它所识别或接受的语言是什么?
①M=({S,A,B,C},{0,1},f,S,{S}),其转换函数为
f(S,0)=B
f(B,0)=
S
f(S,1)=A
f(B,1)=
C
f(A,0)=C
f(C,0)=
:
A
f(A,1)=S
f(C,1)=
B
它所识别或接受的语言是:
L(M)={,00,11,0101,0110,1001,1010,0011,0000,1111,…,}
由偶数个0或偶数个1组成的二进制串。
②M=({0,1,2},{a,b},f,0,{2}),其状态转移矩阵为:
号
状态、
a
b
0
{1,2}
{0}
1
{0,1}
2
{0,2}
{1}
解答:
有限自动机M的状态转换图:
有限自动机M所识别或接受的语言是:
L(M)={a,aaa,abaa,ba,baaa,babaa,…}
3-2设计字母表刀={a,b}上的确定有限自动机,使它能识别或接受下列语言:
①以aa为首的所有符号串集合;
解答:
正则式e=aa(a|b)*
NFA:
DFA:
a
b
0
1
*J
1
2,3,4
*
2,3,4
p,4
3,4:
3,4
3,4
3,4
最小化:
a
b
2
3
3
3
3
3
2,3等价,合并。
a
b
0
1
1
2
②以aa结尾的所有符号串集合;
e=(a|b)*aa
I
Ia
Ib
X
X,A
X
X,A
X,A,Y
X
X,A,Y
:
X,A,Y
X
重命名:
{X}为0
{X,A}为1
{X,A,Y}为2
a
b
0
1
0
1
2
0
2
2
0
e=(a|b)*(aa|bb)(a|b)*
3-3试把下述NFA变换为DFA。
解答:
最基本的方法是子集法:
I
la
lb
{0}
I厂
-
{1}
-
{1,2}
{1,2}
「{1厂
{1,2}1
重命名:
{0}为0,{1}为1,{1,2}为2,包含原终态2的{1,2}为新终态,于是所求DFA为:
"KJ)
②
解:
最基本的方法:
子集法:
I
la
lb
{0}
r{1}
-
⑴
-
{1,2}
{1,2}
{0}
{1,2}
重命名:
I
la
lb
0
1
-
1
-
2
2
0
2
3-4试把下列FA变换为非FA。
参考答案:
用子集法确定化:
1
b
0,1,2
1,2
1,2
b
0
1
1
1
0,1等价。
合并:
用子集法:
a
b
0
1,0
*
1,0
1,0
2,3
2,3
2,3
1,0
b
3-5试把下列FA确定化(若需要的话)和最小化。
①
参考答案:
2,4状态是死状态,应删除。
只有一个状态的FA肯定是确定化的和最小化的。
此FA是DFA,不需要确定化。
最小化:
首先按终态与非终态划分:
{0,1},{2,3,4,5};然后计算:
□
V
0
1
2
丄
丄
_±
对于输入a,b,{0,1}后继都属于同一集合,故0,1等价。
a
b
2
1
3
3
4
0
5
5
对于输入a,{2,4}后继属于同一集合{0,1},{3,5}后继属于同一集合{3,5},故可继续划分为:
{2,4},{3,5}。
进一步计算:
a
b
2
1
3
4
0
5
2,4等价。
a
b
3
3
2
5
5
4
3,5等价。
合并等价状态,最小化为:
3-6构造下列正则表达式对应的确定有限自动机。
1a(b|a)*aba
2a(abab*|a(bab)*a)*b
3-7写出下列FA所对应的正则表达式。
①②
1在FAM的转换图上加进一个初态结X和一个终态结Y。
消去(0,1,b)这条弧:
+
e=(a(ba)*)*
2消去(2,1,a)这条弧:
e=ab(ab|ba|a)*
3-8构造正则文法GLsI
•S‘mBIm
B?
'mBnSlm
所对应的有限白动机。
3-9给出下面的确定有限自动机所对应的正则文法。
3-11用某种高级语言写出:
1非确定有限自动机确定化的算法;
2有限自动机简化的算法;
3把正则表达式转换为有限自动机的算法。