P、NP、NPC、NP-hard问题

规约性:通俗的讲,一个问题(如Q1)可以规约到另一个问题(如Q2)是指:问题Q1可以转换为问题Q2,之后可以通过求解Q2的方法来求解Q1。

一个问题(如Q1)可以规约到另一个问题(如Q2),需满足以下两个条件:

(1)实例对应性:Q1的任意一个实例∅,通过函数f都可以转化为Q2的一个实例f(∅),且这个转化函数必须为多项式函数/转化过程是多项式时间内完成的
(2)输出一致性:规约后输出和原来的输出一致,即,如algO1是Q1的算法,algO2是Q2的算法,则在相同的输入下,algO1(Q1)=algO2(Q2)

 规约具有传递性:如果问题A可归约为问题B,问题B可归约为问题C,则问题A一定可归约为问题C。

如果问题 Q1可以归约为问题 Q2,则记为 Q1≤p Q2,表示Q1大于 Q2的难度不会超过一个多项式时间因子(但通常我们可以根据小于等于号来通俗的认为 Q1的难度要小于等于 Q2)。Q1≤pQ2,可以推出:

(1)如果Q1是 NPC 问题,则 Q2必然是 NPC 问题(因Q2不比Q1容易)
(2)如果Q2是P问题,则Q1必然是P问题(因为Q1不比Q2难)

多项式规约:指的是问题 A 的所有实例都能够在多项式的时间复杂度内转化为问题 B 的所有实例。
如果问题X和问题Y满足以下两条性质,那么问题X可以在多项式时间归约到问题Y:
(1)问题X可以通过多项式时间的基本运算步骤转换为问题Y;
(2)问题X多项式可调用求解问题Y的算法
记为X ≤pY    (X可以多项式规约到Y)存在三点性质:
(1)Y能在多项式时间内求解,则X也能在多项式时间内求解
(2)X不能在多项式时间内求解,则Y也不能在多项式内求解
(3)若同时有Y≤pX,则X,Y多项式等价,记为X ≡ pY 。X,Y中一方能在多项式时间内求解则另一方也能在多项式时间内求解。

P问题:能够在多项式的时间复杂度内解决的问题,这里的 P 指的是多项式时间(polynomial time)。一个规模为n的问题,如果能在n的多项式时间内解决,就是p问题。我们在前面学到的算法大多数都可以写成这样的形式,比如排序问题,二分查找,图的遍历,最小生成树等。

NP问题:可以在多项式的时间里验证一个问题的解。

NPC问题(NP完全问题):是NP类问题中最难的问题,包含两个条件:
(1)是一个NP问题(是可以在多项式时间里去验证一个解的问题)
(2)所有的NP问题都可以转换成此问题

NP-hard问题:NPhard满足所有的NP问题都可以用多项式时间约化到它,但并不要求其是一个NP的问题。或者说,NPhard是所有问题的上界,所有问题都不比NPhard难。相较于NPC问题,它没有要求一个NP问题这个条件,也就是意味着其甚至在多项时间解都不可验证。

关系

•  若所有的NP问题都能多项式时间内规约到问题X(NP ≤p X),那么X就是一个NP-Hard问题,同时如果X本身也是NP问题,称X是NP-Complete的,否则X就只能是NP-Hard的(我们能够把所有的其他NP问题转化归纳成在多项式时间这样一个步骤下转化成X问题),所以NP-Hard问题是包括NPC问题的,也可以理解为NPC问题是NP问题中最复杂的问题。

•  P问题是NP问题,P问题是在多项式时间内可以解决的,NP问题在多项式时间内可以验证一个解的问题。我们解这个问题耗费的时间就是多项式时间内解决的问题;那验证这个问题的解,肯定更是一个多项式时间内解决的问题。P-->NP
但是NP问题是不是P问题:如果我们在多项式时间内能够验证一个问题的解,这就是NP问题  最优化问题需要转化为判断性问题  NP-->P?
P=NP:所有的问题如果可以在多项式的时间内验证它的解,一定可以在多项式的时间里解决它

•  P问题,NP问题和NPC问题的关系(认为,没有得到证实)
P问题一定是一个NP问题,NPC问题也一定是一个NP问题;P问题和NPC问题是没有交集的

可计算问题

可计算问题的边界是什么?

可以说,可计算问题包括了P,NP和NPC,但不限于NP问题。由NP的定义可以看出,NP的问题的解必须是在多项式时间内可以验证的,而显然存在这样的问题,即问题的解既不能在多项式时间内找到,也不能在多项式时间内验证。

理论上说,可计算问题的数目和自然数集的数目相当,可以用如下方法证明:任何可计算问题都可以被图灵机计算,图灵机的算法和数据由纸带给出,而纸带则是由0和1组成的序列,因此,所有可计算问题都可以和一个由0和1组成的序列对应。而0和1组成的序列可以被看做二进制数,二进制数和十进制数一一对应,因此可计算问题和自然数集等势。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值