收藏 分享(赏)

计算理论课后题及答案2.doc

上传人:精品资料 文档编号:10604378 上传时间:2019-12-04 格式:DOC 页数:9 大小:109KB
下载 相关 举报
计算理论课后题及答案2.doc_第1页
第1页 / 共9页
计算理论课后题及答案2.doc_第2页
第2页 / 共9页
计算理论课后题及答案2.doc_第3页
第3页 / 共9页
计算理论课后题及答案2.doc_第4页
第4页 / 共9页
计算理论课后题及答案2.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、第三章 上下文无关语言3.1 略。3.2 a. 利用语言 A=ambncn | m,n0和 A=anbncm | m,n0以及例 3.20,证明上下文无关语言在交的运算下不封闭。b. 利用(a)和 DeMorgan 律(定理 1.10),证明上下文无关语言在补运算下不封闭。证明:a.先说明 A,B 均为上下文无关文法,对 A 构造 CFG C1SaS|T|TbTc|对 B,构造 CFG C2SSc|R|RaRb由此知 A,B 均为上下文无关语言。但是由例 3.20, AB=anbncn|n0不是上下文无关语言,所以上下文无关语言在交的运算下不封闭。b.用反证法。假设 CFL 在补运算下封闭,则

2、对于(a)中上下文无关语言 A,B, ,A也为 CFL,且 CFL 对并运算封闭,所以 也为 CFL,进而知道 为B BABCFL,由 DeMorgan 定律 AB,由此 AB是 CFL,这与(a)的结论矛盾,BA所以 CFL 对补运算不封闭。3.3 略。3.4 和 3.5 给出产生下述语言的上下文无关文法和 PDA,其中字母表=0,1。a. w | w 至少含有 3 个 1SA1A1A1AA0A|1A|b. w | w 以相同的符号开始和结束S0A0|1A1A0A|1A|c. w | w 的长度为奇数S0A|1AA0B|1B|B0A|1A,1 1, 10, ,1 ,1 1,11,0,0,01

3、,10,01,0,1,0,d. w | w 的长度为奇数且正中间的符号为 0S0S0|1S1|0S1|1S0|0e. w | w 中 1 比 0 多SA1AA0A1|1A0|1A|AA|f. w | w=wRS0S0|1S1|1|0g. 空集SS3.6 给出产生下述语言的上下文无关文法:a 字母表a,b上 a 的个数是 b 的个数的两倍的所有字符串组成的集合。SbSaSaS|aSbSaS|aSaSbS|b语言a nbn|n0的补集。见问题 3.25 中的 CFG:SaSb|bY|TaTaT|bT|cw#x | w, x0,1 *且 wR 是 x 的子串。SUVU0U0|1U1|WWW1|W0|

4、#V0V|1V|dx 1#x2# #xk|k1, 每一个 xia,b* , 且存在 i 和 j 使得 xix jR。SUVWUA|AaA|bA|#A|#VaVa|bVb|#B|#BaB|bB|#B|#WB|3.7 略。1,00,0,01,00,0,$ ,$1,1,10,0,1,$ ,$1,00,11,10,0,01,10,0,$ ,$1,3.8 证明在 3.1 节开始部分给出的文法 G2 中,字符串 the girl touches the boy with the flower 有两个不同的最左派生,叙述这句话的两个不同意思。a_a_girl_a_girl_a_girl_a_girl_tou

5、ches_ a_girl_touches_a_girl_touches_a_girl_touches_the_a_girl_touches_the_boy_a_girl_touches_the_boy_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_the_a_girl_touches_the_boy_with_the_flower含义是 :女孩碰这个带着花的男孩a_a_girl_a_girl_a_girl_a_girl_touches_a_girl_touches_a_gi

6、rl_touches_the_a_girl_touches_the_boy_a_girl_touches_the_boy_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_the_a_girl_touches_the_boy_with_the_flower含义是: 女孩用花碰这个男孩3.9 给出产生语言 A=aibjck| i,j,k0 且或者 i=j 或者 j=k的上下文无关文法。你给出的文法是歧义的吗?为什么?解:下面是产生 A 的一个 CFG:SUV|ABUaUb|VcV

7、|AaA|BbUc|这个 CFG 是歧义的,因为字符串 abc 有如下两种不同的最左派生:SUVaUbVabVabcVabcSABaAVaVabVcabc3.10 给出识别 3.9 中语言 A 的下推自动机的非形式描述。解:其非形式描述为:此 PDA 有两个非确定性的分支:一个分支先读 a,并且每读一个 a 将一个 a 推入栈中,当碰到 b 时,每读一个 b 从栈中弹出一个 a,若没有 a 可弹出则拒绝,最后读 c 且不改变栈中的内容,若此时栈为空则接受。另一个分支也是先读a,但不改变栈中内容,当碰到 b 时,每读一个 b 将一个 b 推入栈中,再读 c, 每读一个 c 从栈中弹出一个 b,若

