计算的复杂性第七章NP完全问题.ppt
《计算的复杂性第七章NP完全问题.ppt》由会员分享,可在线阅读,更多相关《计算的复杂性第七章NP完全问题.ppt(99页珍藏版)》请在三一办公上搜索。
1、Email:2023/9/15,计算的 复杂性,计算机科学与工程学院,顾 小 丰,99-22,2023/9/15,第7章 NP完全问题,判定问题、语言和编码 多项式变换与可满足性问题 非确定型图灵机 NP类,NP完全问题与Cook定理强NP完全问题Co-NP类问题NP困难问题 空间复杂性简介,99-23,2023/9/15,序,对一个已确定是可计算的问题,人们总试图寻求实现它的最优算法。然而对有些问题,这个工作难度很大,目前还不能做到这点。,目前人们已经证明了一些问题,它们的时间复杂性是多项式阶的,这只须设计一个实现它的时间复杂性是多项式阶的算法即可,例如分类(又称排序)问题。这样一类问题将被
2、称之为P类问题。还有一类问题,人们已经设计出实现它的时间复杂性为指数阶的算法,并且已证明该问题不存在多项式阶的算法,例如梵塔问题;这样一类问题人们称之为顽型问题。但是有这样一类问题,人们目前已设计的实现它的算法其时间复杂性为指数阶的,但还不能肯定它有或没有多项式阶的算法,例如第6章讨论的当m2时任意图的m-可着色问题。为研究这类问题,人们又设计一种称为非确定图灵机的计算模型,这些问题对应一个非确定的图灵机,而且可以在多项式时间内完成计算。人们称这类问题为NP问题,NP是Nondeterministic Polynomial的缩写,即非确定的多项式的意思。,99-24,2023/9/15,197
3、1年S.Cook发表了“The Complexity of Theorem Proving Procedures”这篇著名论文,1972年R.Karp发表了“Reducibilty Among Combinatorial Prob1ems”,从此奠定了NP完全理论的基础。NP完全理论指出在NP类中有一些问题具有以下性质:若其中一个问题获得多项式算法,则这一类问题就全部获得了多项式算法;反之,若能证明其中一个问题是多项式时间内不可解的,则这-类问题就全部是多项式时间内不可解的。这类问题将称之为NP完全问题。NP完全理论不打算找出这一类问题的算法,仅仅着眼于证明这一类问题的等价性,即证明它们的难度
4、相当。NP完全理论还很年轻,有许多问题等待人们研究。例如,“NPP”还是相反“P是NP的真子集”。这个问题是当代计算机科学中的一大难题。,99-25,2023/9/15,7.1 判定问题、语言和编码,我们讨论的几种计算模型,都可以认为是语言的接受器或函数的计算器。为讨论问题简明,本章只讨论语言的识别问题。这是因为象图论、数论、逻辑和规划中的种种问题常常可以表示为语言的识别问题。其它的计算问题往往都有对应的判定问题。这种问题只有两个可能的解,或者回答“是”,或者回答“否”。,99-26,2023/9/15,判定问题,定义7-1 判定问题是由实数集合D和“是”的实例子集YD组成。但是,我们感兴趣的
5、多数判定问题具有相当数量的附加结构,在描述判定问题时,要强调这些附加结构。我们用来规定问题的标准格式由两部分组成。第一部分用各种分量,如集合、图、函数、数字等规定该问题的一般实例。第二部分陈述根据这个一般实例提出的是-否问题。规定D和Y的方法是明显的,一个实例属于D当且仅当它可以通过用规定类型的具体对象替换一般实例中的所有分量得到,而这个实例属于Y当且仅当具体到这个实例时,对所陈述的问题的回答为“是”。,99-27,2023/9/15,货郎担问题,实例:一个有穷的“城市”集合C=c1,c2,cm,对于每一对城市ci,cjC有“距离”d(ci,cj)Z+,以及界限BZ+(这里Z+表示正整数集合)
6、。问:是否有经过C中所有城市的“旅行路线”,其全长不超过B,即是否有C的一个排列次序使得,99-28,2023/9/15,语言,我们只考虑判定问题的原因是因为它们有一个非常自然的、适合在数学上精确的计算理论中研究的形式对应物。这个对应物叫做“语言”,其定义如下:定义7-2 对于任意有穷符号集合,我们用*表示所有的有穷字符串组成的集合。如果L是*的一个子集,我们称L是字母表上的语言。例如,如果=0,1,那么*由空字符串“”,字符串0、1、00、01、10、11、000、001以及所有其它0和1的有穷字符串组成。于是01,001,111,1101010是0,1上的一个语言,由所有完全平方数的二进制
7、表示组成的集合以及集合0,1*本身也都是0,1上的语言。,99-29,2023/9/15,编码,判定问题的每一实例可以编码成一个符号串,这样就将判定问题重新描述为一个语言的识别问题。这个语言必须由对应的判定问题中回答“是”的一切实例编码的串组成。在选择编码方法时,必须慎重,因为一个问题的复杂性可能与编码的方法有关。由于问题的难度在本质上不依赖于用来决定时间复杂性的具体编码方法和计算机模型,因此很难想象一个“合理的”编码方法与标准的编码方法之间的差异超过多项式。,99-210,2023/9/15,编码的条件,实例I的编码必须是简洁的,不能“填塞”不必要的信息或符号;I中出现的数字必须用十进制(或
8、二进制、八进制、以及以任何不等于1的数为基的进制)表示。,虽然不可能把我们在这里用“合理的”这个词表示的含义形式化,但是下述两个条件抓住了这个概念的主要内容:,99-211,2023/9/15,编码的标准,如果我们规定只使用满足这些条件的编码方法,那么具体使用什么编码方法将不会影响关于一个给定问题的难度的判断。为此,我们对问题的标准表示约定如下:整数用十进制表示;用十进制数1,2,.,n表示一个图的n个节点,用(i1,i2)表示图中的边,其中i1,i2分别是该边的两个端点;具有n个命题变元的布尔表达式由*(与),+(或),(非)与整数1,2,.,n(命题变元)所组成的字符串表示,其中*可以省略
9、(但不引起混淆),必要时可以加括号。例如,布尔表达式(P1+P2)*P3可以写成:(1+2)3。,99-212,2023/9/15,当把整数及其它符号都采用二进制编码后,一个问题的判定过程就可以形式地描述如下:已知 L0,1*,对于x0,1*,若xL则回答“是”;若xL,则回答“非”。这里,0,1*是指由有限个0和1组成的串的集合。再次重申,我们的讨论仅限于语言的识别。,99-213,2023/9/15,7.2 多项式变换与可满足性问题,定义7-3 PL0,1*|L为确定图灵机在多项式时间内所接受。该怎义中符号“”意义为“定义为”。定义7-4 f|f:0,1*0,1*且f可在多项式时间内完成。
10、这个定义是说,表示可在多项式时间内完成0,1*0,1*这一转换的集合。,99-214,2023/9/15,多项式变换,定义7-5 若A0,1*,B0,1*且存在f使得xA f(x)B成立,则称A可多项式变换于B,记作,或简称A变换为B。符号 的意思是:存在一台确定图灵机M,它将可以A在多项式时间内转换为B。,99-215,2023/9/15,引理7-1,引理7-1 若,BP,则AP。,证明:xA f(x)B f,所以由f产生的输出也必有多项式界,设为多项式g。但B也有多项式界,设为h。对于输入x,先作用以f,接着解属于B的问题,总共所需时间:g(|x|)+h(g(|x|)显然也是多项式,所以A
11、P,这个过程可以用下图表示:,问题A的输入x,问题B的输入,最长为(g(|x|),f转换至多在g(|x|)内将x换成f(x),多项式h(g(|x|)内求解B,输出问题B的解,99-216,2023/9/15,可满足性问题,实例:集合L=A,B,.,A,B,.,c1,c2,.,ck是L的有限子集,称为子句。每个ci中不出现L中的互补对(即xcI则xci),i=1,2,.,k。问:是否存在一集合SL,满足以下两个条件:s中不包含互补对;。,99-217,2023/9/15,从数理逻辑看来,设U=u1,u2,um是一个布尔变量集合。关于U的真值赋值是一个函数t:UT,F。如果t(u)=T,我们称u在
12、t下取“真值”;如果t(u)=F,我们称u取“假值”。如果u是U中的一个变量,那么u和u是U上的文字。文字u在t下取真值当且仅当变量u在t下取真值;文字u取真值当且仅当变量u取假值。U上的子句是U上的一个文字集合,例如,u1u2 u8。它表示这些文字的析取,对于U上的一个真值赋值,这个真值赋值满足它当且仅当它至少有一个元素在这个赋值下取真值。除去t(u1)=F,t(u2)=T和t(u8)=F之外,t满足上面那个子句。U上的子句类C是可满足的当且仅当存在关于U的一个真值赋值同时满足C中所有子句。我们称这样一个真值赋值是满足C的真值赋值。,99-218,2023/9/15,命题逻辑的可满足性问题,
13、实例:布尔变量集合U以及U上的子句类C。问:是否存在满足C的真值赋值?例如,U=u1,u2和C=u1u2,u1u2是SAT的一个实例,对这个实例的回答为“是”,t(u1)=t(u2)=T给出一个满足的真值赋值。如果用Cu1u2,u1u2,u1代替C也给出一个实例,对这个实例的回答为“否”,C不是可满足的。可满足性问题常用符号SAT表示,它是Satisfiability的缩写。,99-219,2023/9/15,图的m-可着色问题,实例:无向连通图G-(V,E)和m种不同的颜色,用这些颜色为G的各节点着色,每个节点着一色。问:是否有使得G中任何一条边的两个节点的颜色不同的着色法。例7-1 图的m
14、-可着色问题可以多项式变换为SAT。证明:已知图G的节点数为n,c1,c2,.,cm表示m种颜色,设,99-220,2023/9/15,因此,G的每一种着色方案对应于给mn个变量Pij的一种赋值。但是必须满足条件:(1)每个节点至少有一种颜色,故对任一i,有子句Pi1Pi2.Pim;(2)相邻的节点着不同颜色,故对图G的任意一对相邻节点(r,s),必有PrjPsj,1jm。于是图G可m-着色的充要条件是可对变量Pij赋值i=1,2,.,n,j=1,2,.,m,使得由(1)和(2)构成的所有子句取值为T。转换步骤(1),(2)所需的时间有多项式的界。,99-221,2023/9/15,哈密顿回路
15、问题(HC),实例:图G=(V,E)。问:G是否包含一条哈密顿回路,即是否有G的节点排列次序使得(vn,v1)E和(vI,vi+1)E,1in?这里n=|V|。例7-2 哈密顿回路问题(HC)可以多项式变换为货郎担问题(TS)。证明:函数f的定义十分简单。设G=为给定的HC的实例,|V|=n。对应的TS的实例有一个等于V的城市集合C,对任意两个城市i,j,若(i,j)E,则规定d(i,j)=1,否则d(i,j)=2。令界限B=|V|。,99-222,2023/9/15,容易(非形式地)看到,能够用一个多项式时间算法计算这个函数f。对于 个规定的耗费d(i,j),只需要检查(i,j)是否是G中的
16、一条边,所以f。假设(1,2,.,n)是G中的一条哈密顿回路,那么(1,2,.,n)也是f(G)中的一条周游路线,并且这条周游路线的耗费为B=n,这是因为在这条周游路线中经过的城市之间每一段耗费对应G中一条边,从而耗费为1。反之,假设(1,2,.,n)是f(G)中的一条总耗费为不超过B的周游路线。因为任意两个城市之间的耗费不是1就是2,而在计算周游路线的总耗费时恰好是n个这样的耗费相加,所以根据B=n,每一对相继访问的城市间的耗费恰好为1。由的f(G)定义,得到(i,i+1),1in和(n,1)都是G的边,从而(1,2,.,n)是G的一条哈密顿回路。,99-223,2023/9/15,引理7-
17、2,若L1 L2,L2 L3,则L1 L3。,99-224,2023/9/15,7.3 非确定型图灵机,为讨论NP问题,再引进一种虚设的计算模型,即非确定型图灵机。定义7-6 一个k-带非确定型图灵机(NDTM)M可由下述7元组确定:M=其中Q,T,I,b,q0和qr的定义与确定型图灵机相同(参看第5章定义5-3),而是:QTkA|AQ(TL,R,S)k。,99-225,2023/9/15,定义指出,非确定型图灵机,对于由一个状态与k个磁带符号所给定的序组,确定的下一动作不是唯一确定的,它将要在一个有穷集合A中选择(猜测),它在同一时刻里可以做多种运算。但要注意,一个NDTM机M只能在A中任意
18、选择其下一个动作,然而不能选A以外的动作。假定(q,(a1,d1),(a2,d2),.,(ak,dk)(q,a1,a2,.,ak),并且非确定型图灵机M正处在状态q,且第i个磁头(1ik)正扫描着第i条磁带上符号ai的某一方格,则机器的下一动作可以进入状态q,并把ai变为ai,而各磁头的动作由di指定。,99-226,2023/9/15,图灵机的格局,定义7-7 称D=为k-带图灵机的一个格局,若每一个ai形为xqy,其中xy是在当前状态q下第i条带上的符号串(不计右端的空白符),q为机M的当前状态,q后面的第一个符号是M在第i条带的带头所扫描的方格符号。若机M是确定型的且当前格局D不处于停机
19、状态,则可由下一动作函数唯一地确定下一个格局D,并记为DMD,称为D转到D。对于非确定型机M,从当前格局D可导致多于一个的下一格局(但仅有穷个),若D是其中之一,则记为DMD(或DD,若不引起混乱)。若对某个k1,有c1c2ck或cl=ck,则可记作c1*ck。,99-227,2023/9/15,非确定型图灵机的作用,非确定型图灵机M可以用作一种语言L的识别器。对于语言L,我们可以构造一台非确定型图灵机M,让机器的带符包括该语言的字母表(输入字母表)以及伪空白符b和其它一些特定符号(辅助符号)。机器处于开始状态时,将输入w打印在第一条磁带的最左面部分上,此外全为空白,而其它的磁带此时全为空白;
20、把各条磁带的磁头放在该磁带之最左一格上。称输入w被这台机器接受,仅当:*其中a1(因此一切a2,.,ak)有停机状态qr于其中。,99-228,2023/9/15,定义7-8 对语言L,按上述方法构成的非确定型图灵机NDTM接受L,当且仅当对wL,NDTM可接受w,对wL,NDTM陷入不停机状态。非确定型图灵机NDTM接受语言L,记作L(NDTM)。,非确定型图灵机NDTM接受语言L,99-229,2023/9/15,例7-3 等分划问题,试设计一台NDTM,它接受了形如:,的字,其中i1,i2,.,ik为非负整数满足下述要求:有I1,2,.,k使,换言之,字w被接受当且仅当用字w所表现的数列
21、i1,i2,.,ik,可以被分割为两个子序列,各子序列的数之和相等。这个问题是所谓等分划问题,已经知道,它是一个NP完全问题。,99-230,2023/9/15,下面设计一台三带NDTM来接受所述的语言。这台NDTM的工作情况是:对输入磁带从左到右进行扫描,每次搜索全为0的一个磁带段0ij,并且不确定地在第2或第3磁带上增补选ij个0;当扫描到输入末端时,机器便核对第2磁带与第3磁带上0的个数,若相等则接受(注意,可能有许多情况导向了不相等,但我们关心的是:有一种选择导致相等)。设NDTM=,下一动作函数如表7-1所示。下面给该机器输入1010010,我们从许多可能选择的计算中,列出两个可能的
22、计算,其中的第一个导向了对该输入是接受的,而第二个计算不接受该输入。因此,按我们的定义,该机器接受1010010。,99-231,2023/9/15,表7-1 例7-3中非确定型图灵机M的下移函数,99-232,2023/9/15,接受。,停止,因无下一格局。,99-233,2023/9/15,NDTM的时空复杂性,定义7-9 称一台NDTM机M的时间复杂性是T(n),假若对于任何长为n的可接受的输入w,都存在着一条导向接受指令的计算路,该计算路至多有T(n)步。称M的空间复杂性是S(n),假若对于上述输入w,有一条导向接受指令的计算路,于其中在每一条带上至多有S(n)个相异的磁带方格被扫描过
23、。,99-234,2023/9/15,例7-3的复杂性,例7-4 对于例7-3所设计的机器M,其时间复杂性为2n+2,而空间复杂性为n+1。对所述的空间复杂性是显然的,为了看出时间复杂性为2n+2,只须注意:当对输入扫描结束(共用n+1步)后,要回头对2、3磁带进行比较(不超过n+1步)。,99-235,2023/9/15,用DTM模拟NDTM,原则上,对于每一台NDTM机,都可以设计一台DTM机来模拟它,使得两者皆接受了同一语言。然而DTM的时间耗费要大得多,可以证明,这种模拟的时间耗费下界是指数型的。确切地说,设T(n)是“时间可构造的”函数(即存在一台DTM机,给出该机的任一输入n,机器
24、将在第T(n)步停机),则对每一台为T(n)时间囿界的NDTM机M,可以找到一个常数cl和一台DTM机M使L(M)=L(M)且M的时间复杂性为O(cT(n)。为了证明这个结果,可以用穷举算法来构造一台模拟M的DTM机M。首先,可以找到常数d,使得NDTM机M在任何情况下的下一动作,99-236,2023/9/15,的选择可能不超过d个。因此机器M的长度不超过T(n)的任何一条计算路都可用字母表=0,1,.,dn-1的长不超过T(n)的一个字来表现,这些字至多为(d+1)T(n)个。事实上,只有dT(n)个可将其按字母次序排列。对于长为n的输入x,DTM机M模拟NDTM如下,依次模拟上述w*为w
25、,(即M在这次模拟中的计算路),如M中不存在如w所示的计算路或者w不是M接受x的计算路,则M去模拟w的下一个次序的字母所示的计算路。注意,M在每次模拟时要耗时O(T(n),于是整个模拟至多耗费时间O(T(n)(d+1)T(n)(事实上为T(n)dT(n))取c=2(d+1)即可。细节的叙述要用到T(n)的时间可构造性(因模拟w到长为T(n)止),这里就不再叙述了。这样我们就证了下述定理:,99-237,2023/9/15,定理7-1,如果取上述非确定型图灵机类为计算模型,则这个计算模型同已知的种种计算模型等价。对于任一台NDTM时间囿界为T(n)且T(n)为时间可构造的机器M,都可以找到常数c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 复杂性 第七 NP 完全 问题
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6024199.html