NP-hard

P、NP、NP-Complete、NP-Hard问题详解

  (2016-04-27 09:58:55)
标签: 

it

分类: 最优化
        P、 NP、NP-Complete、NP-Hard这些 概念都是用来描述一个问题的难度的。即一个问题能否在以上时间内求解,或者验证一个解是否符合一个问题。 在下面的讨论中,我们假设问题的输入规模是n,那么问题的解决时间,或者验证时间都应该是n的一个函数,记为$f(n)$.
      1、 规约(Reduction)将一个问题,等价转换成另一个问题的子问题的方式。
    2、P问题:P即 Polynomial time,多项式时间。f(n)=a0+a1*n1+a2*n2+a3*n3+…. 。

意思是说给定一个问题,能在多项式时间内  找到  符合该问题的解。此时,问题的时间复杂度是O(nj)。

3、NP问题(Non-deterministic problem):即非确定性多项式时间问题。 NP  就是指能在多项式时间内  验证  一个解是否满足的一类问题。

     什么是非确定性问题呢?有些计算问题是确定性的,比如加减乘除之类,你只要按照公式推导,按部就班一步步来,就可以得到结果。但是,有些问题是无法按部就班直接地计算出。比如,找大质数的问题。有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少呢?这样的公式是没有的。再比如,大的合数分解质因数的问题,有没有一个公式,把合数代进去,就直接可以算出,它的因子各自是多少?也没有这样的公式。

    这种问题的答案,是无法直接计算得到的,只能通过间接的“猜算”来得到结果。这也就是非确定性问题。而这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉你,某个可能的结果是正确的答案还是错误的。这个可以告诉你“猜算”的答案正确与否的算法,假如可以在多项式时间(多项式时间: 运行时间最多是输入量的多项式函数)内算出来,就叫做多项式非确定性问题。而如果这个问题的所有可能答案,都是可以在多项式时间内进行正确与否的验算的话,就叫完全多项式非确定问题。

4、NP-Complete问题:NP中有  最难  的一类问题。这类问题就是  NP-Complete  问题。

最难,就意味着所有NP类的问题都能归约到这个问题上。该问题本身也是NP问题。

所以,NP-Complete问题的形式化定义是: L是NP-Complete问题,当其满足如下两个条件:

(1) L ∈ NP

(2)任意L1 ∈ NP, L1 可以归约到 L

5、NP-Hard问题:实际上是“at least as hard as an NP-complete problem”,即这个问题至少和NP完全问题一样难,所以不用满足上面的条件1.


总结:他们四者的关系,可以用下图描述:

P、NP、NP-Complete、NP-Hard问题详解

总结来说:

P类:已有多项式时间算法的判定问题.

NP类:已有指数时间算法的判定问题,包括P类.

NPC类:是NP的一个子集,且其中每一个问题均能由NP中的任何问题在多项式时间内转化成.

NPH问题:若问题A不属于NP类,已知某一NPC问题可在多项式时间内转化为问题A,则称A为NPH.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值