P、NP、NPC、NP-hard问题

其中有一部分引用此博客http://blog.sciencenet.cn/blog-327757-531546.html
要计算或解决一个问题,该问题通常有一个大小规模,用n表示。例如,若分析计算一个二进制数,该数有多少位,这个位就是其大小规模。再比如,从n个数里面找出最大的那个数,这个n就是该问题的规模大小。怎么找?我们要比较n-1次才能得到结果,这个n-1就是所花的时间,也就是时间复杂度。再比如,将n个数按从大至小排序,n是其规模大小,若是我们按这样的方法:第一次从n个数里找最大,第二次从n-1个数里找最大,以此类推,需要的比较次数就是n(n-1)/2,称我们所用的方法为算法,称n(n-1)/2为该算法的时间复杂度。对于时间复杂度,当n足够大时,我们只注重最高次方的那一项,其他各项可以忽略,另外,其常数系数也不重要,所以,n(n-1)/2我们只重视n的平方这一项了,记为O(n的平方),这就是该算法对该问题的时间复杂度的专业表示。

所有形如a*n^k+b*n^(k-1)+c*n^(k-2)……都可记为O(n^k), n^k表示n的k次方,为乘号,这样的复杂度称为多项式时间复杂度,若是时间复杂度形如k^n,k为大于1的常数,或n!,或更大的,就称为指数型时间复杂度。显然,当n足够大时,指数型时间比多项式要大得多的多。

p问题:能够在多项式时间内解决的问题
NP问题:能够在多项式时间内验证的问题,P问题与NP问题考虑维度不同,p问题从解决上来考虑问题,而NP问题只是你给出一个解决方案,是否能够在多项式时间内验证

注:约化/规约(Reducibility):一个问题A可以约化为问题B的含义即是,可以用问题B的解法解决问题A
NPC问题:1是一个NP问题2NP问题都可以约化到它
NP-hard问题:满足2不一定满足1
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
P、NPNPCNP-hard和多项式归约是计算复杂度理论中的重要概念。 P问题指的是可以在多项式时间内解决的问题,也就是说,存在一个多项式时间的算法可以在合理的时间内解决该问题NP问题指的是可以在多项式时间内验证解的正确性的问题。也就是说,如果已经给出了一个解,我们可以在多项式时间内验证它是否是正确的。但是,目前并没有已知的多项式时间算法可以解决所有的NP问题NPC问题指的是NP问题中最难的一类问题,即NP完全问题。如果一个问题NP完全问题,那么它是NP问题的一种,并且所有的NP问题都可以归约到该问题。也就是说,如果我们能够在多项式时间内解决一个NPC问题,那么我们也可以在多项式时间内解决所有的NP问题NP-hard问题指的是至少和NPC问题一样难的问题,但不一定是NP问题。也就是说,NP-hard问题可能是更加困难的问题,但是它们至少和NPC问题一样难。 多项式归约是指将一个问题转化为另一个问题,使得解决原问题的算法可以用来解决目标问题。如果一个问题可以在多项式时间内归约为另一个问题,那么我们称它是多项式归约的。 P=NP和P≠NP是计算复杂度理论中的两个重要假设。P=NP的意思是,所有的NP问题都可以在多项式时间内解决。P≠NP的意思是,存在一些NP问题是不能在多项式时间内解决的。目前,这两个假设没有被证明或者证伪,它们仍然是计算复杂度理论中的重要问题

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值