如何不解决P = NP?


96

有很多尝试证明或,并且自然地,许多人考虑这个问题,并提出了证明这两个方向的想法。PN PP=NPPNP

我知道,有些方法已被证明行不通,而且可能还有更多失败的历史。似乎也存在许多无法克服的证明障碍

我们要避免调查死胡同,那是什么?


16
我认为最好是成为社区Wiki(因为对此问题没有唯一的答案,所以范围太广了)。

6
@SaeedAmiri否。社区Wiki过去是一个不在场上,可以允许提出不适用于Stack Exchange平台的问题,但是现在不再这样做
吉尔斯

4
主持人注意:这个问题比普通的Stack Exchange问​​题更广泛,但是我们正在尝试建立规范的问答对。如果您认为此问题不应该以目前的形式存在,请在我们的meta网站上进行讨论
吉尔斯2012年

对于来自相反/建设性方面的类似问题,请问如何解决计算机科学理论和问题?
vzn

4
Wag答案:arXiv是不这样做的宝库。
别名2014年

Answers:


76

我想说解决最著名障碍是P=NP

  1. 相对化(如Ran G.所述)
  2. 自然证明-在某些密码学假设下,Rudich和Razborov证明我们无法使用称为自然证明的一类证明来证明。PNP
  3. 代数化-Scott Aaronson和Avi Wigderson撰写。他们证明了代数化的证明不能分离和ñ PPNP

我熟悉的另一个结果是没有LP配方可以解决TSP(Yannakakis证明了对称LP,最近又扩展到了通用LP)。是一篇讨论结果的博客文章。


4
相关链接:关于一般障碍玩具示例。另外,您应该对最后一句话保持谨慎,我认为添加指向博客文章的链接是明智的,该博客文章解释了为什么一般LP结果无法使TSP不能证明,因为人们可能会感到困惑。 LP是的事实。PPNPP
Artem Kaznatcheev'5

1
如果您想改善答案(目前还不能完全接受),请添加简短的说明和详细信息的链接,以使好奇的读者知道您在说什么。
拉斐尔

57

注意:我尚未仔细检查答案,并且缺少要编写的部分,请将其视为初稿。

这个答案主要是针对那些不是复杂性理论或相关领域研究人员的人。如果您是复杂性理论家并已阅读答案,请在发现任何问题或有想法改善答案时告知我。

在哪里可以找到要求保护的P对NP解决方案

关于如何不解决P与NP的其他清单

兰斯·福特诺(Lance Fortnow),所以您认为自己已定居NP NP,2009年

斯科特·亚伦森(Scott Aaronson),《八个标志声称P≠NP证明不正确》,2010年

Deolalikar的论文的 Polymath页面,其中的进一步阅读部分提供了有关该问题的参考清单。


如何不接近P与NP

让我不是在行不通的想法上而是在更笼统的意义上讨论“如何不对付 P与NP”。P vs. NP是一个容易陈述的问题(另请参见此处的答案):

NP = P:对于多项式时间验证程序算法的每个决策问题,都有一个多项式时间算法。

或同等

SAT有一个多项式时间算法。
SAT可以用任何其他NP完全问题代替。

人们常常过分简化和过分思考问题,并夸大了问题的实际重要性(如上所述)。此类陈述通常是为了给出直觉,但绝不能替代问题的实际数学陈述。

理论效率是一样的在实践中的可行性。

首先让我带来夸大的实际后果。

I. P = NP是有可能的,但实际上并不能解决任何问题!

假设SAT在P中,但是运行时间最快的算法是 。该算法没有实际用途。2264n65536+22128

二。P NP和我们有可能有效地解决NP完全问题。

例如,说SAT不在P中,而是具有运行时间为。nlglgn

要给出使的输入,您必须使用更多被认为存在于宇宙中的电子。因此,指数本质上是。2lgn>62

这里的主要要点是P是高效计算的抽象简单模型,最坏情况下的复杂度是估算计算成本的抽象简单模型,等等。所有这些都是抽象的,但实际上没有人会考虑使用算法就像上面(I)中的那样,确实是一种有效的算法。P是一个很好的抽象模型,它具有很好的属性,它使技术问题变得容易,并且它是一个有用的模型。但是,像所有数学抽象一样,它隐藏了我们可能会在实践中关注的细节。有许多更完善的模型,但是模型越复杂,就越难以争论。

人们在实践中关心的是针对他们关心使用合理数量的资源的实例计算问题答案。这取决于任务,应予以考虑。

