什么是P问题,什么是NP问题,什么是NPC问题

参考:https://zhuanlan.zhihu.com/p/22497908  讲的真好!

 

非多项式级别/多项式级别

非多项式级别(运算慢,巨大):o(n!)   o(a^n)

多项式级的复杂度(运算快,比较小):o(1) o(n) o() o(logn)  o(nlogn)

P问题

该问题能够找到一个解决算法,时间复杂度是o(1) o(n) o() o(logn)  o(nlogn) 多项式时间 的级别 

NP问题 

(找一个解很困难,但验证一个解很容易。)

我们可能没有一个已知的快速的解决问题的方法

但是如果给我们一个候选的答案,我们能够在短时间内(多项式时间)验证这个答案到底是不是我们已知问题的正确答案,这类问题叫做NP problem。

所以很显然 P Problem是NP problem的一个子集。

NPC问题

约化

解决了B,A就能解决。 A能约化成B,B问题比A问题复杂一点。

求解 一元一次方程(5x = 10) -- >  求解二元一次方程  (5x + y = 11)

求解 简单电路 --> 求解复杂电路

求解 一年级数学 --> 求解 二年级数学

NPC的直观解释

存在这样一个NP问题,所有的NP问题都可以约化成它。

换句话说,只要解决了这个问题,那么所有的NP问题都解决了。 这个问题就是NPC问题

我们有理由相信,NPC问题是最复杂的问题。

人们想表达一个问题不存在多项式的高效算法时应该说它“属于NPC问题”。

NPC的定义

同时满足下面两个条件的问题就是NPC问题

  • 它是一个NP问题
  • 所有的NP问题都可以约化到它。

如何证明一个问题是NPC问题

  • 先证明它至少是一个NP问题
  • 再证明其中一个已知的NPC问题能约化到它(约化的传递性)

为什么人们坚信P≠NP

既然所有的NP问题都能约化成NPC问题,那么只要任意一个NPC问题找到了一个多项式的算法,那么所有的NP问题都能用这个算法解决了,NP也就等于P 了。因此,给NPC找一个多项式算法太不可思议了。“正是NPC问题的存在,使人们相信P≠NP”。我们可以就此直观地理解,NPC问题目前没有多项式的有效算法,只能用指数级甚至阶乘级复杂度的搜索。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值