当前位置:文档之家› 计算理论复习课2习题---答案

计算理论复习课2习题---答案

第三章 上下文无关语言与下推自动机a. {w | w 至少含有3个1} S →A1A1A1A A →0A|1A|εb. {w | w 以相同的符号开始和结束}S →0A0|1A1 A →0A|1A|εc. {w | w 的长度为奇数}0, ε→ε0,ε→ε 0,ε→ε1,ε→ε0,ε→εS →0A|1A A →0B|1B|ε B →0A|1Ad.{w | w 的长度为奇数且正中间的符号为0} S →0S0|1S1|0S1|1S0|0e.{w | wS →A1AA →0A1|1A0|1A|AA|εf.{w | w=w R }S →0S0|1S1|1|0g.空集 S →S3.6 给出产生下述语言的上下文无关文法: a . 字母表{a,b}上a 的个数是b 的个数的两倍的所有字符串组成的集合。

S →bSaSaS|aSbSaS|aSaSbS|εb .语言{a n b n |n ≥0}的补集。

见问题3.25中的CFG: S →aSb|bY|Ta T →aT|bT|εc .{w#x | w, x ∈{0,1}*且w R 是x 的子串}。

S →UV0,ε→0,0→0,ε→1,0→0,1→0,ε→0,0→U→0U0|1U1|WW→W1|W0|#V→0V|1V|εd.{x1#x2#⋯#x k|k≥1, 每一个x i∈{a,b}* , 且存在i和j使得x i=x j R}。

S→UVWU→A|εA→aA|bA|#A|#V→aVa|bVb|#B|#B→aB|bB|#B|#W→B|ε3.14解:添加新起始变元S0, 去掉B→εS0→A S0→AA→BAB|B|εA→BAB|AB|BA|B|εB→00|εB→00去掉A→ε, 去掉A→BS0→A S0→AA→BAB|AB|BA|B|BB A→BAB|AB|BA|00|BBB→00 B→00去掉S0→A, 添加新变元S0→BAB|AB|BA|00|BB S0→VB|AB|BA|UU|BBA→BAB|AB|BA|00|BB A→VB|AB|BA|UU|BBB→00 B→UUV→BAU→03.15 证明上下文无关语言类在并,连接和星号三种正则运算下封闭---答案。

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= Q 1⋃Q 2⋃{S 0}, S 0是起始变元,R= R 1⋃R 2⋃{S 0→ S 1|S 2}.方法二:PDA 。

设P 1=(Q 1,∑,Γ1,δ1,q 1,F 1)识别A ,P 2=(Q 1,∑,Γ2,δ2,q 2,F 2)是识别B 。

则如下构造的P=(Q,∑,Γ,δ,q 0,F)识别A ⋃B ,其中 1) Q=Q 1⋃Q 2⋃{q 0}是状态集, 2) Γ=Γ1⋃Γ2,是栈字母表, 3) q 0是起始状态,4) F =F 1⋃F 2是接受状态集,5) δ是转移函数,满足对任意q ∈Q, a ∈∑ε,b ∈Γεδ(q,a,b)=.,)(,,)(,,,,),,,(),,,()},,(),,{(221102121else b Q q b Q q b a q q b a q b a q q q εεεδδεεΓ∈∈Γ∈∈===⎪⎪⎩⎪⎪⎨⎧∅若若若b. 连接AB方法一:CFG 。

设有CFG G 1=(Q 1,∑,R 1,S 1)和G 2=(Q 2,∑,R 2,S 2)且L(G 1)=A, L(G 2)=B 。

构造CFG G=(Q,∑,R,S 0),其中Q= Q 1⋃Q 2⋃{S 0}, S 0是起始变元,R= R 1⋃R 2⋃{S 0→ S 1S 2}.方法二:PDA 。

设P 1=(Q 1,∑,Γ1,δ1,q 1,F 1)识别A ,P 2=(Q 1,∑,Γ2,δ2,q 2,F 2)是识别B ,而且P 1满足在接受之前排空栈(即若进入接受状态,则栈中为空)这个要求。

则如下构造的P=(Q,∑,Γ,δ,q 1,F)识别A ⋃B ,其中 1) Q=Q 1⋃Q 2是状态集,2) Γ=Γ1⋃Γ2,是栈字母表, 3) q 1是起始状态,4) F =F 1⋃F 2是接受状态集,5) δ是转移函数,满足对任意q ∈Q, a ∈∑ε,b ∈Γεδ(q,a,b)=.,,)(,),,,(),,(),(,),,,(,,)},,{(),,(,)(,),,,(222111211111else b Q q b a q b a F q b a q b a F q q b a q b F Q q b a q ∅Γ∈∈≠∈==∈⋃Γ∈-∈⎪⎪⎪⎩⎪⎪⎪⎨⎧εεδεεδεεδδ若若若若c. A *方法一:CFG 。

设有CFG G 1=(Q 1,∑,R 1,S 1),L(G 1)=A 。

构造CFG G=(Q,∑,R,S 0),其中Q= Q 1 ⋃{S 0}, S 0是起始变元,R= R 1⋃{S 0→S 0S 0|S 1|ε}.方法二:PDA 。

设P 1=(Q 1,∑,Γ1,δ1,q 1,F 1)识别A ,而且P 1满足在接受之前排空栈(即若进入接受状态,则栈中为空)这个要求。

则如下构造的P=(Q,∑,Γ,δ,q 1,F)识别A *,其中 1) Q=Q 1⋃{q 0}是状态集, 2) Γ=Γ1,是栈字母表, 3) q 0是起始状态,4) F =F 1⋃{q 0}是接受状态集,5) δ是转移函数,满足对任意q ∈Q, a ∈∑ε,b ∈Γεδ(q,a,b)=⎪⎪⎪⎩⎪⎪⎪⎨⎧∅===≠∈==∈⋃-∈.,,,),(),,(),(,),,,(,,)},,{(),,(,),,,(0111111111else b a q q q b a F q b a q b a F q q b a q F Q q b a q εεεεδεεδδ若若若若第四章图灵机证明:要证这四种运算下图灵可识别语言类封闭,只需设计出图灵机来识别此种语言。

设A和B是图灵可识别语言,A=L(M1),B=L(M2),M1和M2是两个图灵机。

a.M=“对于输入w:1) 在输入w上并行运行M1和M2;2) M1和M2中有一个停机且接受,则接受;若都停机且拒绝,则拒绝。