尝试为NP难题的实际实例找到更好的算法是一项有趣且值得的努力。行业中有SAT求解器启发式算法,它们可以求解具有数百万个变量的SAT实际实例。甚至有国际SAT比赛

(但是也有一些小的具体实例,所有这些算法都会失败,而且会严重失败,我们实际上可以证明,所有先进的现代SAT求解器都需要花费时间来求解简单的实例,例如命题Pigeonhole原理。)

请记住,仅通过在实例上运行程序就无法获得程序的正确性和运行时间。尝试多少实例都没有关系,没有足够的数量。有无数种可能的输入,您必须为所有这些输入显示程序的正确性和效率(即运行时间是多项式)。简而言之,您需要数学证明正确性和效率。如果您不知道什么是数学证明,那么您首先应该学习一些基本的数学知识(阅读教科书离散数学/组合论/图形理论,这是了解什么是数学证明的好话题)。

也要注意有关P vs. NP的其他主张及其答案的后果。这样的主张通常基于类似的简化。

复杂性理论家并不真正在乎P与NP的答案!

我有点夸张了。当然,我们确实关心P对NP的答案。但是我们会在上下文中关心它。P vs. NP是我们的旗舰问题,但这不是最终目标。这是一个易于陈述的问题,涉及许多基本概念,对于不熟悉该主题的人解释我们感兴趣的问题类型很有用。但是,我们不会对此问题寻求一个是/否答案。

我们希望更好地了解有效计算的本质。我们认为,解决问题将伴随着这种理解,而这正是我们关心这一问题的真正原因。它是大量研究的一部分。如果您想了解我们所做的事情,请阅读一本好的复杂性理论教科书,例如Arora和Barak的“ 复杂性理论:一种现代方法 ”(草稿版本)。

让我们假设有人附带了一个完整的P NP 加密形式证明,我们可以通过选择和解密一些证明来以非常高的置信度验证它的正确性(请参阅零知识证明PCP定理)。 。因此,我们可以以小于流星撞击我们房屋的错误概率来验证该索赔,我们非常确定该证明是正确的并且P = NP,但是我们不知道该证明。它不会给我们带来太多的满足感或刺激。形式证明本身也不会令人满意。我们追求的不是形式上的证明,我们追求的是理解。

简而言之,从复杂性理论家的角度来看

P vs. NP不是回答是/否的难题。我们寻求P与NP的答案,因为我们认为它将更好地理解有效计算的本质。在我们的理解上未取得重大进步的答案不是很有趣。

在很多情况下,非专家都声称可以解决P对NP的问题,而这些主张通常遭受的问题是,如果他们只是阅读有关复杂性理论的标准教科书,就不会解决这些问题。

常见问题P = NP

P = NP的主张似乎更为普遍。我认为以下是最常见的类型。有人有一个主意,编写了一个程序并在几个实例上对其进行了测试,并认为它是多项式时间,可以正确地解决NP完全问题。正如我在上面解释的那样,没有测试数量会显示P = NP。P = NP需要一个数学证明,而不仅仅是一个看起来可以在多项式时间内解决NP完全问题的程序。

这些尝试通常会遇到以下两个问题之一:

I.算法不是真正的多项式时间。

二。该算法不能正确解决所有实例。

表示P NP参数不正确

[待写]

如何检查你的算法并没有真正发挥作用

您无法通过测试证明算法正确运行。但是您可以通过测试证明它无法正常工作!因此,如果您愿意做一些工作,可以通过以下方法确保算法不正确。

首先,编写一个程序,将SAT实例(标准CNF格式)转换为您要解决的NP难题。SAT是研究最多的NP难题之一,将其他问题简化为SAT通常很容易。其次,以最先进的SAT解算器所遇到的示例为例(例如,以SAT竞赛中的示例为例),并将其馈送到您的算法中,并查看算法的性能。尝试使用已知的硬实例,例如命题Pigeonhole原理(不要通过将其硬编码为特殊情况作弊),加密实例(例如RSA Factoring Challenges),接近阈值的随机k-SAT实例等。

同样,您可以检查算法是否有效。例如,如果您认为算法的运行时间不是但是求解大小为1000的实例要花几天的时间。请修正您认为算法具有的多项式最坏情况运行时间上限。取得实例并估计算法解决它们所需的时间,并检查是否与您的估计相符。10n2

如何检查您的算法P = NP 想法不起作用

如果执行这些操作,您将非常确定自己的算法不起作用(如果它比最新的SAT解算器更好,则可以参加下一场竞赛,很多人会对研究您的算法和思想感兴趣)。

现在,您知道它并没有真正起作用,但这还不够。你想知道为什么

