有很多尝试证明或,并且自然地,许多人考虑这个问题,并提出了证明这两个方向的想法。P ≠ N P
我知道,有些方法已被证明行不通,而且可能还有更多失败的历史。似乎也存在许多无法克服的证明障碍。
我们要避免调查死胡同,那是什么?
有很多尝试证明或,并且自然地,许多人考虑这个问题,并提出了证明这两个方向的想法。P ≠ N P
我知道,有些方法已被证明行不通,而且可能还有更多失败的历史。似乎也存在许多无法克服的证明障碍。
我们要避免调查死胡同,那是什么?
Answers:
我想说解决最著名障碍是
我熟悉的另一个结果是没有LP配方可以解决TSP(Yannakakis证明了对称LP,最近又扩展到了通用LP)。这是一篇讨论结果的博客文章。
注意:我尚未仔细检查答案,并且缺少要编写的部分,请将其视为初稿。
这个答案主要是针对那些不是复杂性理论或相关领域研究人员的人。如果您是复杂性理论家并已阅读答案,请在发现任何问题或有想法改善答案时告知我。
兰斯·福特诺(Lance Fortnow),所以您认为自己已定居NP NP,2009年
斯科特·亚伦森(Scott Aaronson),《八个标志声称P≠NP证明不正确》,2010年
Deolalikar的论文的 Polymath页面,其中的进一步阅读部分提供了有关该问题的参考清单。
让我不是在行不通的想法上而是在更笼统的意义上讨论“如何不对付 P与NP”。P vs. NP是一个容易陈述的问题(另请参见此处的答案):
NP = P:对于多项式时间验证程序算法的每个决策问题,都有一个多项式时间算法。
或同等
SAT有一个多项式时间算法。
SAT可以用任何其他NP完全问题代替。
。
人们常常过分简化和过分思考问题,并夸大了问题的实际重要性(如上所述)。此类陈述通常是为了给出直觉,但绝不能替代问题的实际数学陈述。
首先让我带来夸大的实际后果。
I. P = NP是有可能的,但实际上并不能解决任何问题!
假设SAT在P中,但是运行时间最快的算法是 。该算法没有实际用途。
二。P NP和我们有可能有效地解决NP完全问题。
例如,说SAT不在P中,而是具有运行时间为。
要给出使的输入,您必须使用更多被认为存在于宇宙中的电子。因此,指数本质上是。2
这里的主要要点是P是高效计算的抽象简单模型,最坏情况下的复杂度是估算计算成本的抽象简单模型,等等。所有这些都是抽象的,但实际上没有人会考虑使用算法就像上面(I)中的那样,确实是一种有效的算法。P是一个很好的抽象模型,它具有很好的属性,它使技术问题变得容易,并且它是一个有用的模型。但是,像所有数学抽象一样,它隐藏了我们可能会在实践中关注的细节。有许多更完善的模型,但是模型越复杂,就越难以争论。
人们在实践中关心的是针对他们关心使用合理数量的资源的实例计算问题的答案。这取决于任务,应予以考虑。
尝试为NP难题的实际实例找到更好的算法是一项有趣且值得的努力。行业中有SAT求解器启发式算法,它们可以求解具有数百万个变量的SAT实际实例。甚至有国际SAT比赛。
(但是也有一些小的具体实例,所有这些算法都会失败,而且会严重失败,我们实际上可以证明,所有先进的现代SAT求解器都需要花费时间来求解简单的实例,例如命题Pigeonhole原理。)
请记住,仅通过在实例上运行程序就无法获得程序的正确性和运行时间。尝试多少实例都没有关系,没有足够的数量。有无数种可能的输入,您必须为所有这些输入显示程序的正确性和效率(即运行时间是多项式)。简而言之,您需要数学证明正确性和效率。如果您不知道什么是数学证明,那么您首先应该学习一些基本的数学知识(阅读教科书离散数学/组合论/图形理论,这是了解什么是数学证明的好话题)。
也要注意有关P vs. NP的其他主张及其答案的后果。这样的主张通常基于类似的简化。
我有点夸张了。当然,我们确实关心P对NP的答案。但是我们会在上下文中关心它。P vs. NP是我们的旗舰问题,但这不是最终目标。这是一个易于陈述的问题,涉及许多基本概念,对于不熟悉该主题的人解释我们感兴趣的问题类型很有用。但是,我们不会对此问题寻求一个是/否答案。
我们希望更好地了解有效计算的本质。我们认为,解决问题将伴随着这种理解,而这正是我们关心这一问题的真正原因。它是大量研究的一部分。如果您想了解我们所做的事情,请阅读一本好的复杂性理论教科书,例如Arora和Barak的“ 复杂性理论:一种现代方法 ”(草稿版本)。
让我们假设有人附带了一个完整的P NP 加密形式证明,我们可以通过选择和解密一些证明来以非常高的置信度验证它的正确性(请参阅零知识证明和PCP定理)。 。因此,我们可以以小于流星撞击我们房屋的错误概率来验证该索赔,我们非常确定该证明是正确的并且P = NP,但是我们不知道该证明。它不会给我们带来太多的满足感或刺激。形式证明本身也不会令人满意。我们追求的不是形式上的证明,我们追求的是理解。
简而言之,从复杂性理论家的角度来看
P vs. NP不是回答是/否的难题。我们寻求P与NP的答案,因为我们认为它将更好地理解有效计算的本质。在我们的理解上未取得重大进步的答案不是很有趣。
在很多情况下,非专家都声称可以解决P对NP的问题,而这些主张通常遭受的问题是,如果他们只是阅读有关复杂性理论的标准教科书,就不会解决这些问题。
P = NP的主张似乎更为普遍。我认为以下是最常见的类型。有人有一个主意,编写了一个程序并在几个实例上对其进行了测试,并认为它是多项式时间,可以正确地解决NP完全问题。正如我在上面解释的那样,没有测试数量会显示P = NP。P = NP需要一个数学证明,而不仅仅是一个看起来可以在多项式时间内解决NP完全问题的程序。
这些尝试通常会遇到以下两个问题之一:
I.算法不是真正的多项式时间。
二。该算法不能正确解决所有实例。
[待写]
您无法通过测试证明算法正确运行。但是您可以通过测试证明它无法正常工作!因此,如果您愿意做一些工作,可以通过以下方法确保算法不正确。
首先,编写一个程序,将SAT实例(标准CNF格式)转换为您要解决的NP难题。SAT是研究最多的NP难题之一,将其他问题简化为SAT通常很容易。其次,以最先进的SAT解算器所遇到的示例为例(例如,以SAT竞赛中的示例为例),并将其馈送到您的算法中,并查看算法的性能。尝试使用已知的硬实例,例如命题Pigeonhole原理(不要通过将其硬编码为特殊情况作弊),加密实例(例如RSA Factoring Challenges),接近阈值的随机k-SAT实例等。
同样,您可以检查算法是否有效。例如,如果您认为算法的运行时间不是但是求解大小为1000的实例要花几天的时间。请修正您认为算法具有的多项式最坏情况运行时间上限。取得实例并估计算法解决它们所需的时间,并检查是否与您的估计相符。
如果执行这些操作,您将非常确定自己的算法不起作用(如果它比最新的SAT解算器更好,则可以参加下一场竞赛,很多人会对研究您的算法和思想感兴趣)。
现在,您知道它并没有真正起作用,但这还不够。你想知道为什么
是我的算法不起作用的原因是可以解决的小问题,还是有根本原因无法起作用?
有时,算法的问题很简单,可以从概念上识别出问题所在。最好的结果是您了解您的想法无法奏效的原因。通常情况并非如此,您的想法行不通,但您无法弄清原因。在这种情况下,请记住:
理解为什么有些想法不可行可能比解决P对NP困难!
如果您可以将想法正式化,那么您也许可以证明特定想法的局限性(例如,有结果表明贪婪算法的特定形式化不能解决NP完全问题)。但是,这甚至更加困难,如果您没有阅读标准复杂性理论教科书,您将没有太多机会。
有时甚至没有一个明确的概念性想法,为什么该算法应该起作用,即,它基于一些未被充分理解的启发式算法。如果您对算法为何起作用没有一个清晰的概念性想法,那么您可能没有太多机会了解为什么它不起作用!
尽管大多数专家认为P NP比P = NP更有可能,但这种说法似乎不太普遍。原因是,证明下限似乎比设计算法更困难(但是通常证明下限和上限本质上是相关的)。
问题1:作者不知道P和NP的定义,甚至更糟的是不了解什么是数学证明。因为作者缺乏基本的数学训练,所以当他被告知要陈述的内容不是证据时,他也不理解(例如,步骤不遵循先前的步骤)。
问题2:作者将“我们不知道”与“数学上的不可能”混为一谈。例如,他们做出各种不合理的假设,并在被问到“为什么这句话是正确的?”时被提出的。他们回答“怎么可能是假的?”。一个常见的假设是,解决问题的任何程序都必须抛出特定的步骤,例如必须计算特定的中间值,因为他无法想到解决问题的另一种方法。
[要完成的]
[待写]
如果一项索赔没有遭受这些基本问题的困扰,那么拒绝该索赔将变得更加困难。在第一层,您可以在参数中找到错误的步骤。作者的典型回答是,我可以修复它,并且这种反复可以继续下去。类似于P = NP解决方案,通常很难找到一个可以证明它行不通的想法的基本问题,尤其是在想法本身是非正式的情况下。
在最佳情况下,如果我们可以将构想形式化并确定表明该构想无法工作的障碍,则我们已经证明了新的障碍结果(这就是尝试使用电路下限来证明P NP导致自然证明障碍的方式) )。
- 因此,您认为您已经解决了问题。想办法。有时,您仍然可以从有缺陷的证据中挽救一些有趣的东西。
- 您认为证明是正确的。你的信念是错误的。返回步骤1。
- 您是否正在做出任何假设或捷径,甚至看似很小且显而易见的假设?您是否使用“清晰”,“明显”,“容易看”,“应该”,“必须”或“可能”之类的词?您声称正在解决所有数学中最重要的问题。您不会做出假设。返回步骤1。
- 您将论文提交到在线存档。也许有人告诉你论文中有什么缺失或错误。这应该使您转到步骤1。但是,您对纸张进行了一些无意义的更改并重新发布。
- 最终,人们忽略了您的论文。你想知道为什么你没有得到名利。
- 您将论文提交至期刊。
- 论文被拒绝。如果您很聪明,则可以返回到步骤1。但是,如果您很聪明,则永远不必回到步骤7。
- 您向编辑者抱怨说,编辑者不理解该证明或该证明易于修复。您感到震惊的是,一位受人尊敬的编辑或期刊会以这种方式对待您的论文。
- 您重新提交论文,上诉,尝试其他期刊都无济于事。
- 您相信“机构”故意压制您的论文,因为如果解决P对NP问题,我们的领域就会变得不那么有趣,因此我们必须不惜一切代价保持公开状态。
- 如果我告诉你否则你会相信我吗?
这是关于模糊的,较深的,较困难的/内角/参考/扭转,涉及到可追溯到1980年代的电路方法,该方法最初是多年前卢卡·特雷维森(Luca Trevisan)在网络空间其他地方向我指出的。靠近主题的参考资料,布尔函数复杂性:高级与前沿(算法与组合学,第27卷)。
人们可以看到拉兹伯罗夫的某些思想中出现了较早的趋势,最终导致了《自然证明》论文(所谓的“归化”)。ref [273]是非常技术性和困难的,尽管后来的论文证明可以被看作是后来的大型概括,但似乎在后来的论文/书中没有被引用,构建/扩展或重申很多。摘录来自John E Savages出色的参考模型p457
[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。