NP,NPC,NPhard问题说明

NP,NPC,NPhard问题说明

P问题是初始问题,所有这类问题都可以用一个确定性算法在多项式时间内求出解。

NP问题,能够多项式时间求得解,或者多项式时间内判断是否是正确的,P包含于NP

NPC问题,全部NP问题在多项式时间内,可以约化到的问题,NPC包含于NP

NPH问题,NPC问题在多项式时间内,可以约化到的问题,NPC包含于NPH,但NPC与NP和P无必然联系

示例问题参考:https://stackoverflow.com/questions/1857244/what-are-the-differences-between-np-np-complete-and-np-hard


约化

如果能找到一个变化法则,对任意一个 A 程序的输入,都能按照这个法则变换成 B 程序的输入,使两程序的输出相同,那么问题 A 可以约化为问题 B 。约化具有传递性。

多项式时间

多项式时间指的是一个算法的复杂度,要算法的复杂度不是指数或者阶乘型,O(1)到O(n^m)(m为常数)任意组合都算是多项式级的复杂度,它们的规模n都出现在底数位置;而O(2ⁿ),O(n!)型 复杂度,就是非多项式级的。总有:指数时间 > 多项式时间 > 线性时间 > 常数时间。

常见多项式时间复杂度的关系为:O(1)<O(log^n)<O(n)<O(nlog^n)<O(n^2)<O(n^3)

常见非多项式时间复杂度关系为:O(2^n)<O(n!)<O(n^n)

常用的时间复杂度按照耗费的时间从小到大依次是:O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2ⁿ)<O(n!)


以下部分转载,来源:NP,NPC,NPH问题

NPC和NPH还有一些特征

根据NP完全问题和NP困难问题的定义可以发现,NP完全问题A的定义中,除了要求对于所有别的判定问题A’ ∈NP,都有A’ ∝A,还要求A∈NP,而NP困难问题不一定是NP问题,所以可以看出NP完全问题是NP困难问题的子集,所以NP完全问题一定都是NP困难问题。

NP困难问题中包含的一些问题是既不属于NP也不属于P类问题的,一个典型的例子就是第k个最重子集问题。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值