1、形式语言与自动机课后习题答案第二章4找出右线性文法,能构成长度为 1 至 5 个字符且以字母为首的字符串。答:G=N,T,P,S其中 N=S,A,B,C,D T=x,y 其中 x所有字母 y所有的字符 P 如下:S x SxA Ay AyB By ByC Cy CyD Dy6构造上下文无关文法能够产生L=/a,b*且 中 a 的个数是 b 的两倍答:G=N,T,P,S其中 N=S T=a,b P 如下:S aab Saba SbaaS aabS SaaSb SaSab SSaabS abaS SabSa SaSba SSabaS baaS SbaSa SbSaa SSbaa7找出由下列各组生成
2、式产生的语言(起始符为 S)(1) S SaS Sb(2) SaSb Sc(3) Sa SaE EaS答:(1)b(ab) n /n0或者 L=(ba)nb /n0(2) L=ancbn /n0(3) L=a2n+1 /n0第三章1 下列集合是否为正则集,若是正则集写出其正则式。(1) 含有偶数个 a 和奇数个 b 的a,b* 上的字符串集合(2) 含有相同个数 a 和 b 的字符串集合(3) 不含子串 aba 的a,b*上的字符串集合答:(1)是正则集,自动机如下aab b b baa(2) 不是正则集,用泵浦引理可以证明,具体见 17 题(2)。(3) 是正则集先看 L为包含子串 aba
3、的a,b*上的字符串集合显然这是正则集,可以写出表达式和画出自动机。(略)则不包含子串 aba 的a,b*上的字符串集合 L 是 L的非。根据正则集的性质,L 也是正则集。4对下列文法的生成式,找出其正则式(1) G=(S,A,B,C,D,a,b,c,d,P,S),生成式 P 如下:SaA SBAabS AbBBb BcCCD DbBDd(2) G=(S,A,B,C,D,a,b,c,d,P,S),生成式 P 如下:SaA SBAcC AbBBbB BaCD CabBDd答:(1) 由生成式得:偶 a 偶b偶 a 奇b奇 a 奇b奇 a 偶bS=aA+B A=abS+bB B=b+cC C=D
4、D=d+bB 式化简消去 CD,得到 B=b+c(d+bB)即 B=cbB+cd+b =B=(cb)*(cd+b) 将代入S=aabS+ab(cb)*(cd+b)+(cb)*(cd+b) =S=(aab)*(ab+)(cb) *(cd+b)(2) 由生成式得:S=aA+B A=bB+cC B=a+bB C=D+abB D=dB 由得 B=b*a 将代入 C=d+abb*a=d+ab +a 将代入 A=b +a+c(d+b+a) 将代入 S=a(b +a+c(d+ab+a)+b*a=ab+a+acd+acab+a+b*a5.为下列正则集,构造右线性文法:(1)a,b*(2)以 abb 结尾的由
5、a 和 b 组成的所有字符串的集合(3)以 b 为首后跟若干个 a 的字符串的集合(4) 含有两个相继 a 和两个相继 b 的由 a 和 b 组成的所有字符串集合答:(1)右线性文法 G=(S,a,b,P,S)P: SaS SbS S(2) 右线性文法 G=(S,a,b,P,S)P: SaS SbS Sabb(3) 此正则集为 ba*右线性文法 G=(S,A,a,b,P,S)P: SbA AaA A(4) 此正则集为 a,b*aaa,b*bba,b*, a,b*bba,b*aaa,b*右线性文法 G=(S,A,B,C,a,b,P,S)P: SaS/bS/aaA/bbBAaA/bA/bbCBaB
6、/bB/aaCCaC/bC/7.设正则集为 a(ba)*(1) 构造右线性文法(2) 找出(1)中文法的有限自 b 动机答:(1)右线性文法 G=(S,A,a,b,P,S)P: SaA AbS A(2)自动机如下:ab(p2 是终结状态)9.对应图(a)(b)的状态转换图写出正则式。(图略)(1) 由图可知 q0=aq0+bq1+a+q1=aq2+bq1q0=aq0+bq1+a=q1=abq1+bq1+aaq0+aa=(b+ab) q1+aaq0+aa=(b+ab) *( aaq0+aa)=q0=aq0+b(b+ab) *( aaq0+aa ) +a+= q0(a+b (b+ab) *aa)+
7、 b(b+ab) *aa+a+=(a+b (b+ab) *aa) *(b+ab) *aa+a+)=(a+b (b+ab) *aa) *(3) q0=aq1+bq2+a+bq1=aq0+bq2+bq0=aq1+bq0+a=q1=aq0+baq1+bbq0+ba+b=(ba)*(aq0 +bbq0+ba+b)=q2=aaq0+abq2+bq0+ab+a=(ab)*(aaq0 +bq0+ ab+a)=q0=a(ba)*(a+bb) q0 + a(ba)*(ba+b)+b(ab)*(aa+b)q0+ b(ab)*(ab+a)+a+b=a(ba)*(a+bb) +b(ab)*(aa+b)* (a(ba)
8、*(ba+b)+ b(ab)*(ab+a)+a+b)10.设字母表 T=a,b,找出接受下列语言的 DFA:(1) 含有 3 个连续 b 的所有字符串集合P1 P2(2) 以 aa 为首的所有字符串集合(3) 以 aa 结尾的所有字符串集合答:(1)M=(q 0,q1 q2,q3,a,b,q 0,q3),其中 如下:a bq0 q0 q1q1 q0 q2q2 q0 q3q3 q3 q3(2)M=(q 0,q1 q2 ,a,b,q 0,q2),其中 如下:a bq0 q1 q1 q2 q2 q2 q2(3)M=(q 0,q1 q2 ,a,b,q 0,q2),其中 如下:a bq0 q1 q0q1
9、 q2 q0q2 q2 q014 构造 DFA M1 等价于 NFA M,NFA M 如下:(1)M=(q 0,q1 q2,q3,a,b,q 0,q3),其中 如下:(q 0,a)=q0,q1 (q 0,b)=q0(q 1,a)=q2 (q 1,b)= q2 (q 2,a)=q3 (q 2,b)= (q 3,a)=q3 (q 3,b)= q3 (2)M=(q 0,q1 q2,q3,a,b,q 0, q1,q2),其中 如下:(q 0,a)=q1,q2 (q 0,b)=q1(q 1,a)=q2 (q 1,b)= q1,q2 (q 2,a)=q3 (q 2,b)= q0(q 3,a)= (q 3,
10、b)= q0答:(1)DFA M1=Q1, a,b, 1, q0, q0,q1,q3,q 0,q2,q3,q 0, q1,q2,q3其中 Q1 =q0,q0,q1, q0,q1,q2, q0,q2, q0,q1, q2,q3, q0,q1, q3, q0,q2, q3, q0,q3 1 满足a bq0 q0,q1 q0q0,q1 q0,q1,q2 q0,q2q0,q1,q2 q0,q1, q2,q3 q0,q2 q0,q2 q0,q1, q3 q0 q0,q1, q2,q3 q0,q1, q2,q3 q0,q2, q3 q0,q1, q3 q0,q1, q2,q3 q0,q2, q3 q0,q
11、2, q3 q0,q1, q3 q0,q3 q0,q3 q0,q1, q3 q0,q3(2)DFA M1=Q1, a,b, 1, q0, q1,q3, q1,q3,q0,q1,q2,q1,q2 ,q1,q2,q3,q2,q3其中 Q1 =q0,q1,q3, q1,q2, q0,q1,q2,q1,q2,q3, q1,q2,q3,q2,q3 1 满足a bq0 q1,q3 q1q1,q3 q2 q0,q1,q2q1 q2 q1,q2q2 q3 q0 q0,q1,q2 q1,q2,q3 q0,q1,q2q1,q2 q2,q3 q0,q1,q2q3 q0q1,q2,q3 q2,q3 q0,q1,q2q
12、2,q3 q3 q015. 15.对下面矩阵表示的 -NFA a b cP(起始状态) p q rq p q r r(终止状态) q r p(1) 给出该自动机接收的所有长度为 3 的串(2) 将此 -NFA 转换为没有 的 NFA答:(1)可被接受的的串共 23 个,分别为 aac, abc, acc, bac, bbc, bcc, cac, cbc, ccc, caa, cab, cba, cbb, cca, ccb, bba, aca, acb, bca, bcb, bab, bbb, abb(2)-NFA :M=(p,q,r,a,b,c,p,r) 其中 如表格所示。因为 -closur
13、e(p)= 则设不含 的 NFA M1=(p,q,r,a,b,c, 1,p,r) 1(p,a)=(p,a)=-closure(p,),a)=p 1(p,b)=(p,b)=-closure( (p,),b)=p,q 1(p,c)=(p,c)=-closure(p,),c)=p,q,r 1(q,a)=(q,a)=-closure(q,),a)=p,q 1(q,b)=(q,b)=-closure(q,),b)=p,q,r 1(q,c)=(q,c)=-closure(q,),c)=p,q,r 1(r,a)=(r,a)=-closure( (r,),a)=p,q,r 1(r,b)=(r,b)=-clos
14、ure(r,),b)=p,q,r 1(r,c)=(r,c)=-closure(r,),c)=p,q,r图示如下:(r 为终止状态)b,ca,b,c a,b,c a,b,cc a,b,c b,c a,b,ca,b,c16设 NFA M=(q0,q1,a,b,q 0,q1),其中 如下:(q 0,a)=q0,q1 (q 0,b)=q1(q 1,a)= (q 1,b)= q0, q1构造相应的 DFA M1,并进行化简答:构造一个相应的 DFA M1=Q1, a,b, 1, q0, q1,q 0,q1其中 Q1 =q0,q 1,q 0,q1 1 满足a bq0 q0,q1 q1q1 q0,q1q0,
15、q1 q0,q1 q0,q1由于该 DFA 已是最简,故不用化简17.使用泵浦引理,证明下列集合不是正则集:(1) 由文法 G 的生成式 SaSbS/c 产生的语言 L(G)(2) / a,b*且 有相同个数的 a 和 bp qr(3) akcak/k1(4) /a,b*证明:(1)在 L(G)中,a 的个数与 b 的个数相等假设 L(G)是正则集,对于足够大的 k 取 = a k (cb)kc令 = 1 0 2因为| 0|0 | 1 0|k 存在 0使 1 0i 2L所以对于任意 0只能取 0=an n(0,k)则 1 0i 2= akn(an)i(cb)kc 在 i 不等于 0 时不属于
16、L与假设矛盾。则 L(G)不是正则集(2)假设该集合是正则集,对于足够大的 k 取 = a k bk令 = 1 0 2因为| 0|0 | 1 0|k 存在 0使 1 0i 2L所以对于任意 0只能取 0=an n(0,k)则 1 0i 2= akn(an)ibk 在 i 不等于 0 时 a 与 b 的个数不同,不属于该集合与假设矛盾。则该集合不是正则集(3)假设该集合是正则集,对于足够大的 k 取 = a k cak令 = 1 0 2因为| 0|0 | 1 0|k 存在 0使 1 0i 2L所以对于任意 0只能取 0=an n(0,k)则 1 0i 2= akn(an)icak 在 i 不等于
17、 0 时 c 前后 a 的个数不同,不属于该集合与假设矛盾。则该集合不是正则集(4)假设该集合是正则集,对于足够大的 k 取 = ak bakb令 = 1 0 2因为| 0|0 | 1 0|k 存在 0使 1 0i 2L所以对于任意 0只能取 0=an n(0,k)则 1 0i 2= akn(an)ibakb 在 i 不等于 0 时不满足 的形式,不属于该集合与假设矛盾。则该集合不是正则集18构造米兰机和摩尔机对于a,b*的字符串,如果输入以 bab 结尾,则输出 1;如果输入以 bba 结尾,则输出 2;否则输出 3。答:米兰机:说明状态 qaa 表示到这个状态时,输入的字符串是以 aa 结
18、尾。其他同理。a/3b/3a/3 a/3 b/3b/1a/2 b/3qaaqba qbbqab摩尔机,状态说明同米兰机。a ab aa b a ba bbb 第四章10. 把下列文法变换为无 生成式、无单生成式和没有无用符号的等价文法:S A1 | A2 , A1 A 3 | A4 , A2 A 4 | A5 , A3 S | b |, A4 S | a,A 5 S | d |解: 由算法 3,变换为无 生成式:N = S, A1,A2,A3,A4,A5 G1 = ( S1,S, A1,A2,A3,A4,A5 , a,b,d , P1 , S1 ) ,其中生成式 P1 如下:S1 | S ,S
19、 A 1 | A2 ,A1 A 3 | A4 ,A2 A 4 | A5 ,A3 S | b ,A4 S | a ,A5 S | d , 由算法 4,消单生成式:NS1 = S1,S,A1,A2,A3,A4, A5 ,NS = NA1 = NA2 = NA3 = NA4 = NA5 = S, A1,A2,A3,A4, A5 ,运用算法 4,则 P1 变为:S1 a | b | d | ,qaa,3 b/3qbba,2 b/3 qbb,3 b/3 qbab,1 b/3qaba,3 b/3qaab,3 b/3S a | b | d ,A1 a | b | d ,A2 a | b | d ,A3 a
20、| b | d ,A4 a | b | d ,A5 a | b | d 由算法 1 和算法 2,消除无用符号,得到符合题目要求的等价文法:G1 = ( S1 , a,b,d , P1 , S1 ) ,其中生成式 P1 为:S 1 a | b | d |.11. 设 2 型文法 G = ( S,A,B,C,D,E,F , a,b,c , P , S ) , 其中 P:S ASB |; A aAS | a ; B SBS | A | bb试将 G 变换为无 生成式 ,无单生成式,没有无用符号的文法 ,再将其转换为Chomsky 范式 .解: 由算法 3,变换为无 生成式:N = S 由 S ASB
21、 得出 S ASB | AB ,由 A aAS 得出 A aAS | aA ,由 B SBS 得出 B SBS | SB | BS |B,由 SN 得出 S1 | S ,因此无 的等效文法 G1 = ( S1,S,A,B , a,b,d , P1 , S1 ) ,其中生成式 P1 如下:S1 | S ,S ASB | AB ,A aAS | aA | a,B SBS | SB | BS | B| A | bb , 由算法 4,消单生成式:NS1 = S1,S , NS = S , NA = A , NB = A,B 由于 S ASB | ABP 且不是单生成式 ,故 P1 中有 S1 | AS
22、B | AB ,同理有 S ASB | AB , A aAS | aA | a , B SBS | SB | BS | aAS | aA | a | bb,因此生成的无单生成式等效文法为G1 = ( S1,S, A,B , a,b , P1 , S1 ) ,其中生成式 P1 如下:S1 | ASB | AB ,S ASB | AB , A aAS | aA | a , B SBS | SB | BS | aAS | aA | a | bb, 由算法 1 和算法 2,消除无用符号(此题没有无用符号); 转化为等价的 Chomsky 范式的文法:将 S1 ASB 变换为 S AC , C SB ,
23、将 S ASB 变换为 S AC ,将 A aAS | aA 变换为 A ED | EA, D AS , E a,将 B SBS | aAS | aA | a | bb , 变换为 B CS | ED | EA | FF, F b , 由此得出符合题目要求的等价文法:G1 = ( S1,S, A,B,C,D , a,b , P1 , S1 ) ,其中生成式 P1 如下:S1 | AC | AB ,S AC | AB , A ED | EA | a , B CS | SB | BS | ED | EA | a | FF ,C SB ,D AS ,E a ,F b .15. 将下列文法变换为等价的
24、 Greibach 范式文法: S DD | a , D SS | b解: 将非终结符排序为 S,D,S 为低位,D 为高位, 对于 D SS ,用 S DD | a 代入得 D DDS | aS | b ,用引理 4.2.4,变化为 D aS | b | aSD | bD , D DS | DSD , 将 D 生成式代入 S 生成式得 S aSD | bD | aSDD | bDD | a , 将 D 生成式代入 D生成式得D aSS | bS | aSDS | bDS | aSS D | bS D | aSDS D | bDS D , 由此得出等价的 Greibach 范式文法:G1 =
25、( S,D,D , a,b , P1 , S ) ,其中生成式 P1 如下:S aSD | bD | aSDD | bDD | a ,D aS | b | aSD | bD ,D aSS | bS | aSDS | bDS | aSS D | bS D | aSDS D | bDS D . A1 A 3b | A2a , A2 A 1b | A2A2a | b , A3 A 1a | A3A3b | a解: 转化为等价的 Chomsky 范式的文法:A1 A 3A4 | A2A5 ,A2 A 1A4 | A2A6 | b ,A3 A 1A5 | A3A7 | a ,A4 b ,A5 a ,A6
26、 A 2A5 ,A7 A 3A4 , 转化为等价的 Greibach 范式的文法:将非终结符排序为 A1, A2,A3,A4,A5 ,A1 为低位 A5 为高位,对于 A2 A 1A4 ,用 A1 A 3A4 | A2A5 代入得 A2 A 3A4A4 | A2 A5A4 | A2A6 | b ,用引理 4.2.4,变化为A2 A 3A4A4 | b | A3A4A4A2 | bA2 ,A2 A 5A4A2 | A6A2 | A5A4 | A6 ,对于 A3 A1A5 ,用 A1 A 3A4 | A2A5 代入得 A3 A 3A4A5 | A2A5A5 | A3A7 | a ,A3 生成式右边
27、第一个字符仍是较低位的非终结符,将 A2 生成式代入 A3 生成式得A3 A 3A4 A5 | A3A4A4 A5A5 | b A5A5 | A3A4A4A2 A5A5 | bA2A5A5 | A3A7 | a ,用引理 4.2.4,变化为A3 b A5A5 | bA2A5A5 | a | b A5A5A3 | bA2A5A5A3 | aA3 ,A3 A 4A5 | A4A4A5A5 | A4A4A2A5A5 | A7 | A4A5A3 | A4A4A5A5A3 | A4A4A2A5A5A3 | A7A3 ,对于 A6 A 2A5 ,将 A2 生成式代入 A6 生成式得A6 A 3A4A4A5
28、 | bA5 | A3A4A4A2A5 | bA2A5 ,A6 生成式右边第一个字符仍是较低位的非终结符,将 A3 生成式代入 A6 生成式得A6 bA 5A5A4A4A5 | bA2A5A5A4A4A5 | aA4A4A5 | bA5A5A3A4A4A5 | bA2A5A5A3A4A4A5 | aA3A4A4A5 | bA5A5A4A4A2A5 | bA2A5A5A4A4A2A5 | aA4A4A2A5 | bA5A5A3A4A4A2A5 | bA2A5A5A3A4A4A2A5 | aA3A4A4A2A5 | bA2A5 | b A5 ,对于 A7 A 3A4 , 将 A3 生成式代入 A7
29、 生成式得A7 b A5A5A4 | bA2A5A5A4 | a A4 | b A5A5A3A4 | bA2A5A5A3A4 | aA3A4 ,将 A5,A6 生成式代入 A2生成式得A2 aA 4A2 | bA5A5A4A4A5A2 | bA2A5A5A4A4A5A2 | aA4A4A5A2 | bA5A5A3A4A4A5A2 | bA2A5A5A3A4A4A5A2 | aA3A4A4A5A2 | bA5A5A4A4A2A5 A2 | bA2A5A5A4A4A2A5A2 | aA4A4A2A5A2 | bA5A5A3A4A4A2A5A2 | bA2A5A5A3A4A4A2A5A2 | aA3
30、A4A4A2A5A2 | bA2A5A2 | b A5A2 | aA4 | b A5A5A4A4A5 | bA2A5A5A4A4A5 | aA4A4A5 | bA5A5A3A4A4A5 | bA2A5A5A3A4A4A5 | aA3A4A4A5 | bA5A5A4A4A2A5 | bA2A5A5A4A4A2A5 | aA4A4A2A5 | bA5A5A3A4A4A2A5 | bA2A5A5A3A4A4A2A5 | aA3A4A4A2A5 | bA2A5 | b A5 ,将 A4,A7 生成式代入 A3生成式得A3 aA 5 | aA4A5A5 | aA4A2A5A5 | aA5A3 | aA4
31、A5A5A3 | aA4A2A5A5A3 | b A5A5A4 | bA2A5A5A4 | aA4 | bA5A5A3A4 | bA2A5A5A3A4 | aA3A4 | bA5A5A4A3 | bA2A5A5A4A3 | a A4A3 | b A5A5A3A4 A3 | bA2A5A5A3A4 A3 | aA3A4A3 , 由此得出等价的 Greibach 范式文法:G1 = ( S,D,D , a,b , P1 , S ) ,其中生成式 P1 如下:A1 A 3A4 | A2A5 ,A2 A 3A4A4 | b | A3A4A4A2 | bA2 ,A3 b A5A5 | bA2A5A5 |
32、 a | bA5A5A3 | bA2A5A5A3 | aA3 ,A4 b ,A5 a ,A6 bA 5A5A4A4A5 | bA2A5A5A4A4A5 | aA4A4A5 | bA5A5A3A4A4A5 | bA2A5A5A3A4A4A5 | aA3A4A4A5 | bA5A5A4A4A2A5 | bA2A5A5A4A4A2A5 | aA4A4A2A5 | bA5A5A3A4A4A2A5 | bA2A5A5A3A4A4A2A5 | aA3A4A4A2A5 | bA2A5 | b A5 ,A7 b A5A5A4 | bA2A5A5A4 | a A4 | b A5A5A3A4 | bA2A5A5A
33、3A4 | aA3A4 ,A2 aA 4A2 | bA5A5A4A4A5A2 | bA2A5A5A4A4A5A2 | aA4A4A5A2 | bA5A5A3A4A4A5A2 | bA2A5A5A3A4A4A5A2 | aA3A4A4A5A2 | bA5A5A4A4A2A5 A2 | bA2A5A5A4A4A2A5A2 | aA4A4A2A5A2 | bA5A5A3A4A4A2A5A2 | bA2A5A5A3A4A4A2A5A2 | aA3A4A4A2A5A2 | bA2A5A2 | bA5A2 | aA4 | b A5A5A4A4A5 | bA2A5A5A4A4A5 | aA4A4A5 | b
34、A5A5A3A4A4A5 | bA2A5A5A3A4A4A5 | aA3A4A4A5 | bA5A5A4A4A2A5 | bA2A5A5A4A4A2A5 | aA4A4A2A5 | bA5A5A3A4A4A2A5 | bA2A5A5A3A4A4A2A5 | aA3A4A4A2A5 | bA2A5 | b A5 ,A3 aA 5 | aA4A5A5 | aA4A2A5A5 | aA5A3 | aA4A5A5A3 | aA4A2A5A5A3 | b A5A5A4 | bA2A5A5A4 | aA4 | bA5A5A3A4 | bA2A5A5A3A4 | aA3A4 | bA5A5A4A3 | bA
35、2A5A5A4A3 | a A4 A3 | b A5A5A3A4 A3 | bA2A5A5A3A4 A3 | aA3A4A3 .20. 设文法 G 有如下得生成式 : S aDD , D aS | bS | a , 构造等价的下推自动机.解: 根据 P162-163 的算法,构造下推自动机 M,使 M 按文法 G 的最左推导方式工作.设 M = (Q,T,q 0,Z0,F ),其中Q = q0,qf ,T = a,b , = a,b,D,S ,Z0 = S ,F = qf , 定义如下:( q 0,S ) = ( q0, aDD ) ,( q 0,D ) = ( q0,aS ) , ( q0,
36、bS ) , ( q0,a ) ,( q 0,a,a ) = ( q0, ) ,( q 0, ) = ( q f, ) .21. 给出产生语言 L = aibjck | i , j , k0 且 i = j 或者 j = k 的上下文无关文法.你给出的文法是否具有二义性?为什么?解: G=(S,A,B,C,D,E,a,b,c,P,S)P: S AD |EB, A aAb |, B bBc |, D cD |, E aE |文法具有二义性。因为当句子 中 a,b,c 个数相同时,对于 存在两个不同的最左 (右)推导。如 abcL,存在两个不同的最左推导 SADaAbDabDabcCabc 及SE
37、BaEBaBabBcabc 。22. 设下推自动机 M = ( q0,q1,a,b,Z0,X, q 0, Z0,), 其中 如下:(q 0,b, Z0) = (q0, XZ0) ,(q 0, Z 0) = (q0, ) ,A(q 0,b, X) = (q0, XX) , (q 1,b, X) = (q1, ) ,(q 0,b, X) = (q1, X) , (q 1,a, Z0) = (q0, Z0) ,试构造文法 G 产生的语言 L (G) = L(M).解: 在 G 中,N = q0,Z0,q0, q0,Z0,q1, q0,X,q0, q0,X,q1, q1,Z0,q0, q1,Z0,q1
38、, q1,X,q0, q1,X,q1 . S 生成式有S q 0,Z0,q0 ,S q 0,Z0,q1 ,根据 (q 0,b, Z0) = (q0, XZ0) ,则有q0,Z0,q0 bq 0,X,q0 q0,Z0,q0 ,q0,Z0,q0 bq 0,X,q1 q1,Z0,q0 ,q0,Z0,q1 bq 0,X,q0 q0,Z0,q1 ,q0,Z0,q1 bq 0,X,q1 q1,Z0,q1 ,因为有 (q 0,b, X) = (q0, XX),则有q0,X,q0 bq 0,X,q0 q0,X,q0 ,q0, X,q0 bq 0,X,q1 q1, X,q0 ,q0, X,q1 bq 0,X,q
39、0 q0, X,q1 ,q0, X,q1 bq 0,X,q1 q1, X,q1 ,因为有 (q 0,a, X) = (q1, X),则有q0,X,q0 aq 1,X,q0 ,q0,X,q1 aq 1,X,q1 ,因为有 (q 1,a, Z0) = (q0, Z0),则有q1,Z0,q0 aq 0,Z0,q0 ,q1,Z0,q1 aq 0,Z0,q1 ,因为有 (q 0, Z 0) = (q0, ),则有q0,Z0,q0 ,因为有 (q 1,b, X) = (q1, ),则有q1,X,q1 利用算法 1 和算法 2,消除无用符号后,得出文法 G 产生的语言 L(G) = N,T,P,S 其中 N
40、 = S,q0,Z0,q0,q1,Z0,q0,q1,X,q1, q0,X,q1 ,T = a,b ,生成式 P 如下:S q 0,Z0,q0 ,q0,Z0,q0 bq 0,X,q1 q1,Z0,q0 ,q0, X,q1 bq 0,X,q1 q1, X,q1 ,q0,X,q1 aq 1,X,q1 ,q1,Z0,q0 aq 0,Z0,q0 ,q0,Z0,q0 ,q0,Z0,q0 .23. 证明下列语言不是上下文无关语言: anbncm | mn ;证明: 假设 L 是上下文无关语言,由泵浦引理,取常数 p,当 L 且|p 时,可取 = a pbpcp ,将 写为 = 1 2 0 3 4 ,同时满足
41、| 2 0 3|p 2和 3不可能同时分别包含 a 和 c,因为在这种情况下,有| 2 0 3|p; 如果 2和 3都只包含 a (b) ,即 2 0 3 = aj (bj ) (jp) ,则当i1 时, 1 2i 0 3i 4中会出现 a 的个数与 b 的个数不等;如果 2和 3都只包含 c ,即 2 0 3 = cj (jp),当 i 大于 1 时, 1 2i 0 3i 4中会出现 c 的个数大于 a 的个数 (b 的个数); 如果 2和 3分别包含 a 和 b (b 和 c) ,当 i=0 时 1 2i 0 3i 4中会出现 a, b 的个数小于 c 的个数(或 a,b 个数不等)这些与
42、假设矛盾,故 L 不是上下文无关语言. ak | k 是质数 ;证明: 假设 L 是上下文无关语言,由泵浦引理,取常数 p,当 L 且|p 时,可取=a k ( kp 且 k1 ) ,将 写为 = 1 2 0 3 4 ,同时满足| 2 0 3|p ,且| 2 3|=j1 ,则当 i=k+1 时,| 1 2i 0 3i 4|=k+(i-1)*j=k+k*j= k*(1+j) ,k*(1+j)至少包含因子 k 且 k1 ,因此必定不是质数,即 1 2i 0 3i 4不属于 L.这与假设矛盾,故 L 不是上下文无关语言. 由 a,b,c 组成的字符串且是含有 a,b,c 的个数相同的所有字符串.证明
43、: 假设 L 是上下文无关语言,由泵浦引理,取常数 p,当 L 且|p 时,可取 = a kbkck (kp) ,将 写为 = 1 2 0 3 4 ,同时满足| 2 0 3|p 2和 3不可能同时分别包含 a 和 c,因为在这种情况下,有| 2 0 3|p; 如果 2和 3都只包含 a (b 或 c) ,即 2 0 3 = aj (bj 或 cj ) (jp) ,则当 i1 时, 1 2i 0 3i 4中会出现 a,b,c 的个数不再相等; 如果 2和 3分别包含 a 和 b (b 和 c) , 1 2i 0 3i 4中会出现 a,b的个数与 c 的不等;这些与假设矛盾,故 L 不是上下文无关语言.24. 设 G 是 Chomsky 范式文法,存在 L (G) ,求在边缘为 的推导树中,最长的路径长度与 的长度之间的关系.解: 设边缘为 的推导树中,最长路径长度为 n,则它与 的长度之间的关系为|2 n-1 .因为由 Chomsky 范式的定义