计算理论习题答案CHAP3new.docx

上传人:b****5 文档编号:12091001 上传时间:2023-04-17 格式:DOCX 页数:11 大小:29.56KB
下载 相关 举报
计算理论习题答案CHAP3new.docx_第1页
第1页 / 共11页
计算理论习题答案CHAP3new.docx_第2页
第2页 / 共11页
计算理论习题答案CHAP3new.docx_第3页
第3页 / 共11页
计算理论习题答案CHAP3new.docx_第4页
第4页 / 共11页
计算理论习题答案CHAP3new.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

计算理论习题答案CHAP3new.docx

《计算理论习题答案CHAP3new.docx》由会员分享,可在线阅读,更多相关《计算理论习题答案CHAP3new.docx(11页珍藏版)》请在冰豆网上搜索。

计算理论习题答案CHAP3new.docx

计算理论习题答案CHAP3new

3.3修改定理3.10以得到推论3.12的证明,即证明一个语言是可判定的当且仅当有非确定的TM判定它。

证明:

若M是一个确定型判定器则,则M也是一个非确定型判定器。

现在设N是一个非确定的判定器,将构造一个与之等价的确定型判定器M。

模拟过程使用深度搜索。

设N的不确定性分支的最大个数为b。

M有三个带:

一个输入带,一个工作带,一个地址带。

M按深度优先方式搜索N的不确定计算分支树。

M=“输入w,

1)初始化,第一带上为w,第二带为空,第三带为1;

2)将第一带的内容复制到第二带上,

3)按当前地址位数字选择N的一个不确定性分支,在第二带上模拟N运行一步;

4)若当前地址位为i

5)若当前地址位为i=b,且当前选择无效或按当前选择进入拒绝状态,则将当前地址位改为空格,左移并将当前地址位改为空格直到找到一个地址位其值

6)若N进入接受状态,则接受;否则,右移一格,将空格上写入1,转第三步。

由于N是非确定型判定器,所以对任意输入,由本题的提示M一定会停机。

3.4给出枚举器的形式定义。

解:

枚举器E=(Q,,,,q0,qaccept,qreject),其中转移函数为:

Q×Q××{L,R}×*

(q,a)=(r,b,s1,c)

表示若E处于状态q,且在工作带上读到a,则状态转移为r,当前格改写为b并按s1作相应左或右移,打印带上写下字符串c,其中若c等于,则不打印。

另外E的起始格局只能是q0v,这里v表示一个空格。

3.5检查图灵机的形式定义,回答下列问题并解释你的推测:

a.图灵机能在它的带子上写下空白符吗

b.带字母表和输入字母表能相同吗?

c.图灵机的读写头能在连续的两步中处于同一个位置吗?

d.图灵机能只包含一个状态吗?

解:

a.能。

因为空白符属于带字母表;

b.不能。

因为空白符不属于输入字母表;

c.能。

当读写头处于左端点时,如果转移是向左转移,因为不准机器从带的左端点移出,所以下一个格局读写头仍在左端点。

d.不能。

因为qacceptqreject,至少应有两个状态。

3.6解:

因为M不一定是判定器,可能会在运行某个si时不停机,则L(M)中按字典序大于si的字符串不可能被枚举出来。

3.7解:

因为图灵机的一个本质要求是一步之内,只能做有限的工作,而第1)步中取所有可能的值,这有无限多种情况。

3.8构造具有3条带的图灵机。

对于问题a.

1)w先读入第一条带,然后读到0就把0写入第2条带,读到1就把1写入第3条带,直到读到空格为止。

2)然后把3个读写头都返回到最左边。

3)开始读第2条带和第3条带,每次都是读一个字符,如果同时遇上空格符,则接收,否则拒绝。

对于问题b:

1)和a的第1步相同。

2)和a的第2步相同。

3)每次读带3的一个字符就读带2的两个字符,如果同时遇上空格符,就接收,否则拒绝。

对于问题c:

1)和a的第1步相同。

2)和a的第2步相同。

3)每次读带3的一个字符就读带2的两个字符,如果同时遇上空格符,就拒绝,否则接受。

3.9由题知,1-pda代表一个栈的下推自动机,2-pda代表两个栈的下推自动机。

如果能用2-pda模拟一个图灵机,而我们已经知道图灵机比下推自动机强大,那么就有2-pda比1-pda更强大。

设有TMS。

下面构造2-pdaP,且记其两个栈分别为A,B:

P=“对于输入w,

1)将w读入栈A,再全部从栈A中依次弹出并读入栈B。

2)模拟S在w上运行。

记录S的当前状态,并且栈B的栈顶字符为S的读写头所指方格的字符:

a)若S执行一个右移(q,a)=(r,b,R),则将栈B的栈顶字符a替换为b,弹出b,推入栈A,记录S的当前状态r。

b)若S执行一个左移(q,a)=(r,b,L),首先将栈B的栈顶字符a替换为b;若栈A不空,则将栈A弹出一个字符推入栈B;若栈A为空(对应于S处于工作带最左端),则不作栈操作。

