证明P≠NP比证明P = NP难吗?


20

考虑P对NP问题的两种可能性:P = NP和P NP。

令Q为已知的NP难题之一。为了证明P = NP,我们需要为Q设计一个多项式时间算法A,并证明A正确地解决了Q。

为了证明P NP,我们需要证明 没有多项式时间算法可以求解Q。换句话说,我们必须排除所有多项式时间算法。

我听说有人说这使第二个任务更加困难(假设这确实是事实)。

有理由认为证明P = NP(假设P = NP)比证明P NP(假设P NP)容易吗?


31
这个问题是不恰当的。由于只有一种说法是正确的,因此不可能证明。另一种可能是可以证明的,如果是这样,则比错误的证明更容易证明。嗯,我不知道您要寻找什么样的答案。请社区投票!可以回答吗?
拉斐尔

10
@Raphael我不同意。您可以将OP的问题解释为“如果P = NP为真,那么证明P≠NP为真比证明P≠NP容易吗?” 我不认为OP认真地打算将其解释为暗示两者都必须为真的建议。
Anathema

3
FWIW,在我看来,a)@TheAnathema对问题的解释是正确的,并且b)这是一个有意义的问题。换句话说:如果P = NP,并且找到了证明,那么该证明可能将是针对NP完全问题的多项式时间算法的形式。另一方面,如果我们从P≠NP的​​假设开始,我们可以利用哪种技术来找到证明,那么这种证明可能采用什么形式?
JohannesD


评论不作进一步讨论;此对话已转移至聊天
吉尔斯(Gilles)'所以别再邪恶了'

Answers:


25

正如拉斐尔(Raphael)解释的那样,这个问题是不恰当的,因为至多P = NP和P≠NP中的一个应该完全可以证明。但是,在理论计算机科学中,有多种形式出现了类似的问题,其中最引人注目的是近似算法领域。

给定一个NP困难的优化问题(例如,最大化),我们可以询问近似程度。证明可能近似的上限类似于P = NP,而证明可能近似的下限类似于P≠NP。前者比后者容易得多。实际上,要证明一个上限,所有人要做的就是提出一种近似算法并对其进行分析。相反,所有已知的下限都是有条件的:仅当P≠NP时它们才有效(实际上,如果P = NP,则每个NP困难的优化问题都可以解决)。为了证明这些下界,我们证明了如果我们可以很好地近似问题,那么对于某些NP-hard问题,我们将获得多项式时间算法。通常,这是通过PCP定理的复杂技术机制完成的。这个领域,称为“近似硬度”,只能由专家来解决,并且在技术上比大多数近似算法更具挑战性。因此,至少在这种情况下,P = NP实际上比P≠NP更容易。


14
您可以将OP的问题解释为“如果P = NP为真,那么证明P≠NP为真比证明P≠NP容易吗?” 我不认为OP会认真地将其解释为都是真实的。
Anathema

6
@TheAnathema我想有人必须以这种方式解释这个问题。但这仍然很糟糕,因为其中一种选择必然是反事实的。您如何将这种反事实与证明事实正确的难度进行比较?
David Richerby '16

@David,我多次从专家那里得到关于证明P NP与P = NP相比存在困难的说法。提出合理的要求是一个有效的问题。实际上,评估反事实情况的难度(当未知情况时)。例如,有人问证明P NP的难度。如果P = NP,则为反事实。=
卡夫

9

我们没有排除简单证明P = NP的可能性。如果明天某人想出一种可以在P时间内解决NP完全问题的算法,那么世界将会改变。

在另一方面,我们已经排除了一个简单的证明将P!= NP的可能性。我们的用于证明两个不同复杂性类别的典型证明技术已被正式证明是不足的。三种这样的技术被称为“算术化”,“自然证明”,而证明的类别称为“相对化”(一种不在乎使用哪种Oracle的证明)。可以证明,属于这些类别中的任何三个类别的任何证明技术都不能证明P!= NP。

