P问题、NP问题

P、NP、NPC与NPH

1. 基本概念

  1. 多项式时间(Polynomial time)

    在计算复杂度理论中,指一个问题的计算时间不大于问题规模的多项式倍数,即在表示时间复杂度时问题的规模n作为底数,例如O(nk), O(log n), 而不是O(an), O(n!)。与多项式时间对应的是“超多项式时间”,表示只要问题规模足够大,超多项式时间所需的解题时间终究会大大超过任何多项式时间。多项式时间被看作是计算机解决问题的分水岭。

  2. 非确定性算法
    非确定性算法将问题分解成猜测和验证两个阶段,算法的猜测阶段是非确定性的,算法的验证阶段是确定性的,它能验证猜测阶段给出解的正确性。

  3. 多项式时间非确定性算法
    多项式时间非确定性算法首先是一个非确定性算法,并且其验证阶段能在多项式时间内完成。

  4. 归约
    归约是指将特殊问题一般化,将原问题推广为一个最一般的、最有概括性、也更难的、计算复杂度更高的问题,这个问题具有最高的计算复杂度,如果一般化问题能在多项式时间内解决,那么原问题也能有多项式时间的求解算法。

2. P问题(all problems solvable, deterministically,in polynomial time)

P问题即确定性多项式时间内可求解的问题。P问题能找到一个多项式级别的算法求解,被视为可以较快解决的问题。

3. NP问题(non-deterministic Polynomial time)

即非确定性多项式时间内可求解的问题。NP问题可以在多项式时间内验证,但是不确定能否在多项式时间内求解。而能够在多项式时间内求解的问题一定可以在多项式时间内验证(最基本的做法可以先求出解再与待验证解进行比较),故P问题都是NP问题。

4. NPC问题(non-deterministic Polynomial complete problem)

NPC问题即NP完全问题, 任何一个NP问题都可以在多项式时间内归约为某个NP问题,那么这个问题就成为NPC问题,即NP完全问题。NPC的概念对解决P=NP问题十分有用,因为任何NP类问题都可以在多项式时间内转换为NPC问题,NPC问题是最不像P问题也是最不可能属于P问题,若可证明一个NPC问题在P内,则可以推出所有的NP问题都可转换为P问题,即P=NP。

5. NPH问题(Non-deterministic Polynomial hard problem)

任意一个NP问题都可以在多项式时间内归约为某问题,但归约得到的该问题不一定是NP问题(区别NPC问题),则该问题就是NPH问题。NPC问题一定是NP问题,而NPH问题没有限定是NP问题,故NPC问题是NPH问题的真子集。

6. P=NP问题

P/NP问题是千禧年大奖难题,又称世界七大数学难题之一,前面提到,所有的P问题都是NP问题,但反过来NP问题是P问题吗?即一个可以在多项式时间内验证的问题是否意味着存在能在多项式时间内求解的算法?如果是,那么P=NP,那么许多问题像TSP都可以有多项式级别的时间复杂度,而不会出现指数爆炸。

P=NP问题意义重大,NP问题不仅存在于运筹学,在各个领域像医学领域的蛋白质折叠问题也属于NP问题,蛋白质折叠问题对研究癌症、阿尔兹海默症、帕金森症等都有重大的现实意义。P/NP问题至今没有被证明或证伪,难点在于证明本身就是一个NP问题。清华大学2016级本科特等奖获得者陈立杰在特奖答辩时也提到希望在自己有生之年看到P=NP问题被解决。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值