13 计算理论初步_第1页
13 计算理论初步_第2页
13 计算理论初步_第3页
13 计算理论初步_第4页
13 计算理论初步_第5页
已阅读5页,还剩19页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十三讲

计算理论初步

对角语言与通用语言

问题与语言

问题的归约

Post对应问题与问题的不可判定性P问题与NP问题

NP-完全问题与NP-难问题

有关图灵机的判定问题计算理论初步

对角(diagonalization)语言

不是递归可枚举的语言

递归语言和递归可枚举语言的补运算

通用(universal)语言

是递归可枚举、但不是递归的语言

图灵机与输入串的二进制编码对角语言与通用语言

图灵机与输入串的二进制编码

图灵机的编码对于所关心的问题不失一般性,为方便讨论,先对图灵机作一些假定和简化:

(1)输入字母表为{0,1};

(2)假定有限状态为q1,q2,…,qk,并假定初态总是q1

,终态总是q2(因已假设图灵机到达接受态总是停机,所以假定一个终态即可).(3)假定带符号为X1,X2,…,Xm,并假定X1总代表0,

X2总代表1,X3总代表B.(4)假定带头的移动方向为D1和D2,分别代表L和R.对角语言与通用语言

图灵机的编码(续前页)在这些假定之后,转移规则

(qi,Xj)

=(qk,Xl,Dm)

可以编码为

0i10j10k10l10m,所有转移规则的编码排列在一起可以作为该图灵机的编码,形如C111C211…Cn-111Cn,

举例图灵机M=({q1,q2},

{0,1},{0,1,B},

,q1,B

,{q2})

,转移规则

(左)及其编码(右)为

(q1,1)

=(q3,0

,R),

0100100010100,

(q3,0)

=(q1,1

,R),

0001010100100,

(q3,1)

=(q2,0

,R),

00010010010100,

(q3,B)

=(q3,1

,L),

0001000100010010,该图灵机的编码为

01001000101001100010101001001100010010010100

110001000100010010

.对角语言与通用语言

图灵机与输入串的二进制编码

0,1字符串的编号将任意0,1字符串w

用1w编号.如

编号为1,0

编号为

10,1

编号为11,00

编号为100等.

这样,如果一个图灵机的二进制编码为wi

,而wi为第i个

0,1字符串,就把该图灵机称为第i个图灵机.

这里,任何一个输入串w,可以对应到某个整数编号j,

称之为第j个字符串.

图灵机与输入串偶对的编码在通用语言的定义中,将会用到图灵机与输入串偶对(M,w)的编码.设M的二进制编码为C,则(M,w)的二进制编码为

C

111w.对角语言与通用语言

图灵机与输入串的二进制编码

对角语言

定义按照上述编码方法,每个图灵机对应一个整数i

,即该图灵机的二进制编码wi

是第i个0,1字符串.然而,不是每个整数j都能对应一个图灵机(即第j个0,1字符串不对应任何图灵机的编码),此时不妨认为第j个图灵机为不接受任何字符串的图灵机,即L(Mj)=

.这样,就可以规定对任何i

1

,第i个图灵机为Mi.定义对角语言为

Ld={wi|wi

L(Mi)}.

结论Ld不是递归可枚举语言.

证明若存在某个图灵机M,满足L(M

)=Ld,设M是第k个图灵机,即M

=Mk,那么对于第k个0,1字符串wk,试问:是否有wk

Ld?

这是一个悖论.因此,不存在这样的M.对角语言与通用语言

递归语言和递归可枚举语言的补运算

结论作用于递归语言的补运算是封闭的.即,如果L

是递归语言,则L也是递归语言.¯

证明思路设图灵机M

总可以停机,且满足L=L(M).对M进行如下修改,以构造图灵机M

(参见右下图):¯

1.将M的终态作为M的非终态,且M在这些状态下没有下一步转移.¯¯3.对每一非终态q,以及每一带符X,若

(q,X)无定义,则增加转移