实际上,有充分的证据表明证明P!= NP需要新的证明(具有不同属性的新技术),而不仅仅是众所周知的证明技术的新颖应用。


现在,可能会发现P = NP,而在P中没有简单的验证算法可以解决NP完全问题,并且需要新颖的证明技术来证明P = NP。(如果P = NP,我们已经很有趣地知道P中专门用于解决NP难题的算法。由于其恒定因子很大,因此不可行。)

基本上,我们对不能用来证明P!= NP的知识了解很多,而对我们不能用来证明P = NP的知识似乎了解甚少。


简单证明的所有障碍适用于等力作用下的P = N P的证明。如果您有一个算法,则证明P = N P就是该算法是(i)正确和(ii)多项式时间的证明,而该证明仍将要争论该算法的非确定性是什么事实。正在使用其高效的确定性模拟(相对于(代数)甲骨文而言并非如此)及其如何克服自然证明障碍。PNPP=NPP=ñP
Lieuwe Vinkhuijzen

8

好吧,你基本上有这个想法。我们通常认为P!= NP,但不知道我们怎么证明这些东西是不相等的。

相反,如果P = NP,您可能会认为我们现在已经找到了一种算法,可以解决数十个NP完全问题。

这些都是极易动摇的论点,但用几句话它们描述了计算机科学家之间的文化。

当然证明P!= NP是否“更难”取决于哪一个是正确的(除非获得元数学结果?),当然,我们不知道。


5

有一些专家认为,就他们认为解决P vs. NP问题所需的时间而言,证明P NP比证明P = NP困难。但这主要是基于这样的直觉,即感觉到为问题设计算法比证明没有(有效的)算法容易。通常,我们在证明问题的下限方面不是很成功。我们甚至不能排除SAT的线性时间算法。我们不能排除没有针对SAT的日志空间算法。我们甚至无法证明不存在具有¬和的恒定深度的多项式大小布尔电路。¬个无法解决SAT的门(用外行的术语来说,可能存在一种具有多项式处理器的恒定时间并行算法,可以解决SAT,并且每个进程仅计算这些门之一)。最好的下界,我们有图灵机解决SAT甚至不能显示,没有一种算法,其运行时间乘以它使用的空间 ñ 1.9。关于证明下界的令人尴尬的状态,我可以继续讲很多(但请记住,我们也有障碍结果来解释为什么很难证明下界)。一些专家认为,基坦·穆穆利(Ketan Mulmuley)的GCT计划最有可能解决P对NP问题,穆穆利本人也重复表示,他认为可能需要一百多年才能实现。mod6ñ1.9

但是,Ryan Williams和其他一些学者最近的工作表明,证明下界和发现算法之间存在内在联系。例如,他表明对于特定的受限SAT问题,比蛮力算法稍好的算法意味着电路的下限,然后他设计了这种算法。因此,我认为人们没有那么悲观,似乎也没有像以前认为的那样开发算法并证明下界是分开的。

πφπφ并且算法返回是或否。您可以通过这种方式想到任何证明检查器。您也可以在像ZFC这样的数学系统中考虑证明。检查过程本身可以在证明大小的多项式时间内完成,因为这是一项语法任务。

