第11章形式语言与自动机
1.写出字符串011的全部前缀、后缀和子串。
解:前缀:{0,01,011,ε},后缀:{1,11,011,ε},子串:{0,01,011,ε,11,1} 2.以合理的顺序展开下列语言,把它们写成带省略号的列举法表示。
(1){ab }*
,(2){a ,b }*
,(3){a }*
{b }*
,(4){a n b 2n |n ≥0}。
解:(1){ε,ab ,abab ,ababab ,…} (2){ε,a ,b ,aa ,ab ,ba ,bb ,aaa ,aab ,aba ,abb ,…} (3){ε,a ,b ,ab ,aa ,bb ,aaa ,aab ,bbb ,abb ,…} (4){ε,abb ,aabbbb ,…} 3.现有文法G [S ]:S →aAb ,A →BcA ,A →B ,B →idt ,B →ε,给出下面几个句子的推导过程。
(1)aidtccb (2)ab (3)aidtcidtcidtb
解:(1) S →aAb →aBcAb →aidtcAb →aidtcBcAb →aidtccAb →aidtccBb →aidtccb (2)S →aAb →aBb →ab
(3) S →aAb →aBcAb →aidtcAb →aidtcBcAb →aidtcidtcAb →aidtcidtcBb →aidtcidtcidtb
4.指出G =({S },{a ,b },P ,S )属于哪一型文法,其中P ={S →bSS ,S →a },并用集合的形式写出它产生的语言。
解:该文法属于上下文无关文法。
{以b 开头以aa 结尾且字符a 的个数比字符b 的个数多1的所有符号串}
5.设M =({p ,q ,r },{a ,b },δ,p ,{r })为有限自动机,其中δ如表11-1所示,画出M 的状态转换图,并用格局转换推导式证明字符串abaab ∈L (M )。
表11-1
解:M 的状态转换图如图11-1所示:
(p ,abaab )├(q ,baab )├(p ,aab )├(q ,ab )├(r ,b )├(r ,ε) 其中r ∈F ,即(r ,ε)是终止格局
6.设有一个NFA :M =({
p ,q ,r ,S },{0,1},δ,p ,{S }),其中状态转换函数δ如表11-2
所示,试构造与它等价的DFA 。
表11-2
图11-1
解: DFA 如表11-3所示:
表11-3
7.已给文法G [S ]:S →aAcB ,S →BdS ,B →aScA ,B →cAB ,A →BaB ,A →aBc ,A →a ,B →b ,给出下面句子的最左推导、最右推导和相应的导出树。
ω=(bd )2
(ab )2c 2
ab
解:(1) 最左推导: S →BdS →bdS →bdBdS →(bd )
2
S →(bd
)2
aAcB →
(
bd )2
aBaBcB →(bd )2
abaBcB →(bd )2
ababcB →(bd )2
ababc 2
AB →(bd )2
ababc 2
aB →(bd )2
(ab )2c 2
ab
(2) 最右推导: S →BdS →BdBdS →BdBdaAcB →BdBdaAc 2
AB →BdBdaAc 2
Ab →BdBdaAc 2
ab →BdBda BaB c 2
ab →BdBdaBabc 2
ab →BdBd (ab )2c 2
ab →Bdbd (ab )2c 2
ab →(bd )2
(ab )2c 2
ab (3)相应的导出树如图11-1所示:
8.构造一个接受语言L ={0n 1n |n ≥1}的图灵机。
解:识别过程如下:开始时输入带上的符号序列为0n 1n 。
M 把最左的0替换成X ,读写头右移到最左的1,将之替换成Y 。
然后左移找到最右的X ,右移一格找到最左的0,重复前面的循环。
如果当寻找1时M 找到的却是空白,M 停机拒绝;而当M 把一个1替换成Y 后,却再也找不到0,则检查有无剩余的
S
B
S
S
B
B b d
B b d a A B a B b
b
c A a
b
图11-2
1,若没有则接受。
综上所述,M=(Q,Σ,Γ,δ,q0,B,F)为所求的图灵机(识别器),其中Q={q0,q1,q2,q3,q4},Σ={0,1},Γ={0,1,X,Y,B},F={q4},δ由表11-4给出:
表11-4。