(q,X)=(r,Y,D),其中Y和D可任取.显然,L=L(M).¯¯2.增加一个新的终态r,且M在状态r下没有进一步的转移.¯对角语言与通用语言

结论递归可枚举语言的补运算不是封闭的即将看到的通用语言Lu是递归可枚举语言,但Lu不是递归可枚举的.¯

结论如果语言L

及L都是递归可枚举的,则语言L

及L都一定是递归的.¯¯

证明思路如右图所示,设L=L(M1),L=L(M2),构造图灵机M来模拟M1

和M2

的并行执行.无论输入串w是否属于L,

M

总是能够停机.¯对角语言与通用语言

递归语言和递归可枚举语言的补运算

通用语言

回顾设M为接受二进制输入串的图灵机,w为{0,1}*中的串,M的二进制编码为C,则(M,w)的二进制编码为

C

111w.

通用语言用于编码(M,w)的所有0,1字符串的集合,记为Lu.其中,(M,w)

满足

w

L(M

).

通用图灵机可以构造一个图灵机U

,使得Lu=L(U),

U

可以是如右图所示的多带图灵机(细节略).对于偶对

(M,w),w

L(M

),当且仅当

U接受(M,w)(编码形式).

称这样的U为通用图灵机.对角语言与通用语言

结论通用语言Lu

为递归可枚举的,但不是递归的.

证明思路已经看到存在通用图灵机U满足Lu=L(U),所以

Lu是递归可枚举语言.另一方面,用反证法可以说明Lu不是递归的.否则,Lu也是递归的.这样,可以得出对角语言Ld也是递归语言的结果,但Ld甚至不是递归可枚举的.

假定Lu=L(M)

,可以构造图灵机M

(参见下图),使得

Ld=L(M

).¯¯

推论通用语言Lu

的补不是递归可枚举的.对角语言与通用语言

通用语言

回顾设L*是字母表上的一个语言,则与L对应的问题(problem)定义为:任给一个串w

*

,判定w

L是否成立?

观点“语言”与“问题”本质上可以互换使用。

理解二者关系类似于“集合”与“谓词”之间的关系.

举例-语言对应问题通用语言Lu

对应的问题为:任给图灵机M

和输入串w

,判定w

是否被M接受?

举例-问题对应语言图灵机停机问题:任给图灵机M

,以及输入字符串w,试问对于w,M是否停机(halts)?该问题对应语言

LH={C

111C

对于输入串C

,图灵机

C

将停机}

.问题与语言

问题的判定(decision)如果一个问题所对应的语言是递归的,则称该问题是可判定的(decidable),否则是不可判定的(undecidable).顺便,如果一个问题所对应的语言是递归可枚举的,则称该问题是部分可判定的

(partially

decidable),否则是非部分可判定的。

举例

因为Lu不是递归的,所以如下问题是不可判定的:任给图灵机M

和输入串w

,判定w

是否被M接受?

举例

随后将证明,图灵机停机问题也是不可判定的,同时所对应的语言

LH

不是递归的.问题与语言

问题的归约

一个问题归约到另一个问题如果可以找到一个算法可以将问题P1的实例(instances)转化为问题P2的实例,并且对于后者作出的回答与前者相同,则称问题P1可以归约到(reduced

to)问题P2

.参见下图,如果问题P2是可判定的,则问题P1也是可判定的;如果问题P2是部分可判定的,则问题P1也是部分可判定的.

逆否命题如果P1不是递归的(可判定的),则P2也不是递归的(可判定的);如果P1不是递归可枚举的(部分可判定的),则问题P2不是递归可枚举的(部分可判定的).问题的归约

举例图灵机停机问题:任给图灵机M

,以及输入字符串

w,试问对于w,M是否停机(halts)?因为通用语言Lu可以归约到图灵机停机问题(参见下图),所以图灵机停机问题是不可判定的,其对

应的语言LH不是递归语言.问题的归约

问题的归约