φφφ265536在某种意义上说,您可以从证明和规则中的当前行确定先前的行。一个重要的例外是切割规则。这很重要,因为尽管我们不需要为证明陈述而采用割断规则,但可以大大缩短最短证明的大小。但是,割断规则不是确定性的:我们必须猜测割断公式。您可以将剪切规则视为证明引理并加以使用。Cut公式就像一个引理。但是我们应该证明什么引理可以帮助我们呢?那是困难的部分。通常,通过找到一个好的引理可以在数学上证明结果。同样,当您使用先前证明的结果时,您实际上是在使用切割规则。证明陈述中的另一个重要组成部分是定义。我们通常会定义一个新概念,然后证明有关它的陈述,最后将其应用于我们的特定情况 使用定义可以减小公式的大小(尝试通过扩展定义以将数学公式扩展为纯集合理论语言,以了解定义的重要性)。同样,我们应该使用什么新定义?我们不知道 这使我想到了难以证明的陈述的第三种含义。陈述可能很难证明,因为您需要强大的公理。以例如 陈述可能很难证明,因为您需要强大的公理。以例如 陈述可能很难证明,因为您需要强大的公理。以例如CH。它不能在ZFC中证明,也不能在ZFC中反驳。这是一个极端的情况,但是您认为这种情况经常发生。例如,我们是否需要大的基本公理(才能在Grothendieck宇宙中工作)来证明FLT,还是可以用像PA这样较弱的理论来证明它?这是关于证明陈述困难的另一个概念。


当您谈论“更认真地”定义问题时,我想您是指“更严格地”?:-)
David Richerby '16

2
@David,是的,有时自动更正会做到这一点。:)
卡夫(Kaveh),2016年

4

我认为问题可以简化为:证明某事物存在还是更容易证明某事物不存在。

支持证明某物存在的论据是,构造满足要求的事物很容易,并且检查它们是否确实满足要求也很容易。

在某些情况下,这是正确的:如果要查找多项式的根,则构造数字很容易,并且很容易检查它们是否是根。

当然,问题在于您必须很幸运。您可能可以减小搜索空间,例如,通过证明它必须是5的倍数或1到10之间的倍数;但是,除非您将其限制为有限的一组数字(在这种情况下,您实际上并没有使用“猜测并验证”方法),否则您将没有解决问题的方法:只有假设您非常幸运,可能会产生解决方案。

但是,如果您愿意,可以很容易地证明不存在某些东西!生成可能是可能的解决方案的文本,并检查它们是否确实存在。

因此,拥有一种可以通过纯粹的运气解决问题的方法,并不意味着证明存在某些东西就容易得多。

现在,通常更容易证明某种其他方法是否存在吗?这取决于实际问题,因为否则证明不存在的东西将简化为证明不存在的证明。而且我担心我们无法衡量这一点,因为从来没有任何东西被证明既存在又不存在,因此我们可以(尝试)衡量证明的难度。


1
如果“某物”存在,则证明它确实更容易(通常,您不能证明它不存在;这并不意味着找到所述证明并不十分困难)。反之亦然。正如评论所说,这个问题本身没有任何意义。
vonbrand '16

@vonbrand我不是说 for any X: is it easier to prove that X exists or to prove that X does not exist,我是说,for any X,Y: is it easier to prove that X exists or to prove that Y does not exist.即如果E证明形式为'X的句子存在的证明集和NE证明形式为'Y的句子不存在的证明集,而d( P)证明的难度,是否确实是d(X)<d(Y),其中E中的X和NE中的Y。
Thanos Tintinidis '16

dXXXX

@vonbrand是的;此外,我在争辩说您不能使用OP的方法(一直找到潜在的解决方案,直到找到一个解决方案)作为一个论点,以表明证明存在比证明不存在更容易,因为您可以转换变换不存在的语句S1对陈述S1的证据存在的陈述S2。尽管我开始怀疑它的价值
Thanos Tintinidis


-2

我认为不可能证明P <> NP,因为您将不得不排除所有可能证明P = NP的算法。其中可能有无限多个。无法反驳无穷大,因此是不可能的。另一方面,如果是这样,只需一个算法即可证明P = NP。因此,要么有人会证明的P = NP,要么我们永远不会知道。


欢迎来到计算机科学!您相信还是可以证明它不可证明?我认为Yakk的答案为该主题提供了一些启示。
邪恶

2
“没有办法证明无穷大”人们一直在数学中无限地排除许多可能性;我们不必手动检查每个人就知道没有任何作用。您的“论据”暗示我们根本无法分离复杂性类,这是胡说八道。
诺亚·施韦伯
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.