P & NP 问题

 

P & NP 问题是由Steve Cook于1971年首次提出,克雷数学研究所将它作为高额悬赏的七个千禧年难题之一,同时,它也是计算机科学领域的最大难题。

下面先看看最基本的P类问题和NP问题:

P问题

  P——Polynomial,多项式时间。P问题表示在多项式时间内可以解决的问题。时间复杂度为O(n), O(nk), O(nlogn)的问题都能在多项式时间内解决,我们在数据结构与算法中的大部分问题如排序、找最短路径等都能在多项式时间内解决。

NP问题

  NP——Nondeterministic Polynomial ,非确定多项式时间。NP问题表示不确定在多项式时间内是否能解决的一类问题。也就是说它可能能在多项式时间内解决,也可能不能。同时P问题是NP问题的一个子类,即所有的P问题都是NP问题。

 

NP问题的延伸

NPC问题

  NPC问题即NP-Complete问题,是NP问题中最难的一类问题。

  它的定义分为两个层面:

    1. 它是一个NP问题;

    2. 所有的NP问题都能在多项式时间内变换得到它。

  它有一个很管用的性质:如果一个NPC问题存在多项式时间能解决的算法,那么所有NP问题都能在多项式时间内求解,也就能证明P=NP。这对于求解N是否等于NP有重大意义。

  Steve Cook在 1971年找到了第一个NPC问题,此后人们又陆续发现很多NPC问题,现在可能已经有3000多个了。哈密顿回路问题,货郎担问题,集团问题,最小边覆盖问题等等很多问题都是NPC问题。

NPH问题

  NPH问题即NP-Hard问题,它是比NPC还难的问题。它满足NPC问题定义的第二条,但是不满足第一条。比如一个问题A,若它不是NP问题,同时可以找到某一个NPC问题能再多项式时间内转换为A,则A是一个NPH问题。旅行商问题(TSP)就是一个NPH问题。

 

最后我们设想一下,假如P=NP,那么世界将变成怎样?

  首先,所有的NPC问题将被全部解决。

  困扰人类已久的自然语言处理问题将被一举攻破。

  所有人工智能问题都将得到解决:我们只需向计算机提交足够多的情境以及与之对应的正常人的反应,计算机就可以找出一种能正确生成出这些反应的最简算法,完全模仿人类的行为。

  数学证明可以全部交给计算机解决:寻找一个反例将变得和验证一个反例一样简单,一切错误的猜想都将瞬间被推翻。

  任何密码算法都将成为徒劳:计算机可以通过一大批明文密文样本推算出生成密文的算法。

 

转载于:https://www.cnblogs.com/jiajia920716/p/3444420.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值