记录S的当前状态r。

3)若S进入接受状态,则进入接受状态。

由上知.我们用2-pda模拟了图灵机,所以2-pda比1-pda强大.

下面用一个四带TMS来模拟一个3-pdaP,要求P进入接受状态之前排空栈,并且或者推入或者弹出:

记P的三个栈为A,B,C。

S的四个带,第一带用来模拟P的输入带,第二,三,四带分别模拟栈A,B,C:

S=“对于输入字符串w,

1)初始化,第一带放入w,第二,三,四带为空。

2)模拟P分别在四个带上按如下方式动作:

a.若P在输入带上读一个非空字符,则读第一带字符并右移一格;

若P在输入带上读一个,则在第一带上不读字符,且读写头保持不动。

b.栈A,B,C中若有弹出,则在相应带上当前格改写为空格,并左移一格;若有推入a,则在相应带上右移一格,并写入a。

3)若P进入接受状态,则接受。

3.10证明双无限带图灵机识别图灵可识别语言。

证明思路:

利用双无限单带图灵机模拟普通单带图灵机时,只需要设计一个左端点。

我们的证明是让它在第一格左边标记“$”作为左端点。

证明:

首先用单带双无限带图灵机模拟普通单带图灵机:

设有普通图灵机M1=(Q1,,1,1,q0,qaccept,qreject)。

下面构造与之等价的单带双无限带图灵机M2=(Q2,,2,2,qs,qaccept,qreject),其中

Q2=Q1{qs,qt},qs为新的起始状态;2=1{$}.

对任意qQ2,a2,

再用普通单带图灵机模拟单带双无限带图灵机:

设有单带双无限图灵机M1=(Q,,,,q0,qaccept,qreject),下面构造普通单带图灵机M2:

M2=“输入串w,

1)将带上字符串改写为$w,将读写头放在w的第一个字符上,

2)按照M1的转移函数运行,

3)每当读写头移到了$上,就将$右边的所有字符右移一格,并在$右边的方格里写上空格符,再将读写头放在这个方格上,转第二步,

4)若进入接受状态,则接受;若进入拒绝状态则拒绝。

也可以用普通双带图灵机模拟单带双无限带图灵机:

设有单带双无限图灵机M1=(Q,,,,q0,qaccept,qreject),下面构造普通双带图灵机M2:

M2=“输入串w,

1)在第一个带上放上$,读写头放在$上;

第二个带子上放入#w,读写头放在第二个方格上。

2)当第一带读写头位于$上,而第二带读写头不在#上时,在第二带上按照M1的转移规则运行,直到停机或读写头移到#上。

若进入接受状态则接受,若进入拒绝状态则拒绝。

若读写头移到#上,则将第一带上读写头右移一格。

3)当第二带读写头位于#上,而第一带读写头不在$上时,在第一带上按照M1的转移规则运行,但是每一步要将读写头移动方向反向,直到停机或读写头移到$上。

若进入接受状态则接受,若进入拒绝状态则拒绝。

若读写头移到$上,则将第二带上读写头右移一格,转第二步。

3.11只写一次图灵机是一个单带图灵机,它在每个带方格上最多只能改变其内容一次(包括带上得输入区域)。

证明图灵机模型的这个变形等价于普通的图灵机模型。

证明:

普通单带图灵机总是可以模拟只写一次图灵机。

下面说明怎样用一个只写一次TMT模拟一个普通单带TMS。

T=“对于输入w=w1w2wn,

1)在w1w2wn上并模拟S运行。

2)每当S要改写工作带时(例如设S要将当前方格内容改写为b,并且左移或右移一格),T按如下方式动作:

a.将当前方格改写为“b*”,在带子右边第一个空格写下“#”。

b.将“#”左边的字符抄写到“#”右边(注:

每抄写一个字符,需要将此格字符改写一次以作上标记,但是“b*”不用再作另外标记,而且将“b*”抄写为“b~”)。

c.找到带有标记“~”的字符,再模拟S左移或右移一格。

然后继续模拟S。

3)若S接受则接受;若S拒绝则拒绝。

3.12对于普通图灵机N,构造与之等价的带左复位的图灵机E:

E=“对于输入w,

1)在w上模拟N的一步动作:

若N要将当前格由a改为b且右移,则照此动作;

若N要将当前格由a改为b且左移,则将当前格由a改为b#且复位:

a)以~标记当前位,右移一格;

b)若当前位没有标记#,则复位,右移直到找到标记有~的字符,去掉此标记,右移一格转步(a);

c)若当前位有标记#,则去掉标记#并复位,右移或直到找到标记有~的字符,去掉此标记;

2)若N进入接受状态,则接受;若进入拒绝状态,则拒绝;否则转第一步。

L(E)=L(N)。

因此左复位的图灵机识别图灵可识别语言类。

3.13以停留代替左移的图灵机识别什么语言类?

解:

正则语言类。

首先一个DFA可以被一个以停留代替左移的图灵机模拟。

