简述P问题,NP问题,NPC问题以及NP Hard问题

发现我们经常谈到NP问题,NP完全问题,NP难问题,但是其实他们之间是有区别的。


1、P问题是指:一个问题可以找到一个能在多项式的时间里解决它的算法。也就是复杂度为O(1),O(log(n)),O(n^a)等的。

2、NP问题是指可以在多项式的时间里验证一个解的问题(注意,NP问题不是非P问题!!!)。所以比如最短路问题、TSP旅行商问题,一个解出来了(一条路径出来了),那么我验证这个解(计算这条路径的长度)可以在O(n)的复杂度里解决,所以是NP问题。

3、NPC(NP Complete,NP完全)问题满足:首先,它得是一个NP问题;然后,所有的NP问题都可以约化到它。证明一个问题是NPC问题也很简单。先证明它至少是一个NP问题,再证明其中一个已知的NPC问题能约化到它(由约化的传递性)。第一个NPC问题是逻辑电路问题,并且可以证明所有NP问题都能约化到它(证明过程复杂)。TSP问题是NPC问题。

4、NP Hard问题满足NPC问题定义的第二条但不一定要满足第一条(即所有NP问题都可以约化到它,但它不一定是NP问题),所以NP Hard问题包含了NPC问题。

所以P问题一定是NP问题,NPC问题也一定是NP问题,NPC问题也一定是NP Hard问题,但NP Hard问题不一定是NP问题。(关系如下图)



参考资料:
[1]、http://www.matrix67.com/blog/archives/105
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值