资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
第11页 / 共17页
第12页 / 共17页
第13页 / 共17页
第14页 / 共17页
第15页 / 共17页
第16页 / 共17页
第17页 / 共17页
亲,该文档总共17页全部预览完了,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,P,问题,NP,问题,NPC,问题,NP,难问题,详解,P问题NP问题NPC问题NP难问题详解,Contents,P,问题,1,NP,问题,2,NPC,问题,3,NP,难问题,4,ContentsP问题1NP问题2NPC问题3NP难问题4,?,时间复杂度并不是表示一个程序解决问题需要花多,少时间,而是当问题规模扩大后,程序需要的时间,长度增长得有多快。,?,不管数据有多大,程序处理花的时间始终是那么多,的,我们就说这个程序很好,具有,O(1),的时间复杂度,,也称常数级复杂度;数据规模变得有多大,花的时,间也跟着变得有多长,这个程序的时间复杂度就是,O(n),。,时间复杂度,?时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当,时间复杂度,多项式级的复杂,度,。,如,O(1),O(log(n),O(na),等,因为它的,规模,n,出现在底,数的位置,!,时间复杂度,非多项式级的,如:,O(an),和,O(n!),等!,时间复杂度多项式级的复杂度。如O(1),O(log(n),?,P,问题是可以在多项式时间内被确定机,(,通常意义的计算,机,),解决的问题,.,?,如果一个问题可以找到一个能在多项式的时间里解决它,的算法,那么这个问题就属于,P,问题。,?,我们常见到的一些信息奥赛的题目都是,P,问题。,?,P,问题,VS NP,问题,?,P(Polynomial,多项式,),问题,?P问题是可以在多项式时间内被确定机(通常意义的计算机)解决,NP(Non-Deterministic Polynomial,非,确定多项式,),问题,?,首先:,NP,问题不是非,P,类问题,!,?,NP,问题,是指可以在多项式时间内被非确定机,(,他可以猜,他总是能猜到最能满足,你需要的那种选择,如果你让他解决,n,皇后问题,他只要猜,n,次就能完成,-,每次都,是那么幸运,),解决的问题,.,这里有一个著名的问题,-,千禧难题之首,是说,P,问题是,否等于,NP,问题,也即是否所有在非确定机上多项式可解的问题都能在确定机上,用多项式时间求解,.,?,NP,问题是指可以在多项式的时间里验证一个解的问题,即可以在多项式的时间,里猜出一个解的问题。,像,Hamilton,回路问题。,?,在这个题中,找一个解很困难,但验证一个解很容易。,?,当然有不是,NP,问题的问题,即咱猜到了解但是没用,因为咱不能在多项式的时,间里去验证它。,如下面这个:,我们已经知道,Hamilton,回路是,NP,问题,因为验证一条路是否恰好经过了每,一个顶点非常容易。但我们把问题换成这样:试问一个图中是否不存在,Hamilton,回路。这样问题就没法在多项式的时间里进行验证了,因为除非你试,过所有的路,否则你不敢断定它“没有,Hamilton,回路”。,已经知道所有的,P,类问题都是,NP,问题。,那反之呢?其实就一句话:证明或,推翻,P=NP,这就是所谓的“,NP,问题”!,NP(Non-Deterministic Polynomia,P,问题与,NP,问题的对比,换一种说法,如果一个问题的复杂度是该问题的一个实例规模,n,的多项式,函数,则这种可以在多项式时间内解决的问题属于,P,类问题,.,通俗地称所有复,杂度为多项式时间的问题为易解的问题类,否则为难解的问题。,有些问题很难找到多项式时间的算法(或许根本不存在),例如“找出,无向图中哈密顿回路”问题。但如果给了该问题的一个答案,可以在多项式,时间内判断这个答案是否正确。例如说对于哈密顿回路问题,给一个任意的,回路,很容易判断它是否是哈密顿回路(只要看是不是所有的顶点都在回路,中就可以了)。这里给出,NP,问题的另一个定义,这种可以在多项式时间内验,证一个解是否正确的问题称为,NP,问题,亦称为验证问题类。,简单的说,存在多项式时间的算法的一类问题,称之为,P,类问题;而像,梵塔问题,推销员旅行问题等问题,至今没有找到多项式时间算法解的一类,问题,称之为,NP,问题。同时,,P,类问题是,NP,问题的一个子集。,P问题与NP问题的对比换一种说法,如果一个问题的复杂度是该问,NP,完全(,NP Complete,NPC,)问题,NPC,问题(一),?,人们普遍认为,,P=NP,不成立。那么多数人相信,存在至少一个不可能有,多项式级复杂度的算法的,NP,问题,这就是,NPC,问题,。,?,NPC,问题是指这样一类,NP,问题,所有的,NP,问题都可以用多项式时间划归到,他们中的一个,.,所以显然,NP,完全的问题具有如下性质,:,它可以在多项式时,间内求解,当且仅当所有的其他的,NP,完全问题也可以在多项式时间内,求解。这样一来,只要我们找到一个,NPC,问题的多项式解,所有的,NP,问题都,可以多项式时间内划归成这个,NPC,问题,再用多项式时间解决,这样,NP,就等,于,P,了,.,?,Reducibility(“,约化”或“归约”,),:,一个问题,A,可以约化为问题,B,的含义即,是,可以用解决问题,B,的解法来解决问题,A,,或者说,问题,A,可以“变成”,问题,B,。,如:一元一次方程可以“归约”为一元二次方程。,?,问题,A,可“约化”为问题,B,直观意义:,B,的时间复杂度高于或者等于,A,的时,间复杂度。也就是说,问题,A,不比问题,B,难。,?,很显然,约化具有一项重要的性质:约化具有传递性。如果问题,A,可约化,为问题,B,,问题,B,可约化为问题,C,,则问题,A,一定可约化为问题,C,。,NP完全(NP Complete,NPC)问题NPC问题(一,?,现在再来说一下约化的标准概念就不难理解了:如果能,找到这样一个变化法则,对任意一个程序,A,的输入,都能,按这个法则变换成程序,B,的输入,使两程序的输出相同,,那么我们说,问题,A,可约化,为问题,B,。,?,注:我们所说的“可约化”是指的可“多项式地”约化,(Polynomial-time Reducible),,即变换输入的方法是能在,多项式的时间里完成的。约化的过程只有用多项式的时,间完成才有意义。,?,NPC,问题(二),?现在再来说一下约化的标准概念就不难理解了:如果能找到这样一,NPC,问题(三),NPC,问题,p,问题,P,问题,NP,问题,p,问题,约化,约化,NPC问题(三)NPC问题p问题P问题NP问题p问题约化约化,?,总结:,?,定义:,同时满足下面两个条件的问题就是,NPC,问题。,首先,它得是一个,NP,问题;然后,所有的,NP,问题都,可以约化到它。,?,证明:,先证明它至少是一个,NP,问题,再证明其中一,个已知的,NPC,问题能约化到它,NPC,问题(四),?总结:?定义:同时满足下面两个条件的问题就是NPC问题。首,?,NP-Hard,问题:其满足,NPC,问题定义的第二条但不一定要,满足第一条(就是说,,NP-Hard,问题要比,NPC,问题的范围,广,但不一定是,NP,问题)。,?,NP-Hard,问题同样难以找到多项式的算法,但它不列入我,们的研究范围,因为它不一定是,NP,问题。即使,NPC,问题,发现了多项式级的算法,,NP-Hard,问题有可能仍然无法得,到多项式级的算法。事实上,由于,NP-Hard,放宽了限定条,件,它将有可能比所有的,NPC,问题的时间复杂度更高从而,更难以解决。,NP-Hard,问题,?NP-Hard问题:其满足NPC问题定义的第二条但不一定要,?,?,NPC,问题(补充),NPC,问题存在吗,?,??NPC问题(补充)NPC问题存在吗?,?,逻辑电路问题,:,给定一个逻辑电路,问是否存在一种输入使,输出为,True,。,?,这是第一个,NPC,问题。其它的,NPC,问题都是由这个问题约,化而来的。因此,逻辑电路问题是,NPC,类问题的“鼻祖”。,?,我们知道,一个逻辑电路由若干个输入,一个输出,若干,“逻辑门”和密密麻麻的线组成,如下图:,?,NPC,问题(补充),?逻辑电路问题:给定一个逻辑电路,问是否存在一种输入使输出,?,有输出无论如何都不可能为,True,的逻辑电路,吗?,NPC,问题(补充),?有输出无论如何都不可能为True的逻辑电路吗?NPC问题(,?,逻辑电路问题属于,NPC,问题,它显然属于,NP,问题,,并且可以证明所有的,NP,问题都可以约化到它,。,NPC,问题(补充),其大概意思是说任意一个,NP,问题的,输入和输出都可以转换成逻辑电路,的输入和输出(想想计算机内部也,不过是一些,0,和,1,的运算),因此对,于一个,NP,问题来说,问题转化为了,求出满足结果为,True,的一个,输,入(即一个可行解)。,?逻辑电路问题属于NPC问题它显然属于NP问题,并且可以,图论中PNPNPC和NP难问题详解课件,
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6