下面证明一个以停留代替左移的图灵机S=(Q,,,,q1,qaccept,qreject),可以被一个NFAM=(Q1,,1,q0,F)模拟。

M的构造如下:

令Q1=Q×{qend},F={qend},q0=(q1,),

1)对任意qQ-{qaccept,qreject},a,令

1((q,),a)={(q,a)};

2)对任意qQ-{qaccept,qreject},a,

若有转移(q,a)=(r,b,R),则令1((q,a),)={(r,)};

若有转移(q,a)=(r,b,S),则令1((q,a),)={(r,b)};

3)对任意a,b,

令1((qaccept,a),b)={(qaccept,)};

4)对任意qQ,令Sq=(Q,,,,q,qaccept,qreject),

若L(Sq),则令1((q,),)={qend}。

其中第一类转移是用来读字符的。

第二类转移是用来模拟S的读写头的移动的。

由于S没有左移,所以右移一格之前改写的内容b可以舍去。

第三类转移用来处理当S已进入接受状态,但是字符串还没有读完的情况的。

即先由1((qaccept,a),b)={(qaccept,)}读完所有剩余字符,再由第四类转移中的1((qaccept,),)={qend}进入接受状态。

第四类转移用来处理S的读写头移出输入区域的情况的,在这种情况下,S是进入接受状态,还是进入拒绝状态,还是不停机,完全取决于进入空白区域时的状态q:

即若L(Sq),则S最终会进入接受状态;若L(Sq),则S最终会进入拒绝状态或不停机。

3.15证明可判定语言类在下列运算下封闭。

a.并。

证明:

设M1,M2为识别可判定语言A1,A2的判定器。

构造图灵机M:

M=“输入w,

1)分别在w上运行M1和M2,每运行一步M1就运行一步M2。

2)若M1和M2中有一个接受,则接受。

若都拒绝,则拒绝。

M为识别A1A2的判定器。

所以可判定语言类对并运算封闭。

b.连接。

证明:

设M1,M2为识别可判定语言A1,A2的判定器。

构造图灵机M:

M=“输入w,

1)列出所有将w分成两段的方式(|w|+1种).

2)对于每一种分段方式,在第一段上运行M1,在第二段上运行M2。

若都接受,则接受。

3)若没有一种分段方式被接受则拒绝。

M为识别A1

A2的判定器。

所以可判定语言类对连接运算封闭。

c.星号。

证明:

设M1为识别可判定语言A的判定器。

M=“输入w,

1)列出w的所有分段的方式(2|w|-1种)。

2)对于每一种分段方式,重复下列步骤:

3)分别在每一段上运行M1,若每一段都能被M1接受,则接受。

4)若没有一种分段方式被接受则拒绝。

M为识别A*的判定器。

所以可判定语言类对星号运算封闭。

d.补。

证明:

设M1=(Q,,,,q0,q1,q2)为识别可判定语言A的判定器,其中q1为接受状态,q2为拒绝状态。

令M=(Q,,,,q0,q2,q1),其中q2为接受状态,q1为拒绝状态。

则M为识别

的判定器。

所以可判定语言类对补运算是封闭的。

e.交。

证明:

设M1,M2为识别可判定语言A1,A2的判定器。

构造图灵机M:

M=“输入w,

1)分别在w上运行M1和M2,每运行一步M1就运行一步M2。

2)若M1和M2中都接受,则接受。

若M1和M2中有一个拒绝,则拒绝。

M为识别A1A2的判定器。

所以可判定语言类对交运算是封闭的。

3.16证明图灵可识别语言类在下列运算下封闭:

a.并b.连接c.星号d.交

证明:

要证这四种运算下图灵可识别语言类封闭,只需设计出图灵机来识别此种语言。

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

a.M=“对于输入w:

1)在输入w上并行运行M1和M2;

2)M1和M2中有一个停机且接受,则接受;若都停机且拒绝,则拒绝。

M识别A1A2。

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

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)对于每一种分段方式,分别在每一段上运行M1i步,或者直到停机。

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

M识别A*。

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

d.M=“对于输入w:

1)在输入w上运行M1。

若M1接受,则转

(2);若M1拒绝,则拒绝。

2)在w上运行M2。

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

M识别AB。

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

3.21

1)由cmax|c1|知,当|x|1,则欲判定不等式明显成立。

2)当|x|>1时,由

c1xn+c2xn-1+…+cnx+cn+1=0

c1x=-(c2+…+cnx2-n+cn+1x1-n)

|c1||x|=|c2+…+cnx2-n+cn+1x1-n|

<|c2|+…+|cn||x|2-n+|cn+1||x|1-n

|c2|+…….|cn|+|cn+1||x0|

ncmax

<(n+1)cmax

|x|<(n+1)cmax/|c1|.

(1)和

(2)可知结论成立。

3.22解:

A是可判定的。

因为若上帝存在,则s=0,A={0}是可判定的。

若上帝不存在,则s=1,A={1}是可判定的。

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

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1