8、没有 a 可弹出则拒绝,若 c 读完后栈为空则接受。开始时,读输入串的字符,非确定性的选择一个分支运行,若有一个分支接受则接受,否则拒绝。3.13 设有上下文无关文法 G:STT|UU0U00|#T0T|T0|#a. 用普通的语言描述 L(G)。b. 证明 L(G)不是正则的。解: a. A=0i#0j#0k | i, j, k00i#02i | i0。b. 取 s=0p#02p, 则对于任意划分 s=xyz(|xy|p, |y|0), xynz=0p+i#02pA, 所以不是正则的。3.14 用定理 3.6 中给出的过程,把下述 CFG 转换成等价的乔姆斯基范式文法。ABAB|B|B00|解

9、:添加新起始变元 S0, 去掉 BS0A S0AABAB|B| ABAB|AB|BA|B|B00| B00去掉 A, 去掉 ABS0A S0AABAB|AB|BA|B|BB ABAB|AB|BA|00|BBB00 B00去掉 S0A, 添加新变元S0BAB|AB|BA|00|BB S0VB|AB|BA|UU|BBABAB|AB|BA|00|BB AVB|AB|BA|UU|BBB00 BUUVBAU0问题3.15 证明上下文无关语言类在并,连接和星号三种正则运算下封闭。a. AB方法一:CFG。设有 CFG G1(Q 1,R1,S1)和 G2=(Q2,R2,S2)且 L(G1)=A, L(G2)

10、=B。构造 CFG G=(Q,R,S0),其中Q= Q1Q2S0, S0 是起始变元,R= R1R2S0 S1|S2.方法二:PDA。设 P1=(Q1,1,1,q1,F1)识别 A,P 2=(Q1,2,2,q2,F2)是识别 B。则如下构造的 P=(Q,q0,F)识别 AB,其中1) Q=Q1Q2q0是状态集,2) 12,是栈字母表,3) q0 是起始状态,4) FF 1F2 是接受状态集,5) 是转移函数,满足对任意 qQ, a,b(q,a,b)= .,)(,)(,221021elsbQbaq若若若b. 连接 AB方法一:CFG。设有 CFG G1(Q 1,R1,S1)和 G2=(Q2,R2

11、,S2)且 L(G1)=A, L(G2)=B。构造 CFG G=(Q,R,S0),其中Q= Q1Q2S0, S0 是起始变元,R= R1R2S0 S1S2.方法二:PDA。设 P1=(Q1,1,1,q1,F1)识别 A,P 2=(Q1,2,2,q2,F2)是识别 B,而且 P1 满足在接受之前排空栈(即若进入接受状态,则栈中为空)这个要求。则如下构造的 P=(Q,q1,F)识别 AB,其中1) Q=Q1Q2 是状态集,2) 12,是栈字母表,3) q1 是起始状态,4) FF 1F2 是接受状态集,5) 是转移函数,满足对任意 qQ, a,b(q,a,b)= ., ,)(,)(, )(),(

12、222 112 1elsbQqbaqaF 若若 若若c. A*方法一:CFG。设有 CFG G1(Q 1,R1,S1),L(G 1)=A。构造 CFG G=(Q,R,S0),其中 Q= Q1 S0, S0 是起始变元,R= R 1S0S0S0|S1|.方法二:PDA。设 P1=(Q1,1,1,q1,F1)识别 A,而且 P1 满足在接受之前排空栈 (即若进入接受状态,则栈中为空)这个要求。则如下构造的 P=(Q,q1,F)识别 A*,其中1) Q=Q1q0是状态集,2) 1,是栈字母表,3) q0 是起始状态,4) FF 1q0是接受状态集,5) 是转移函数,满足对任意 qQ, a,b(q,a

13、,b)=., ,)( )(, ,),(0111 1elsbaqqFbaQ若若 若 若3.16 先说明如何把正则表达式直接转换成等价得上下文无关文法,然后利用问题 3.15 的结果,给出每一个正则语言都是上下文无关文法的一个证明。解:设有正则表达式 T,将其转化为上下文无关文法。1) 首先添加 ST,且令 S 为起始变元。2) 根据 T 的不同形式,按如下方式添加规则 若 Ta , 则在规则集中添加 Ta, 若 T, 则在规则集中添加 T, 若 T, 则在规则集中添加 TT, 若 TA B, 则在规则集中添加 TA|B, 若 TAB, 则在规则集中添加 TAB, 若 TA *, 则在规则集中添加