判定图灵机的语言是否非空

该问题可对应语言Lne={M

L(M)

},可以归约到通用语言

Lu(参见左下图),所以Lne是递归可枚举的,即该问题是部分可判定的.而Lu也可以归约到Lne(参见右下图),所以Lne不是递归的,即该问题是不可判定的.

判定图灵机的语言是否为空

该问题可对应语言Le={M

L(M)=

},因为Le=Lne,而Lne是递归可枚举的但是不可判定的,所以Le不是递归可枚举的.¯有关图灵机的判定问题

Rice

定理

有关递归可枚举语言的任何非平凡性质都是不可判定的.

设L为所有递归可枚举语言的集合,关于递归可枚举语言的性质(property)可表达为P

L.若P不等于

或L,则P

为非平凡性质.

前述的Lne和Le的不可判定性都是Rice

定理的特例

举例直接应用Rice

定理可以得出下列问题是不可判定的:

1.任给图灵机可以接受的语言L,问L是否正规语言?

2.任给图灵机可以接受的语言L,问L是否上下文无关语言?有关图灵机的判定问题

Post

对应问题

Post

对应问题(Post’s

CorrespondingProblem),简称PCP.

PCP的一个实例包含同一字母表上的两组字符串,A=w1,w2,…,wk,B=x1,x2,…,xk

;称PCP

的该实例有解,当且仅当存在整数序列i1,i2,…,im

,使得

wi1wi2…wim=xi1xi2…xim.

举例

设

={0,1},两组字符串A,B由右图定义.

PCP的该实例有解,其中一个解为整数序列2,1,1,3,即

w2w1w1w3=x2x1x1x3=101111110.Post

对应问题与问题的不可判定性

结论

Post

对应问题是不可判定的.

可以将Lu归约到PCP(参考课本)来证明这一结论.

从PCP出发可以证明许多其它的不可判定问题

.

举例问题“是否一个给定的CFG是歧义的?”是不可判定的.

证明思路

设PCP的一个实例包含的两组字符串为A=w1,w2,

…,wk

和B=x1,x2,…,xk

;构造CFG

G包含如下产生式:

S

A

B;

A

w1Aa1

w2Aa2

…

wkAak

w1a1

w2a2

…

wkak

;

B

x1Ba1

x2Ba2

…

xkBak

x1a1

x2a2

…

xkak

;

PCP的该实例有解当且仅当G是歧义的.

即PCP可以归约到问题“是否一个给定的CFG是歧义的?”Post

对应问题与问题的不可判定性

图灵机的时间复杂度(timecomplexity)如果对于任何长为

n的输入串w,图灵机M可以在最多T(n)个移动步停机(无论是否有w

L(M)

),则称图灵机M的时间复杂度为T(n).

非确定图灵机的时间复杂度如果对于任何长为n的输入串

w,非确定图灵机M的任何一个转移序列可以在最多T(n)

个移动步停机(无论是否有w

L(M)

),则称非确定图灵机

M的时间复杂度为T(n).

问题(语言)类P

如果问题(语言)L满足:存在一个图灵机M,使得L=L(M),且M的时间复杂度T(n)为多项式,则称该问题是P问题,即L属于P.

问题(语言)类NP

如果问题(语言)L满足:存在一个非确定图灵机M,使得L=L(M),且M的时间复杂度T(n)为多项式,则称该问题是NP问题,即L属于NP.P

问题与NP

问题

P

NP

如果一个问题是P问题,则它一定是NP问题.

P=NP?目前仍是一个没有解决的开放问题.

多项式时间归约

如果问题P1

可以在多项式时间内归约到问题P2(参见右下图),有

1.若P2是P问题,则P1也是P问题.

2.若P2是NP问题,则P1也是NP问题.

3.若P1不是P问题,则

P2也不是P问题.

4.若P1不是NP问题,则P2也不是NP问题.P

问题与NP

问题

NP-完全(NP-complete)问题问题P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论