P,NP,NPC,NP-hard问题简述

P类问题:    即可以找到多项式级别的算法来解决它。


NP类问题: 不能找到多项式级别或者不知道能否找到多项式级别的算法来解决它,但是可以对其一个问题的解在多项

式时间内进行验证,此类问题称为NP类问题。显然,P类问题属于NP类问题,但两者是否相等,即P=NP?是尚未解

决的难题。


NPC类问题:即NP-complete问题,此类问题包含两个条件。(1)首先它是一个NP问题;(2)所有的NP问题均可以归化

为这个问题。证明过程应该先证明此类问题是一个NP问题,然后其中一个已知的NPC问题都可以归化为它即可。对

于第二步,主要是利用的归化的传递性,一个已知的NPC问题,肯定是由所有的NP问题可以归化而来的,若这个已

知的NPC问题可以归化为另一个问题,那么这个问题一定也是NPC问题。

       既然所有的NP问题都能归化为NPC问题,那么只要任意一个NPC问题找到了一个多项式的算法,那么所有的NP

问题都能用这个算法解决了(可根据归化的定义得到)。但是,给NPC问题找到一个多项式算法几乎不可能,所以“正是

NPC问题的存在,使多数人相信P≠NP”。NPC问题只能用指数级甚至阶乘级复杂度搜索。


NP-hard问题: 它满足NPC问题定义的第二条但是不满足第一条,即NP-hard问题要比NPC问题的范围广。NP-hard问

同样难以找到多项式级的算法,且它不一定是NP问题。即使NPC问题发现了多项式级的算法,NP-hard问题可能仍

无法得到多项式级的算法。


归化(Reducibility)的概念:如果能找到一个变化规则,对任意一个程序A的输入,都能按这个法则变化成程序B的输

入,且两程序的输出相同。那么可以说问题A可归化(或者说“约化”)为问题B。归化具有传递性:若问题A可归化为问题

B,问题B可归化为问题C,则问题A可归化为问题C。

另外,归化的一个重要的意义是:归化问题的时间复杂度往往不低于被归化问题的时间复杂度。即对于上述描述,有O(A)≤O(B)≤O(C)。


更多详情见:http://www.matrix67.com/blog/archives/105

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值