14、 TA,和 AAA|3) 若有新添加的变元,则根据其所对应的表达式转第 2 步,直到没有新的变元出现。下面来证明每一个正则语言都是上下文无关的由正则语言与正则表达式的等价性可知:对于一个正则语言都存在一个描述他的正则表达式,由前述讨论可知,这个正则表达式可转换为一个与之等价的上下文无关的文法。因此,此正则语言能由这个上下文无关文法产生。所以正则语言是上下文无关的。3.17 a. 设 C 是上下文无关语言,R 是正则语言。证明语言 CR 是上下文无关的。b 利用 a 证明语言A=w | wa,b,c*, 且含有数目相同的 a,b,c证明:a. 设 P=(Q1,1,q1,F1)是一个识别 C 的

15、PDA,N=(Q 2,2,q2,F2)是识别R 的一台 NFA。下面构造识别 CR 的 PDA 如下 S=(Q,q0,F):1) Q=Q1Q2, 是状态集,2) q0=(q1,q2)是起始状态,3) F= F1F2, 是接受状态集,4) 是转移函数,满足对任意 qQ1,rQ2,a,b, (q,r),a,b)=(q,r),c) | q1(q,a), (r,c)2(r,a,b).b. Aa*b*c*=anbncn|n0, 若 A 是上下文无关的,则由 a 中命题知anbncn|n0也是上下文无关的,矛盾。3.18 用泵引理证明下述语言不是上下文无关的:a. 0n1n0n1n | n0假设语言上下文

16、无关,设 p 为泵长度,取 S=0p1p0p1p.由泵引理知,S 可以划分为 uvxyz 且满足泵引理条件。考察子串 vxy,首先,它一定横跨 S 的中点,否则,若 vxy 位于 S 的前半段,由于|vxy| p, 则 uv2xy2z 中 1 将是后半段字符串的第一个字符,即不可能是 0n1n0n1n的形式。同理,vxy 也不可能位于 S 后半段的位置上。但是,若 vxy 跨越 S 的中点时,将 S 抽取成 uxz,它形如 0p1i0j1p,i,j 不可能都为 p,即 uxz 不可能是 0n1n0n1n的形式。综上,可知 S 不能被抽取,因此,该语言不是上下文无关的。b. 0n#02n#03n

17、 | n0假设语言上下文无关,设 p 为泵长度,取 S=0p#02p#03p, 由泵引理知,S 可以划分为 uvxyz 且满足泵引理条件。考察子串 vxy。首先,v,y 中不能有#,否则 S抽取成 uxz 后,其中#个数1。由条件 3,vxy 或者位于第 2 个#之前,或者位于第 1 个#之后。下面讨论这两种情况: 此时,uv 2xy2z 中第 3 部分 0 的个数保持不变,而前面部分的 0 的个数至少有一个增加,因此,uv 2xy2z 不在该语言中。 此时,uv 2xy2z 中第 1 部分 0 的个数保持不变,而第 2,3 部分 0 的个数至少有一个增加,也有 uv2xy2z 不在该语言中。

18、因此,该语言不是上下文无关的。c. w#x | w,xa,b*, w 是 x 的子串假设该语言上下文无关,设 p 为泵长度,取 S=0p1p#0p1p, 由泵引理知,S 可以划分为 uvxyz 且满足泵引理条件。显然,v,y 中不包含#,不然抽取后的 S=uxz中将不含#从而不在该语言中。子串 vxy 不能落在#的左侧,否则 uv2xy2z 中#左侧的字符串长度将大于右边。子串 vxy 不能落在#的右侧,否则 uxz 中#左侧的字符串长度也会大于右边。现在假设#x,则必存在不全为 0 的 i,j,使得 vy=1i0j,下面分两种情况考虑: j0, 则 uxz=0p1p-i#0p-j1p 不在该

19、语言中 j=0, 则 uv2xy2z 中 #左侧的字符串长度大于右边,不在该语言中。因此,该语言不是上下文无关的。d. x1#x2# #xk | k2, 每一个 xia,b*, 且存在 xix j假设该语言上下文无关,设 p 为泵长度,取 S=apbp#apbp, 由泵引理知,S 可以划分为 uvxyz 且满足泵引理条件。显然,v,y 中不包含#,不然抽取后的 S=uxz中将不含#从而不在该语言中。子串 vxy 不能落在#的左侧,否则 uv2xy2z 中#左侧的字符串长度将大于右边。子串 vxy 不能落在#的右侧,否则 uxz 中#左侧的字符串长度也会大于右边。于是 vxy 跨越#两侧.此时,