是我的算法不起作用的原因是可以解决的小问题,还是有根本原因无法起作用?

有时,算法的问题很简单,可以从概念上识别出问题所在。最好的结果是您了解您的想法无法奏效的原因。通常情况并非如此,您的想法行不通,但您无法弄清原因。在这种情况下,请记住:

理解为什么有些想法不可行可能比解决P对NP困难!

如果您可以将想法正式化,那么您也许可以证明特定想法的局限性(例如,有结果表明贪婪算法的特定形式化不能解决NP完全问题)。但是,这甚至更加困难,如果您没有阅读标准复杂性理论教科书,您将没有太多机会。

有时甚至没有一个明确的概念性想法,为什么该算法应该起作用,即,它基于一些未被充分理解的启发式算法。如果您对算法为何起作用没有一个清晰的概念性想法,那么您可能没有太多机会了解为什么它不起作用!

P NP声明的常见问题

尽管大多数专家认为P NP比P = NP更有可能,但这种说法似乎不太普遍。原因是,证明下限似乎比设计算法更困难(但是通常证明下限和上限本质上是相关的)。

问题1:作者不知道P和NP的定义,甚至更糟的是不了解什么是数学证明。因为作者缺乏基本的数学训练,所以当他被告知要陈述的内容不是证据时,他也不理解(例如,步骤不遵循先前的步骤)。

问题2:作者将“我们不知道”与“数学上的不可能”混为一谈。例如,他们做出各种不合理的假设,并在被问到“为什么这句话是正确的?”时被提出的。他们回答“怎么可能是假的?”。一个常见的假设是,解决问题的任何程序都必须抛出特定的步骤,例如必须计算特定的中间值,因为他无法想到解决问题的另一种方法。

[要完成的]

表示P NP参数不正确

[待写]

如何检查您的P NP 想法不起作用

如果一项索赔没有遭受这些基本问题的困扰,那么拒绝该索赔将变得更加困难。在第一层,您可以在参数中找到错误的步骤。作者的典型回答是,我可以修复它,并且这种反复可以继续下去。类似于P = NP解决方案,通常很难找到一个可以证明它行不通的想法的基本问题,尤其是在想法本身是非正式的情况下。

在最佳情况下,如果我们可以将构想形式化并确定表明该构想无法工作的障碍,则我们已经证明了新的障碍结果(这就是尝试使用电路下限来证明P NP导致自然证明障碍的方式) )。


尽管我喜欢P对NP页,但我却感到讨厌的是,它没有跟踪其作者撤回了哪些证据。对于某些arXiv链接,您会在arXiv上找到明确的“本文已撤回”的提示。我敢肯定,除了具有明确通知的arXiv论文以外,还有更多的撤回证明。好的,我知道撤回的证明不应该被夸大,因为撤回“较早的证明尝试”并不意味着相同的作者以后不会再尝试。但是对撤回的证明尝试保持沉默仍然会给人以偏见。
Thomas Klimpel

@thomas很少有“曲柄”作者曾经“撤回”论文。woegorgi列表的不言而喻的是,其质量明显低于 arxiv论文。但是,我同意,希望woegorgi可​​以添加一些其他信息,并希望他的编辑更加灵活。例如,即使最近给他发了电子邮件,他也没有在清单上列出我的P vs NP提纲,尽管最近他在福山证明中张贴了与长cstheory.se聊天有关的另一项。
vzn

1
感谢您重新访问此内容!似乎我毕竟过早意识到了对错误人的赏金。;)请注意,您可以随时使用stackedit.io来准备帖子。期待剩下的帖子!
拉斐尔

34

也许最不能使用的技术是相对化,即拥有具有Oracle访问权限的TM。

ABPA=NPAPBNPB

PNPOPONPOA

P=?NP


1
为了完全正确,这里的对角化是指直接简单的对角化。看到这个问题
Kaveh

1
那么相对化不是证明技术,而是打破证明的效果?您能否给出/链接可以相对化的证明示例?
拉斐尔

2
是的,相对化不是证明技术,它是证明的属性(顺便说一句,这里不是正式的)。如果在所有图灵机被oracle机器代替时证明不起作用,则证明相对化。例如,您可以说服自己,时间层次定理的证明是相对的。
Sasho Nikolov

10

