【数学基础】 foundation of mathematics :NPC问题

数学基础系列文章目录



前提

多项式定义:形如 a n x n + a n − 1 x n − 1 + ⋯ + a 1 x 1 + a 0 = 0 a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x^1+a_0=0 anxn+an1xn1++a1x1+a0=0的式子称为多项式;
时间复杂度:表示算法运行得到解所需的时间;

例子:
冒泡排序法,有 n n n个数需要排序,至多需要 ( n 2 − n ) / 2 (n^2-n)/2 (n2n)/2次比较才能完成排序,当n→∞时,除了 n 2 n^2 n2其它均可忽略,故其时间复杂度为 O ( n 2 ) O(n^2) O(n2)
 

P类问题

存在多项式时间算法的问题(polynomail);
排序问题便是一个有多项式时间的问题;
一般地,计算机处理的数据量很大,当一个问题的所需时间超过了多项式时间,那便毫无意义,因为所需时间过长;
 

NP类问题

能在多项式时间内验证并得到一个正确解的问题(nondeterministic polynomial);
P类问题是NP类问题的子集,因为存在多项式时间解法的问题,总能在多项式时间内验证它;
但是,值得注意的是,NP类问题能够在多项式时间内得到验证,但无法说明这个问题存在多项式时间内的算法;故此引出一个问题,NP类问题是否等于P类问题;
 

NPC类问题

存在这样一个NP问题,所有的NP问题都可以约化成它(nondeterministic polynomial complete);
一般地,我们直观地认为,被约化成的问题具有比前一个问题更复杂的时间复杂度;
当同一类的所有NP问题,都可以在多项式时间内约化成一个最复杂的NP问题,如果我们针对这个最复杂的NP问题可以找到它的多项式时间内的算法,那我们就可以说同一类的所有NP问题都具有多项式时间内的算法,即NP=P;
 

NP难问题

存在这样一个问题,所有的NP问题都可以约化成它(NP-Hard);
NPH问题是NPC问题的拓展,这个最复杂的问题不一定是NP问题;
即使NPC问题得到解决,但是NPH问题可能仍然不能得到多项式时间内的算法;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值