20、S 经抽取成 uxz 后,具有 apbi#ajbp的形式,其中,i,j不全为 p。因此,uxz 不在该语言中。综上该语言不是上下文无关的。3.19 证明:设 G 是一个 Chomsky 范式 CFG,则对任一长度2 的字符串wL(G), w 的任何派生恰好有 2n1 步。证明:(用数学归纳法) 当 n=2 时,对于 Chomsky 范式 CFG,长度为 2 的字符串必由 3 步派生,此时命题为真。假设当 2nk 时命题为真。当 n=k+1 时,对于长度为 k+1 的字符串s=s1s2s k+1,存在 S0 的一个直接派生 S0AB,使得 A 产生子串 s1s2s p,B 产生子串 sp+1sp

21、+2s k+1,其中 1pk+1。由归纳假设,A 产生子串 s1s2s p 需要 2p-1 步派生,而 B 产生子串 sp+1sp+2s k+1 需要 2(k+1-p)-1 步派生。因此,S 0 产生字符串 s 共需 2(k+1)-1 步派生。即当 n=k+1 时命题亦真。因此,由 G 产生长度为 n2 的字符串需要 2n-1 派生。3.20 设 G 是一个含有 b 个变元的乔姆斯基范式 CFG。证明:如果 G 产生某个字符串使用了至少 2b 步的派生,则 L(G)是无穷的。证明:设 G 产生字符串 S 需要至少 2b 步。由于一个分支点(变元) 对应一次派生,所以 S 的语法树 至少有 2b

22、 个分支点。又由于在乔姆斯基范式下,一个分支点至多有两个子分支点(这意味着层数n 的结点个数2 b1),从而 的由分支点组成的子树的高度大于等于 b+1。 有一条路径上分支点(变元)个数b+1 。由鸽巢原理:必有某个变元 R 在该路径上出现至少两次。不妨假设 R 出现在路径上最下面的 b+1个变元中。按上图所示,将 S 划分为 uvxyz,在每一个 R 的下面有一棵子树,它产生 S 的一部分。上面的 R 有一棵较大的子树,产生 vxy,下面的 R 有一棵较大的子树,产生 x,由于这两棵子树由同一个变元产生,因而可以相互替换。这里采用如下操作:反复用较大子树去替换较小子树,则我们得到对于任意 n

23、1, uv nxy nzL(G)。所以若我们能证明 v,y 不全为 ,则 L(G)是无穷的。TRRu v x y z事实上,由乔姆斯基范式的特点,上面一个 R 的派生选择的必为 RAB 形式的规则,而且不可能有 A 和 B ,所以 v,y 不全为。从而命题得证。3.22 考虑语言 B=L(G), 其中 G 是练习 3.13 中给出的文法。定理 3.19 关于上下文无关语的泵引理称存在关于 B 的泵长度 p。p 的最小值等于多少?要求给出证明。证明:p 的最小值为 4。令 D=0i#0j#0k | i, j, k0, E=0i#02i | i0, 则 L(G)=DE。L(G)中长度为 1 的字符

24、串仅有#,不能被抽取。L(G)中长度为 2 的字符串仅有#,也不能被抽取。D 中长度3 的字符串必含有 0,所以一定可以被抽取。E 中长度3 的字符串也可以被抽取(E 中没有长度等于 3 的字符串)。只需令 uvxyz 分别为 v=0,x=#,y=00, u,z 为两边其余的字符串即可。注意到此时|vxy|4。但是泵长度不能等于 3。因为若 p=3,则要求|vxy|3,但是对于 E 中的字符串来说,每在#左边抽取 1 个 0,则同时必须在#右边抽取 2 个 0,即|vy|3,又 x 必须包含#, 所以任何有效的抽取必有|vxy| 4。综上所述,p 的最小值为 4。3.23 给出一个语言,它不是

25、上下文无关的、但满足泵引理的三个条件。要求给出证明。解:令 Aa ibjckdl | i,j,k,l0, 且当 i=1 时,j=k=l,则:(1) A 满足泵引理的三个条件。取泵长度 p1。对 A 中任意长度大于1 的字符串 s= aibjckdl ,分情况可以如下抽取:若 i=1,则 j=k=l, 取 v=a,uxy=,z= bjcjdj, 则对 n0,uv nxynz= aibjcjdj A;若 i2,且 j,k,l 不同时为 0,不妨设 j0,取 u=ai,v=b,xy=,z= bj-1ckdl, 则对n 0,uv nxynz= aibj-1+nckdl A;若 i2,且 j=k=l=0, 取 u=ai-1,v=a,xyz=, 则对n0,uv nxynz= ai-1+nA;若 i=0,则 j,k,l 不同时为 0,不妨设 j0,取 v=b,uxy=,z= bj-1ckdl, 则对n 0,uv nxynz=bj-1+nckdl A。(2) A 不是上下文无关语言。事实上,若 A 为上下文无关语言,另取正则语言 R=ab*c*d*,由问题 3.17 可知,LR 是上下文无关的。但这与LR=abncndn | n0不是一个上下文无关语言矛盾。因此,A 不是上下文无关的。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报