我建议你阅读这篇博客文章兰斯·福尔瑙

  1. 因此,您认为您已经解决了问题。想办法。有时,您仍然可以从有缺陷的证据中挽救一些有趣的东西。
  2. 您认为证明是正确的。你的信念是错误的。返回步骤1。
  3. 您是否正在做出任何假设或捷径,甚至看似很小且显而易见的假设?您是否使用“清晰”,“明显”,“容易看”,“应该”,“必须”或“可能”之类的词?您声称正在解决所有数学中最重要的问题。您不会做出假设。返回步骤1。
  4. nk
  5. 您将论文提交到在线存档。也许有人告诉你论文中有什么缺失或错误。这应该使您转到步骤1。但是,您对纸张进行了一些无意义的更改并重新发布。
  6. 最终,人们忽略了您的论文。你想知道为什么你没有得到名利。
  7. 您将论文提交至期刊。
  8. 论文被拒绝。如果您很聪明,则可以返回到步骤1。但是,如果您很聪明,则永远不必回到步骤7。
  9. 您向编辑者抱怨说,编辑者不理解该证明或该证明易于修复。您感到震惊的是,一位受人尊敬的编辑或期刊会以这种方式对待您的论文。
  10. 您重新提交论文,上诉,尝试其他期刊都无济于事。
  11. 您相信“机构”故意压制您的论文,因为如果解决P对NP问题,我们的领域就会变得不那么有趣,因此我们必须不惜一切代价保持公开状态。
  12. 如果我告诉你否则你会相信我吗?

7
该问题要求“已被证明无效的方法”和“具有失败历史的方法”,并且该答案未提及任何方法。
伊藤刚(Tsuyoshi Ito)

6
我的观点是,因为博客文章根本无法回答问题,所以将其复制并粘贴毫无意义。
伊藤刚(Tsuyoshi Ito)

7
这确实不能回答问题。博客文章是典型的P = NP步骤的棘手步骤。曲柄通过。在娱乐的同时,这并没有为我提供无法证明(无法分解)P和NP的特定理论
拉斐尔

4
这个怎么样?这个问题要求证明P!= NP的障碍。这个答案的障碍(如评论中所述)是“假设某件事”,“错误解释”,“说清楚某件事”,“相信某件事”。这些障碍太笼统,因为它们是证明任何事物的障碍,而不是证明P = NP的障碍。
泰森·威廉姆斯

1
有效的注释都缺少一个基本点。该博客由lance fortnow撰写,该专家是复杂性理论专家和世界各地的权威人士;他刚出版了一本关于P vs NP Golden Ticket的新书。所以他基本上是根据个人经验讲的
vzn

2

这是关于模糊的,较深的,较困难的/内角/参考/扭转,涉及到可追溯到1980年代的电路方法,该方法最初是多年前卢卡·特雷维森(Luca Trevisan)在网络空间其他地方向我指出的。靠近主题的参考资料,布尔函数复杂性:高级与前沿(算法与组合学,第27卷)。

人们可以看到拉兹伯罗夫的某些思想中出现了较早的趋势,最终导致了《自然证明》论文(所谓的“归化”)。ref [273]是非常技术性和困难的,尽管后来的论文证明可以被看作是后来的大型概括,但似乎在后来的论文/书中没有被引用,构建/扩展或重申很多。摘录来自John E Savages出色的参考模型p457

Ω(n2)n

[270] AA Razborov,“某些布尔函数单调复杂度的下界”,Dokl。阿卡德 Nauk SSSR(Soviet Math。Dokl。)281(1985),798–801,(俄语);苏联数学的英语翻译。多克 31(1985),354–357

[271] AA Razborov,“逻辑永久单调网络复杂性的下界”,Mat。Zametki 37(1985),887–900,(俄语);英语的数学翻译。注释37(6)(1985),485-493。

[273] AA Razborov,“关于逼近方法”,Proc.Natl.Acad.Sci.USA,87:2593-2。21周年 ACM症状。计算理论(1989),167–176。


2
我看不出这如何回答“如何不证明P?= NP”的问题。现在,它似乎更像是对某人思想的某种推测。
Juho 2013年


2
当然,我只是建议将所有这些内容都明确。电路的复杂性甚至不是本科水平的材料,因此有一定的背景是合理的。可以期望读者不要成为复杂性理论方面的专家。
Juho 2013年

@juho好的。曾经看过一本用于大学本科课程的野蛮书[非常“以电路为中心”],这也让我感到惊讶。同意其高级材料,因此使用第一句的措词。至于“对思想的推测”,除了引用拉兹伯罗夫在他自己的论文中所写/所记录的自己的思想外,没有任何东西。
vzn

1
顺便说一句,总的来说,这是一个非常高级的问题(不是真正的本科水平),而其他答案则是高级的并且通常在本科水平之外。
vzn13 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.