⑶ 由此得出等价的Greibach范式文法:
G1 = ( { S,D,D’ } , { a,b } , P1 , S ) ,其中生成式P1如下: A1 →A3A4 | A2A5 ,
A2 →A3A4A4 | b | A3A4A4A2’ | bA2’ ,
A3 →b A5A5 | bA2’A5A5 | a | bA5A5A3’ | bA2’A5A5A3’ | aA3’ , A4 →b , A5 →a ,
A6 →bA5A5A4A4A5 | bA2’A5A5A4A4A5 | aA4A4A5 | bA5A5A3’A4A4A5 | bA2’A5A5A3’A4A4A5 | aA3’A4A4A5 | bA5A5A4A4A2’A5 | bA2’A5A5A4A4A2’A5 | aA4A4A2’A5 | bA5A5A3’A4A4A2’A5 | bA2’A5A5A3’A4A4A2’A5 | aA3’A4A4A2’A5 | bA2’A5 | b A5 ,
A7 →b A5A5A4 | bA2’A5A5A4 | a A4 | b A5A5A3’A4 | bA2’A5A5A3’A4 | aA3’A4 ,
A2’ →aA4A2’ | bA5A5A4A4A5A2’ | bA2’A5A5A4A4A5A2’ | aA4A4A5A2’ | bA5A5A3’A4A4A5A2’ | bA2’A5A5A3’A4A4A5A2’ | aA3’A4A4A5A2’ | bA5A5A4A4A2’A5 A2’ | bA2’A5A5A4A4A2’A5A2’ | aA4A4A2’A5A2’ | bA5A5A3’A4A4A2’A5A2’ | bA2’A5A5A3’A4A4A2’A5A2’ | aA3’A4A4A2’A5A2’ | bA2’A5A2’ | bA5A2’ | aA4 | b A5A5A4A4A5 | bA2’A5A5A4A4A5 | aA4A4A5 | bA5A5A3’A4A4A5 | bA2’A5A5A3’A4A4A5 | aA3’A4A4A5 | bA5A5A4A4A2’A5 | bA2’A5A5A4A4A2’A5 | aA4A4A2’A5 | bA5A5A3’A4A4A2’A5 | bA2’A5A5A3’A4A4A2’A5 | aA3’A4A4A2’A5 | bA2’A5 | b A5 ,
A3’ →aA5 | aA4A5A5 | aA4A2’A5A5 | aA5A3’ | aA4A5A5A3’ | aA4A2’A5A5A3’ | b A5A5A4 | bA2’A5A5A4 | aA4 | bA5A5A3’A4 | bA2’A5A5A3’A4 | aA3’A4 | bA5A5A4A3’ | bA2’A5A5A4A3’ | a A4 A3’ | b A5A5A3’A4 A3’ | bA2’A5A5A3’A4 A3’ | aA3’A4A3’ .
20. 设文法G有如下得生成式: S →aDD , D →aS | bS | a , 构造等价的下推自动机. 解: 根据P162-163的算法,构造下推自动机M,使M按文法G的最左推导方式工作. 设M = (Q,T,Г,δ,q0,Z0,F ),其中
Q = { q0,qf } , T = { a,b} ,
Г = { a,b,D,S } , Z0 = S , F = { qf } ,
δ定义如下:
δ( q0,ε,S ) = { ( q0, aDD ) } ,
δ( q0,ε,D ) = { ( q0,aS ) , ( q0,bS ) , ( q0,a ) } , δ( q0,a,a ) = { ( q0,ε ) } , δ( q0,ε,ε ) = { ( qf,ε ) } .
21. 给出产生语言 L = { aibjck | i , j , k≥0 且 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个数相同时,对于ω存在两个不同的最左(右)推导。
如abc?L,存在两个不同的最左推导 S?AD?aAbD?abD?abcC?abc 及S?EB?aEB?aB?abBc?abc 。
22. 设下推自动机 M = ( {q0,q1},{a,b},{Z0,X},δ, q0, Z0,φ),其中δ如下:
δ(q0,b, Z0) = {(q0, XZ0)} ,δ(q0,ε, Z0) = {(q0, ε)} ,A δ(q0,b, X) = {(q0, XX)} , δ(q1,b, X) = {(q1, ε)} , δ(q0,b, X) = {(q1, X)} , δ(q1,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], [q1,X,q0],
[q1,X,q1] } . ⑴ S生成式有
S →[q0,Z0,q0] , S →[q0,Z0,q1] ,
根据δ(q0,b, Z0) = {(q0, XZ0)} ,则有
[q0,Z0,q0] →b[q0,X,q0] [q0,Z0,q0] , [q0,Z0,q0] →b[q0,X,q1] [q1,Z0,q0] , [q0,Z0,q1] →b[q0,X,q0] [q0,Z0,q1] , [q0,Z0,q1] →b[q0,X,q1] [q1,Z0,q1] ,
因为有δ(q0,b, X) = {(q0, XX)},则有
[q0,X,q0] →b[q0,X,q0] [q0,X,q0] , [q0, X,q0] →b[q0,X,q1] [q1, X,q0] , [q0, X,q1] →b[q0,X,q0] [q0, X,q1] , [q0, X,q1] →b[q0,X,q1] [q1, X,q1] ,
因为有δ(q0,a, X) = {(q1, X)},则有
[q0,X,q0] →a[q1,X,q0] , [q0,X,q1] →a[q1,X,q1] ,
因为有δ(q1,a, Z0) = {(q0, Z0)},则有
[q1,Z0,q0] →a[q0,Z0,q0] , [q1,Z0,q1] →a[q0,Z0,q1] ,
因为有δ(q0,ε, Z0) = {(q0, ε)},则有
[q0,Z0,q0] →ε,
因为有δ(q1,b, X) = {(q1, ε)},则有
[q1,X,q1] →ε
⑵ 利用算法1和算法2,消除无用符号后,得出文法G产生的语言L(G) = { N,T,P,S } 其中N = { S,[q0,Z0,q0],[q1,Z0,q0],[q1,X,q1], [q0,X,q1] },T = { a,b },生成式P如下:
S →[q0,Z0,q0] ,
[q0,Z0,q0] →b[q0,X,q1] [q1,Z0,q0] , [q0, X,q1] →b[q0,X,q1] [q1, X,q1] , [q0,X,q1] →a[q1,X,q1] , [q1,Z0,q0] →a[q0,Z0,q0] , [q0,Z0,q0] →ε, [q0,Z0,q0] →ε.
23. 证明下列语言不是上下文无关语言:
⑴ { anbncm | m≤n };
证明: 假设L是上下文无关语言,由泵浦引理,取常数p,当ω∈L且|ω|≥p时,可取
ω = apbpcp ,将ω写为ω=ω1ω2ω0ω3ω4 ,同时满足|ω2ω0ω3|≤p
⑴ ω2和ω3不可能同时分别包含a和c,因为在这种情况下,有|ω2ω0ω3|>p; ⑵ 如果ω2和ω3都只包含a (b) ,即ω2ω0ω3 = aj (bj ) (j≤p) ,则当i≠1时, ω1ω2iω0ω3iω4中会出现a的个数与b的个数不等;
如果ω2和ω3都只包含c ,即ω2ω0ω3 = cj (j≤p),当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个数不等) 这些与假设矛盾,故L不是上下文无关语言. ⑵ { ak | k是质数 };
证明: 假设L是上下文无关语言,由泵浦引理,取常数p,当ω∈L且|ω|≥p时,可取ω
=ak ( k≥p且k≠1 ) ,将ω写为ω=ω1ω2ω0ω3ω4 ,同时满足|ω2ω0ω3|≤p ,且
|ω2ω3|=j≥1 ,则当i=k+1时,|ω1ω2iω0ω3iω4|=k+(i-1)*j=k+k*j= k*(1+j) ,k*(1+j)至少包含因子k且k≠1 ,因此必定不是质数,即ω1ω2iω0ωi
3ω4不属于L.
这与假设矛盾,故L不是上下文无关语言.
⑶ 由 a,b,c 组成的字符串且是含有 a,b,c 的个数相同的所有字符串.
证明: 假设L是上下文无关语言,由泵浦引理,取常数p,当ω∈L且|ω|≥p时,可取
ω = akbkck (k≥p) ,将ω写为ω=ω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 ) (j≤p) ,则当i≠1时, ω1ω2iω0ω3iω4中会出现a,b,c的个数不再相等;
ii
⑶ 如果ω2和ω3分别包含a和b (b和c) , ω1ω2ω0ω3ω4中会出现a,b的个数与c的不等;
这些与假设矛盾,故L不是上下文无关语言.
24. 设G是Chomsky 范式文法,存在ω∈ L (G) ,求在边缘为ω的推导树中,最长的路
径长度与ω的长度之间的关系.
解: 设边缘为ω的推导树中,最长路径长度为n,则它与ω的长度之间的关系为|ω|≤2n-1 .
因为由Chomsky范式的定义可知,Chomsky范式文法的推导树都是二叉树,在最长路径长度为n的二叉推导树中,满二叉树推出的句子长度最长,为2n-1,因此ω的长度与其推导树的最长路径长度n的关系可以用上式表示.
25. 设计PDA接受下列语言(注意:不要求为确定的)
⑴ { 0m1n | m≤n };
解: 设PDA M = ( Q,T,Г,δ,q0,Z0,F ),其中
Q = { q0,q1,qf } ,
T = { 0,1} ,
Г = { 0,1, Z0 } , F = { qf } ,
δ定义如下:
δ( q0, ε, Z0 ) = { ( q1, Z0 ) } , δ( q0,0, Z0 ) = { ( q0, 0Z0 ) } , δ( q0,0,0 ) = { ( q0, 00 ) } , δ( q0,1, Z0 ) = { ( qf,ε ) } , δ( q0,1, 0 ) = { ( q1,ε ) } , δ( q1,1, 0 ) = { ( q1,ε ) } , δ( q1,ε, Z0 ) = { ( qf,ε ) } δ( q1,1, Z0 ) = { ( qf,ε ) } δ( qf,1, ε) = { ( qf,ε ) }
⑵ { 0m1n | m≥n };
解: 设PDA M = ( Q,T,Г,δ,q0,Z0,F ),其中
Q = { q0,q1,qf } , T = { 0,1} ,
Г = { 0,1, Z0 } , F = { qf } ,
δ定义如下:
δ( q0, ε, Z0 ) = { ( q1, Z0 ) } , δ( q0,0, Z0 ) = { ( q0, 0Z0 ) } , δ( q0,0,0 ) = { ( q0, 00 ) } , δ( q0,1, 0 ) = { ( q1,ε ) } , δ( q1,1, 0 ) = { ( q1,ε ) } , δ( q1,ε,Z0 ) = { ( qf,ε ) } , δ( q1,ε,0 ) = { ( qf,ε ) } δ( qf,1, ε) = { ( qf,ε ) } ⑶ { 0m1n0m | n和m任意 };
解: 设PDA M = ( Q,T,Г,δ,q0,Z0,F ),其中
Q = { q0,q1, q2,q3,qf } , T = { 0,1} ,
Г = { 0,1, Z0 } , F = { qf } ,
δ定义如下:
δ( q0,0, Z0 ) = { ( q0, 0Z0 ) } , δ( q0,0,0 ) = { ( q0, 00 ),( q0,ε)} , δ( q0,1, Z0 ) = { ( q3,ε ) } , δ( q3,1, ε) = { (q3,ε) } , δ( q3,ε, ε) = { ( qf,ε ) } , δ( q0,1,0 ) = { ( q1,0 ) } , δ( q1,1,0 ) = { ( q1,0 ) } , δ( q1,0,0 ) = { ( q2,ε ) } ,
δ( q2,0,0 ) = { ( q2,ε ) } , δ( q2,ε, Z0 ) = { ( qf,ε ) } , δ( q0, ε, Z0 ) = { ( qf, ε)}nm
? 第五章
1. 考虑如下的图灵机 M = ( {q0, q1, qf, },{0,1},{0,1,B},δ, q0,B,{ qf } ),其中δ定义为:
δ(q0,0) = {(q1,1,R)} , δ(q1,1) = {(q0,0,R)} , δ(q1,B) = {(qf,B,R)} , 非形式化但准确地描述该图灵机的工作过程及其所接受的语言.
解: 开始时,M的带上从左端起放有字符串0(10)i (i≥0),后跟无限多个空白符B.M的第一
次动作先读到第一个0,并改写为1;然后右移,如果找到第一个1,则改写为0,并继续向右寻找下一个0,这样重复进行.当向右寻找1的时候,找到一个空白符B,则结束. 该图灵机所接受的语言L(M) = { 0(10)i | i≥