PCP定理

时间:2009-04-13 01:34:21

标签: algorithm

有人可以用外行的话描述PCP Theorem吗? [编辑:我是计算机科学专业的学生。]

3 个答案:

答案 0 :(得分:6)

嗯,维基百科至少有两页关于这个主题:

我们可以为您的外行人提供多大程度的知识?

粗略地说,我认为,它可以检查NP完全问题的给定解在一个(合理的)有限时间内是否接近最优,而确定最优解不是。

然而,假设您知道“NP complete”意味着问题具有“non-deterministic polynomial complexity”等等 - 这对于外行人来说是一个很好的假设。你需要很好地理解复杂性理论和“大O”符号才能知道这意味着什么。并且要理解算法与(确定性)多项式时间特征和具有非确定性多项式时间特征的算法之间存在巨大的差异。

在此,维基百科将成为您的朋友 - 或者您的教师推荐的算法书。


根据JörgWMittag的评论进行更正 - 谢谢。

答案 1 :(得分:2)

针对外行计算机科学家:

PCP定理说你可以制作很容易检查的证据,你只需要查看一定数量的(随机选择的)位(通常)来判断一个好的证据。

针对外行理论家:

对于NP中的语言,意味着您可以证明字符串很容易使用该语言。例如,您可以通过提供令人满意的输入来证明布尔电路是可满足的。 (但很难证明电路可满足!)

在这种情况下,验证证明的人/程序/图灵机必须在多项式时间内运行(假定在语言中的字符串大小)。它必须是完整,这意味着它始终接受给定字符串在语言中的有效证明。它必须是声音,这意味着它拒绝语言中的字符串的任何“证据”。

对于NP,验证者是确定性的。如果验证者可以使用随机性怎么办?然后我们必须允许一些错误,因此我们允许验证者不完全声音 - 它可能不正确地接受一些证据。真的,我们所关心的只是验证者至少检测到不良证据,比如1/4的时间。如果你想要更高的准确度,你可以再运行几次! : - )

PCP定理以其最强的形式表示,NP中的任何语言都有一个证明系统,只需查看常数随机选择的位数就可以验证。常数是...... 3 。 (这与3-SAT中的3相同)这些证明使用纠错码,因此证明中的任何错误都会与输入的大部分冲突。使用更强的代码可以让你在3位时任意接近50%的稳健性。

答案 2 :(得分:1)

你可能会尝试“NP中的每个问题都有一个PCP”,但“外行人”可能不关心这个话题,任何深度解释都会让他们陷入昏迷; - )< / p>