p=NP是什么意思?

p=NP

P对NP问题是克雷数学研究所高额悬赏的七个千禧年难题之一,同时也是计算机科学领域的最大难题,关系到计算机完成一项任务的速度到底有多快。

1、简介
P对NP问题是Steve Cook于1971年首次提出。"P/NP问题",这里的P指在多项式时间(Polynomial)里,一个复杂问题如果能在多项式时间内解决,那么它便被称为P问题,这意味着计算机可以在有限时间内完成计算;NP指非确定性多项式时间(nondeterministic polynomial),一个复杂问题不能确定在多项式时间内解决,假如NP问题能找到算法使其在多项式时间内解决,也就是证得了P=NP。比NP问题更难的则是NP完全和NP-hard,如围棋便是一个NP-hard问题。2010年8月7日,来自惠普实验室的科学家Vinay Deolalikar声称已经解决了"P/NP问题" ,并公开了证明文件。

2、排序问题
如果我们只能通过元素间的相互比较来确定元素间的相互位置,而没有其他的附加可用信息,则排序问题的复杂性是O(nlgn),但是排序算法有很多,冒泡法是O(n^2),快速排序平均情况下是O(nlgn)等等,排序问题的复杂性是指在所有的解决该问题的算法中最好算法的复杂性。问题的复杂性不可能通过枚举各种可能算法来得到,一般都是预先估计一个值,然后从理论上证明。

3、定义
为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要回答yes或者 no的问题。任何一般的最优化问题都可以转化为一系列判定性问题,比如求从A到B的最短路径,可以转化成:从A到B是否有长度为1的路径?从A到B是否有长度为2的路径?。。。从A到B是否有长度为k的路径?如果问到了k的时候回答了yes,则停止发问,我们可以说从A到B的最短路径就是k。如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题的集合。然而有些问题很难找到多项式时间的算法(或许根本不存在),比如找出无向图的哈米尔顿回路问题,但是我们发现如果给了我们该问题的一个答案,我们可以在多项式时间内判断这个答案是否正确。比如说对于哈米尔顿回路问题,给一个任意的回路,我们很容易判断他是否是哈米尔顿回路(只要看是不是所有的顶点都在回路中就可以了)。这种可以在多项式时间内验证一个解是否正确的问题称为NP问题。显然,所有的P类问题都是属于NP问题的,但是现在的问题是,P是否等于NP?这个问题至今还未解决。这就是P对NP问题。
4、P≠NP论证
如果P=NP,那么每个答案很容易得到验证的问题也同样可以轻松求解。这将对计算机安全构成巨大威胁,目前加密系统的破解就相当于要将一个整数分解为几个因数的乘积,正是其求解过程的繁琐,才能杜绝黑客的入侵。
而现在,美国惠普实验室的数学家维奈·迪奥拉里卡围绕一个众所周知的NP问题进行论证,给出了P≠NP的答案。这就是布尔可满足性问题(Boolean Satisfiability Problem),即询问一组逻辑陈述是否能同时成立或者互相矛盾。迪奥拉里卡声称,他已经证明,任何程序都无法迅速解答这个问题,因此,它不是一个P问题。
如果迪奥拉里卡的答案成立,说明P问题和NP问题是不同的两类问题,这也意味着计算机处理问题的能力有限,很多任务的复杂性从根本上来说也许是无法简化的。
对于有些NP问题,包括因数分解,P≠NP的结果并没有明确表示它们是不能被快速解答的;但对于其子集NP完全问题,却注定了其无法很快得到解决。其中一个著名的例子就是旅行商问题(Travelling Salesman Problem),即寻找从一个城市到另一个城市的最短路线,答案非常容易验证,不过,如果P≠NP,就没有计算机程序可以迅速给出这个答案。
迪奥拉里卡的论文草稿已经得到了复杂性理论家的认可,但随后公布的论文终稿还将接受严格的审查。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-09-26

P( polynomial time) = NP( non-deterministic polynomial time)
NP: 解决一个复杂问题,可能有多个解。每一个解都可以有效地验证该解,不管这个问题能否被有效地解决,所提出的解决方案都能被有效地验证。这类问题被定义为NP。
P: 所有已知的可有效解决的决策问题的集合。 P是NP的子集。
如果P=NP,那就意味着所有的NP类复杂问题,都能够找到一个有效的算法来解决。

第2个回答  2022-07-31
P( polynomial time) = NP( non-deterministic polynomial time)
NP: 解决一个复杂问题,可能有多个解。每一个解都可以有效地验证该解,不管这个问题能否被有效地解决,所提出的解决方案都能被有效地验证。这类问题被定义为NP。
P: 所有已知的可有效解决的决策问题的集合。 P是NP的子集。
如果P=NP,那就意味着所有的NP类复杂问题,都能够找到一个有效的算法来解决。
第3个回答  2023-02-03
如果P=NP真的成立,那么对于任何一件随机的事件,我们都可以找出针对性的算法来计算或控制事件的走向。还是刚刚那个股市的例子,我们就可以计算出每支股票在未来的涨跌情况,这样岂不成了“股票之神”?在医疗上,我们可以解决很多目前无法攻克的疾病如癌症;在科技上,我们可以通过特定的算法来解决我们无法实现的技术难题;总之无论在哪个领域都会取得很大的突破。毫不夸张地说,甚至有可能做到跨越时间、空间,知晓未来、洞察于千里之外。
想学设计就来千锋教育。千锋是一家拥有核心教研能力以及校企合作能力的职业教育培训企业,2011年成立于北京,秉承“初心至善 匠心育人”的核心价值观,以坚持面授的泛IT职业教育培训为根基,发展至今已布局教育培训、高校服务、企业服务三大业务版块,旗下拥有千锋教育、好程序员、小狮视觉、扣丁学堂、锋云智慧、锋企优联、锋友学盟、锋益等多个子品牌,截止目前已在北京、深圳、上海、广州、郑州、大连等20余个核心城市建立直营校区,服务近20万学员、近千所高校和数万家企业。作为拥有IT基因和数字技术能力的教育机构,千锋十分注重联手高校和企业协同培养数字化人才,建立数字技能人才培育机制和行业标准,引领新时代职业教育实现高质量发展。
第4个回答  2022-09-26

P/NP问题是在理论信息学中计算复杂度理论领域里至今没有解决的问题,它被“克雷数学研究所”(Clay Mathematics Institute,简称CMI)在千禧年大奖难题中收录。

P/NP问题中包含了复杂度类P与NP的关系。1971年史提芬·古克(Stephen A. Cook)和Leonid Levin相对独立的提出了下面的问题,即是否两个复杂度类P和NP是恒等的(P=NP?)。

首先,就算P=NP,要摧毁依赖困难问题的学科,首先你要

P=NP是一个constructive proof。也就是说,某个人需要给出解决NP的P算法,而不是证伪P!=NP,后者的证明仅仅证明了一个数学命题,没有任何现实意义;
就算有人给出了NP的P算法,要实用这个算法也必须在现实中效率足够高。比方说,如果这个算法的复杂度是
O
(
n
1000000000000000000000000000000000
)
,那么就算这是P,可能在现实生活中,只要增加足够多的位数,那么这些加密算法都无法在可行时间内被破解。

另外,密码学其实依赖的定理比P!=NP更强。
P=NP虽然是个很重要的问题,但是他对现实的影响可以说并没有十分大。如果大家要讨论这个问题,首先得对这个问题的概况有一定程度的了解。Scott Aaronson写了一片冗长的survey[1],大家感兴趣的话可以去看一看。据说,P=NP的解决保守估计可能还需要100年的时间。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网