计算理论习题答案 CHAP2 new.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.1 略。 2.2 a. 利用语言A={ambncn | m,n?0}和A={anbncm | m,n?0}以及例3.20,证明上下文无关语言在交的运算下不封闭。 b. 利用(a)和DeMorgan律(定理1.10),证明上下文无关语言在补运算下不封闭。 证明:a.先说明A,B均为上下文无关文法,对A构造CFG C1 S?aS|T|? T?bTc|? 对B,构造CFG C2 S?Sc|R|? R?aRb 由此知 A,B均为上下文无关语言。 但是由例3.20, A∩B={anbncn|n?0}不是上下文无关语言,所以上下文无关语言在交的运算下不封闭。 b.用反证法。假设CFL在补运算下封闭,则对于(a)中上下文无关语言A,B,A,B也为CFL,且CFL对并运算封闭,所以A? 由DeMorgan定律A?BB也为CFL,进而知道A?B为CFL,=A∩B,由此A∩B是CFL,这与(a)的结论矛盾,所以CFL对补运算不封闭。 2.3 略。 2.4和2.5 给出产生下述语言的上下文无关文法和PDA,其中字母表?={0,1}。 a. {w | w至少含有3个1} 0, ??? S→A1A1A1A A→0A|1A|? b. {w | w以相同的符号开始和结束} S→0A0|1A1 0,??? A→0A|1A|? c. {w | w的长度为奇数} 0,??? S→0A|1A A→0B|1B|? B→0A|1A 0,??? 1,??? d. {w | w的长度为奇数且正中间的符号为0} S→0S0|1S1|0S1|1S0|0 0,??0 0,0?? e. {w | w 1,0?? S→A1A 0,1?? A→0A1|1A0|1A|AA|? 0,??0 f. {w | w=wR} S→0S0|1S1|1|0 0,??0 0,0?? g. 空集 S→S 2.6 给出产生下述语言的上下文无关文法: a. 字母表{a,b}上a的个数是b的个数的两倍的所有字符串组成的集合。 S→bSaSaS|aSbSaS|aSaSbS|? b.语言{anbn|n?0}的补集。见问题3.25 中的CFG: S→aSb|bY|Ta T→aT|bT|? c.{w#x | w, x?{0,1}*且 wR是x的子串}。 S→UV U→0U0|1U1|W W→W1|W0|# V→0V|1V|? d.{x1#x2#?#xk|k?1, 每一个xi?{a,b}* , 且存在i和j使得xi=xjR}。 S→UVW U→A|? A→aA|bA|#A|# V→aVa|bVb|#B|# B→aB|bB|#B|# W→B|? 2.8 证明上下文无关语言类在并,连接和星号三种正则运算下封闭。 a. A?B 方法一:CFG。设有CFG G1=(Q1,?,R1,S1)和G2=(Q2,?,R2,S2)且L(G1)=A, L(G2)=B。构造CFG G=(Q,?,R,S0),其中 Q= Q1?Q2?{S0}, S0是起始变元,R= R1?R2?{S0? S1|S2}. 方法二:PDA。 设P1=(Q1,?,?1,?1,q1,F1)识别A,P2=(Q1,?,?2,?2,q2,F2)是识别B。 则如下构造的P=(Q,?,?,?,q0,F)识别A?B,其中 1) Q=Q1?Q2?{q0}是状态集, 2) ?=?1??2,是栈字母表, 3) q0是起始状态, 4) F=F1?F2是接受状态集, 5) ?是转移函数,满足对任意q?Q, a???,b??? ?{(q1,?),(q2,?)},若q?q0,a?b??, ??1(q,a,b),若q?Q1,b?(?1)?,??(q,a,b)=? ?(q,a,b),若q?Q,b?(?),222?? ??,else.? b. 连接AB 方法一:CFG。设有CFG G1=(Q1,?,R1,S1)和G2=(Q2,?,R2,S2)且L(G1)=A, L(G2)=B。构造CFG G=(Q,?,R,S0),其中 Q= Q1?Q2?{S0}, S0是起始变元,R= R1?R2?{S0? S1S2}. 方法二:PDA。 设P1=(Q1,?,?1,?1,q1,F1)识别A,P2=(Q1,?,?2,?2,q2,F2)是识别B,而且P1满足在接受之前排空栈(即若进入接受状态,则栈中为空)这个要求。 则如下构造的P=(Q,?,?,?,q1,F)识别A?B,其中 1) Q=Q1?Q2是状态集, 2) ?=?1??2,是栈字母表, 3) q1是起始状态, 4) F=F1?F2是接受状态集, 5) ?是转移函数,满足对任意q?Q, a???,b??? ?1(q,a,b),? ??1(q,a,b)?{(q2,?)},???(q,a,b)=??1(q,a,b),

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档