计算理论导引习题答案[第2版]CHAP5new
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.1 证明EQ CFG 是不可判定的。
解:只须证明ALL CFG ≤m EQ CFG 即可。
构造CFG G 1,使L(G 1)=∑*。设计从ALL CFG 到EQ CFG 的归约函数如下: F=“对于输入<G >,其中G 是CFG :
1)输出<G ,G 1>。”
若<G >ALL CFG ,则
若<G >ALL CFG ,则
F 将ALL CF
G 归约到EQ CFG 即ALL CFG ≤m EQ CFG
∵ALL CFG 是不可判定的,
∴EQ CFG 是不可判定的。
5.2证明EQ CFG 是补图灵可识别的。
证明:注意到A CFG ={
1) 对于字符串S 1, S 2,,重复如下步骤。
2) 检测S i 是否可以由G 和H 派生。
3) 若G 和H 中有一个能派生w ,而另一个不能,则接受。”
F 识别EQ CF
G 的补。
5.3 略。
5.4 如果A m B 且B 是正则语言,这是否蕴涵着A 也是正则语言?为什么? 解:否。例如:
对非正则语言A={0n 1n |n 0}和正则语言B={0},可以构造一个可计算函数f 使得:
f(w)=⎩⎨⎧≠=n n n
n 1
0w 1,10w 0, 于是w A f(w)B,故A m B 。
5.5 证明A TM 不可映射规约到E TM 。
证明:反证法
假设A TM m E TM , 则有TM m TM E A ≤。而A TM 的补不是图灵可识别的,从而可知E TM 的补也不是图灵可识别的。
下面构造一个识别E TM 的补的图灵机S :
S=“输入
1) 对i=1,2,…重复下一步。
2) 对S 1,S 2,…,S i 模拟M 运行i 步,若有接受,则接受。”
S 可识别E TM 的补,所以E TM 的补是图灵可识别的,与上面由假设得到的E TM 的补不是图灵可识别的矛盾。所以A TM 不可映射规约到E TM 。
5.6 略。
5.7证明:如果A 是图灵可识别的,且A ≤m A ,则A 是可判定的。
证:∵A ≤m A ⇔A ≤m A 且A 为图灵可识别的
∴A 也为图灵可识别的
∴由A 和A 都是图灵可识别的可知A 是可判定的.
5.8 解:在由
若M 中有一个左移(q,a)=(r,b,L),则添加一张骨牌:
⎥⎦
⎤⎢⎣⎡rb qa ##。 并且第一张骨牌改为⎥⎦
⎤⎢⎣⎡w q 0###。
问题
5.x 证明所有的图灵可识别问题都映射可规约到A TM 。
证明:设问题A 是图灵可识别的,且M 是识别A 的TM 。构造一个可计算函数
f 使得f(w)=
w A f(w) A TM 。
这说明A ≤m A TM 。
5.9 证明S={
1) 若x 01或10,则拒绝。
2) 若x=01,则接受。
3) 若x=10,则在w 上运行M 。若M 接受,则接受。”
可以看到
5.10 证明S={
证明:对任意
D=“输入x ,
1) 初始化,x 放在第一带上,第二带为空。
2) 在第一带上模拟M 运行。
3) 若M 接受,则在第二带上写下一个非空白符,并接受;若M 拒绝,则
拒绝。”
从D 的构造可以看出
5.13 USELESS TM ={
求证USELESS TM 不可判定。
证明:构造E TM 到USELESS TM 的规约函数:
F=“对于输入
1) 构造TM N N=(Q,1,1,1,q 0,q accept ,q reject ),其中,
1={$},1=1{$}。设Q={q 0,q 1,q 2,,q n ,q reject ,q accept }。 对任意q Q ,a 1:
⎪⎩⎪⎨⎧==<≤==≠=+.$,),,$,(,0,$,),,$,($,),,(),(11n reject
i i q q a L q n i q q a L q a a q a q δδ
2) 输出
对于任意TM M ,如上构造的TM N ,除接受状态外,每个状态均非无用状态(若在输入$上运行N ,则N 遍历q 0,q 1,q 2,,q n ,最后进入q reject 并停机)。构造N 的目的就是消除M 中任何非接受状态为无用状态的可能。因此有:
所以E TM ≤m USELESS TM 而E TM 不可判定,因此USELESS TM 不可判定。
5.14 考虑这样的问题:检查图灵机在输入w 上,当其读写头处于带最左方格时,是否曾经试图将读写头向左移。将这个问题形式化为一个语言,并证明它是不可判定的。
解:此问题可以形式化为一个语言S :
S={
试图将读写头向左移}
为证明S 是不可判定的,可以证明A TM ≤m S 。构造一个可计算函数f:∑*→∑*,使得对每个
M ’=“输入x,
1) 将工作带上内容改为$x 。
2) 读写头置于x 的第一个字符,模拟M 运行。
3) 每当读写头移到$,保持状态,右移一格。
4) 若M 进入接受状态,读写头左移到$,再左移一次,停机,接受;若
M 进入拒绝状态,则拒绝。”
于是
5.15 证明S={
证明:构造如下TM F :
F=“输入
1) 计算M 的状态数,记为p 。
2) 在w 上模拟M ,直到有左移,或停机,或已运行了|w|+p 步。
3) 若有左移,则接受;若停机但无左移,则拒绝;若无左移且不停机,则
拒绝。”
需要说明的是在|w|+p 步运行中无左移也不停机的情况。由于无左移,M 运行|w|