问题、NP难问题详解.ppt

上传人:wuy****n92 文档编号:88408080 上传时间:2023-04-26 格式:PPT 页数:16 大小:280.49KB
返回 下载 相关 举报
问题、NP难问题详解.ppt_第1页
第1页 / 共16页
问题、NP难问题详解.ppt_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《问题、NP难问题详解.ppt》由会员分享,可在线阅读,更多相关《问题、NP难问题详解.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 王培磊王培磊 浅谈P问题、NP问题、NPC问题及NP难问题ContentsP问题问题1NP问题问题、2NPC问题问题3NP难问题难问题4时间复复杂度度时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。不管数据有多大,程序处理花的时间始终是那么多的,我们就说这个程序很好,具有O(1)的时间复杂度,也称常数级复杂度;数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是O(n)。时间复复杂度度多项式级的复杂度。如 O(1),O(log(n),O(na)等 因为它的规模n出现在底数的位置!时间复杂度时间复杂度非多项式级的 如:

2、O(an)和O(n!)等!P问题如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。我们常见到的一些信息奥赛的题目都是P问题。?P问题 VS NP问题?NP问题首先:首先:NP问题不是非问题不是非P类问题类问题!NP问题是指可以在多项式的时间里验证一个解的问题问题是指可以在多项式的时间里验证一个解的问题 可以在多项式可以在多项式的时间里猜出一个解的问题。的时间里猜出一个解的问题。像像Hamilton回路问题。回路问题。在这个题中,找一个解很困难,但验证一个解很容易。在这个题中,找一个解很困难,但验证一个解很容易。当然有不是当然有不是NP问题的问题,即咱猜到了解但是

3、没用,因为咱不能在多项式的时问题的问题,即咱猜到了解但是没用,因为咱不能在多项式的时间里去验证它。间里去验证它。如下面这个:如下面这个:我们已经知道我们已经知道Hamilton回路是回路是NP问题,因为验证一条路是否恰好经过了每一问题,因为验证一条路是否恰好经过了每一个顶点非常容易。但我们把问题换成这样:试问一个图中是否不存在个顶点非常容易。但我们把问题换成这样:试问一个图中是否不存在Hamilton回路。这样问题就没法在多项式的时间里进行验证了,因为除非你试过所有的回路。这样问题就没法在多项式的时间里进行验证了,因为除非你试过所有的路,否则你不敢断定它路,否则你不敢断定它“没有没有Hamil

4、ton回路回路”。已经知道所有的已经知道所有的P类问题都是类问题都是NP问题。问题。那反之呢?其实就那反之呢?其实就一句话:证明或推翻一句话:证明或推翻P=NP 这就是所谓的这就是所谓的“NP问题问题”!NPC问题(一)(一)人们普遍认为,人们普遍认为,P=NP不成立不成立 多数人相信,存在至少一个不可多数人相信,存在至少一个不可能有多项式级复杂度的算法的能有多项式级复杂度的算法的NP问题问题这就是这就是NPC问题问题。Reducibility(“约化约化”或或“归约归约”):一个问题一个问题A可以约化为问题可以约化为问题B的含义即的含义即是,可以用解决问题是,可以用解决问题B的解法来解决问题

5、的解法来解决问题A,或者说,问题,或者说,问题A可以可以“变成变成”问题问题B。如:一元一次方程可以如:一元一次方程可以“归约归约”为一元二次方程。为一元二次方程。问题问题A可可“约化约化”为问题为问题B直观意义:直观意义:B的时间复杂度高于或者等于的时间复杂度高于或者等于A的时的时间复杂度。也就是说,问题间复杂度。也就是说,问题A不比问题不比问题B难。难。很显然,约化具有一项重要的性质:约化具有传递性。如果问题很显然,约化具有一项重要的性质:约化具有传递性。如果问题A可约化可约化为问题为问题B,问题,问题B可约化为问题可约化为问题C,则问题,则问题A一定可约化为问题一定可约化为问题C。NPC

6、问题(二)(二)现在再来在再来说一下一下约化的化的标准概念就不准概念就不难理解了:如果能找理解了:如果能找到到这样一个一个变化法化法则,对任意一个程序任意一个程序A的的输入,都能按入,都能按这个法个法则变换成程序成程序B的的输入,使两程序的入,使两程序的输出相同,那出相同,那么我么我们说,问题A可可约化化为问题B。注:我注:我们所所说的的“可可约化化”是指的可是指的可“多多项式地式地”约化化(Polynomial-time Reducible),即,即变换输入的方法是能在多入的方法是能在多项式的式的时间里完成的。里完成的。约化的化的过程只有用多程只有用多项式的式的时间完完成才有意成才有意义。N

7、PC问题(三)(三)NPC问题问题 p问题问题 P问题NP问题问题 p问题问题 约化约化 约化约化NPC问题(四)(四)总结:定定义:同同时满足下面两个条件的足下面两个条件的问题就是就是NPC问题。首先,。首先,它得是一个它得是一个NP问题;然后,所有的;然后,所有的NP问题都可以都可以约化到它。化到它。证明:明:先先证明它至少是一个明它至少是一个NP问题,再,再证明其中一个已知明其中一个已知的的NPC问题能能约化到它化到它 NP-Hard问题NP-Hard问题:其:其满足足NPC问题定定义的第二条但不一定要的第二条但不一定要满足第一条(就是足第一条(就是说,NP-Hard问题要比要比 NPC

8、问题的范的范围广,广,但不一定是但不一定是NP问题)。)。NP-Hard问题同同样难以找到多以找到多项式的算法,但它不列入我式的算法,但它不列入我们的研究范的研究范围,因,因为它不一定是它不一定是NP问题。即使。即使NPC问题发现了多了多项式式级的算法,的算法,NP-Hard问题有可能仍然无法得到有可能仍然无法得到多多项式式级的算法。事的算法。事实上,由于上,由于NP-Hard放放宽了限定条件,了限定条件,它将有可能比所有的它将有可能比所有的NPC问题的的时间复复杂度更高从而更度更高从而更难以解决。以解决。NPC问题(补充)充)?NPC问题存在吗问题存在吗?NPC问题(补充)充)逻辑电路路问题

9、:给定一个定一个逻辑电路,路,问是否存在一种是否存在一种输入使入使输出出为True。这是第一个是第一个NPC问题。其它的。其它的NPC问题都是由都是由这个个问题约化而来的。因此,化而来的。因此,逻辑电路路问题是是NPC类问题的的“鼻祖鼻祖”。我我们知道,一个知道,一个逻辑电路由若干个路由若干个输入,一个入,一个输出,若干出,若干“逻辑门”和密密麻麻的和密密麻麻的线组成,如下成,如下图:NPC问题(补充)充)有有输出无出无论如何都不可能如何都不可能为True的的逻辑电路路吗?NPC问题(补充)充)逻辑电路问题属于NPC问题它显然属于NP问题,并且可以证明所有的NP问题都可以约化到它。其大概意思是说任意一个其大概意思是说任意一个NP问题的问题的输入和输出都可以转换成逻辑电路输入和输出都可以转换成逻辑电路的输入和输出(想想计算机内部也的输入和输出(想想计算机内部也不过是一些不过是一些 0和和1的运算),因此对的运算),因此对于一个于一个NP问题来说,问题转化为了问题来说,问题转化为了求出满足结果为求出满足结果为True的一个的一个 输输入(即一个可行解)。入(即一个可行解)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