”M识别A1⋃A2。

所以图灵可识别语言类对并运算是封闭的。

b. M=“输入w,1)出所有将w分成两段的方式(|w|+1种).2)对于i=1,2,⋯重复以下步骤:3)对于每一种分段方式,在第一段上运行M1i步,在第二段上运行M2i步,或者直到停机。

若都接受,则接受。

”M识别A1 A2。

所以图灵可识别语言类对连接运算是封闭的。

c.M=“输入w,1)列出w的所有分段的方式(2|w|-1种).2)对于i=1,2,⋯重复以下步骤:3)对于每一种分段方式,分别在每一段上运行M1 i步,或者直到停机。

若M1接受所有段,则接受。

”M识别A*。

所以图灵可识别语言类对星号运算是封闭的。

d.M= “对于输入w:1)在输入w上运行M1。

若M1接受,则转(2);若M1拒绝,则拒绝。

2)在w上运行M2。

若M2接受,则接受;若M2拒绝,则拒绝。

”M识别A⋂B。

所以图灵可识别语言类对并运算封闭。

第五章可判定性停机问题是不可判定的(第二版P111、第一版P115):证明:为证明B是不可数的,必须证明在B和N之间不存在对应。

下面用反证法证之。

假设在B和N之间存在对应f,现在的任务是证明它没有应有的性质。

因为它是一个对应,必须能将N的所有元素与B的所有元素进行配对。

如果能找到B中的一个x,它和N中的任何元素都不能配对,则找到了矛盾。

为此,实际构造出这样一个x。

方法如下:在选择它的每一位数字时,都使得:x不同于某个无限序列,且此无限序列已与N中的一个元素配对。

这样就能保证x 不同于任何已配对的无限序列。

用一个例子来说明这个思路。

假设对应f存在,且设f(1) = 010101…,f(2) = 101010…,f(3) =…等等。

则f将1和010101…配对,将2和101010…配对,依此类推。

要保证对每个n都有x ≠ f(n)。

为保证x ≠ f(1),只要保证x的第一位数字不同于f(1)= 010101…的第一位数字,即不是数字0,令它为1。

为保证x ≠ f(2),只要保证x的第二位数字不同于f(2) = 101010…的第一位数字,即不是数字0,令它为1。

以这种方法继续下去,就能够得到x的所有数字。

不难知道,对任意n,x都不是f(n),因为x与f(n)在第n位上不同见课本证明:构造DFA N,使L(N)={含奇数个1的字符串}。

构造图灵机F=“对于输入<M>,其中M是DFA,1)构造DFA D,使L(D)=L(M)∩L(N)。

2)检测L(D)是否为空。

(E DFA可判定检测)。

3)若L(D)= ,则接受;否则拒绝。

”证明:构造如下TM:D=“输入<M>,1)构造DFA M1使得L(M1)= L(M)R。

2)检测M1与M是否等价。

3)若等价,则接受;否则拒绝。

”D判定S。

第六章归约性。

相关主题