P、NP、NPC(NP完全问题)、NP-hard问题概述


最近在做压缩感知的相关研究,一直对P、NP等问题一知半解,知道看到了这几篇博文才算真正了解了这几大问题的差异。
博文地址如下:

第一篇详细做了这些问题的总结与讲解,第二篇是一个简短的概述。
https://blog.csdn.net/jbb0523/article/details/40710449
http://www.cnblogs.com/jpcflyer/archive/2012/04/15/2450622.html)

本篇博文主要为了自己在想到时再回顾这些概念做了个梳理总结

一、概念总结

1.P问题: 能在多项式时间内解决的问题

一般而言,多项式时间可解意味着时间复杂度为O(1)、O(n)、O(logn)

时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。

2.NP问题: 不能在多项式时间内解决或不确定能不能在多项式时间内解决,但能在多项式时间验证的问题

3.NPC: NP完全问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的NP问题,即解决了此NPC问题,所有NP问题也都得到解决。

NPC问题包含2部分:1.它是个NP问题、2.所有的问题都可以约化到它

补充:约化的概念
一个问题A可以约化为问题B的含义即是,可以用问题B的解法解决问题A
从时间复杂度来讲,就是B问题的时间复杂度大于或等于A问题的时间复杂度,可以用求解B问题的算法来求解A问题。

4.NP hard:NP难问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的问题(不一定是NP问题)。

NP-hard问题满足NPC问题的第二个条件但不满足第一个条件。


二、四者联系的图形表示


P NP NPC NPhard关系的图形表示



  1. P问题属于NP问题,NPC问题属于NP问题。

  2. NPC问题同时属于NP hard问题,是NP与NPhard的交集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值