这些天我一直在研究NP问题,计算复杂性和理论。我相信我终于掌握了图灵机的概念,但我有几个疑问。
我可以接受一个非确定性的图灵机有几种选择,可以对给定的状态和符号进行读取,并且总是选择最佳选项,如维基百科所述
NTM如何“知道”这些中的哪一个 应采取的行动?那里有两个 看待它的方式。一个是说 这台机器是“最幸运的 可能的猜测“;它总是选择 过渡最终导致 接受国,如果有这样的 过渡。另一种是想象 机器“分支”成很多 副本,每个副本遵循其中一个 可能的过渡。而a DTM有一个“计算路径” 接下来,NTM有一个 “计算树”。如果有任何分支 树停下来“接受” 条件,我们说NTM接受 输入。
我无法理解的是,由于这是一个虚构的机器,我们从多项式时间内解决NP问题得到了什么?我的意思是,我还可以理解一个解决O(1)中NP问题的神奇机器,如果它可能永远不存在我会从中获得什么?
提前致谢。
答案 0 :(得分:13)
非确定性图灵机是一个难以理解的概念。尝试其他一些观点:
运行一个更神奇的元机器,在平行的宇宙中设置无数个随机猜测的独立图灵机,而不是运行一个最幸运的猜测机。每个可能的猜测序列都是在某个宇宙中进行的。如果在至少一个Universe中机器停止并接受输入,那就足够了:设置这些并行Universe的元机器接受问题实例。如果在所有Universe中机器拒绝或未能停止,则元机器拒绝该实例。
考虑一个人试图说服另一个人接受该实例,而不是任何猜测或分支。第一人提供由非确定性图灵机做出的一组选择,第二人检查机器是否接受具有这些选择的输入。如果确实如此,那么第二个人就会相信;如果没有,则第一个人失败(这可能是因为实例无法接受任何选择序列,或者因为第一个人选择了不良的选择序列)。
忘记图灵机。如果可以通过存在性second-order logic中的公式来描述NP,则问题在于NP。也就是说,你采用普通的命题逻辑,允许任何量词超过命题变量,并允许在开头存在量词集合,集合,关系和函数。例如,graph three-colorability可以用一个公式来描述,该公式以颜色的存在量化(节点集)开始:
∃R∃G∃B
每个节点都必须着色:
∃R∃G∃B(∀x(R(x)∨G(x)∨B(x)))
并且没有两个相邻节点可以具有相同的颜色 - 调用边缘关系E:
∃R∃G∃B(∀x(R(x)∨G(x)∨B(x)))∧(∀x,y¬(E(x,y)∧((R(x) ∧R(y))∨(G(x)∧G(y))∨(B(x)∧B(y))))))
对二阶变量的存在量化就像一个非确定性的图灵机,做出了完美的猜测。如果你想说服某人公式∃X(...)为真,你可以先给出X的值。那个多项式时间NTMs和这些公式不仅仅是“喜欢”而且实际上是等价的是Fagin定理,开始了descriptive complexity的领域:复杂性类别的特征不是图灵机,而是逻辑公式的类。
你也说过
我还可以在O(1)
中解决一个解决NP问题的神奇机器
是的,你可以。这些被称为oracle machines(与DBMS无关),它们在复杂性理论中产生了有趣的结果。例如,Baker-Gill-Solovay定理表明存在神谕A和B,使得对于可以访问A的Puring机器,P = NP,但是对于可以访问B的图灵机,P≠NP。 (A是一个非常强大的oracle,它使非决定论无关紧要; B的定义有点复杂并且涉及对角化技巧。)这是一种元结果:任何解决P vs NP问题的证据必须是敏感的足以定义图灵机,当你添加某种神谕时它会失败。
非确定性图灵机的价值在于它们提供了复杂性类NP(和其他)的相对简单的计算表征:代替计算树或二阶逻辑公式,你可以想到一个几乎普通的已经(相对)略微修改的计算机,以便它可以做出完美的猜测。
答案 1 :(得分:4)
你从中获得的是你可以通过证明它可以在多项式时间内由NTM解决来证明问题在NP中。
换句话说,您可以使用NTM来确定给定问题是否在NP中。
答案 2 :(得分:1)
根据定义,NP代表非确定性多项式时间,可以在Wikipedia中查找。
随机选择和检查(或组装)下一个潜在解决方案的非确定性图灵机的化身将以多项概率解决多项式时间内的NP问题(如果它是绝对确定的话,它将在多边形时间内解决问题“最幸运的猜测者”)。
因此,说NTM 可以在多项式时间内解决问题,这意味着该问题在NP中。这再次等同于NP类问题的定义。
答案 3 :(得分:0)
我认为你的答案就在你的问题中。换句话说,如果你能找到解决它的NTM,你可以证明这是一个NP问题。
NP问题是一类特殊问题,NTM只是检查给定问题是否属于该类的工具。
请注意,NTM不是特定的机器 - 它是一整套机器,具有明确规定的能力和不能做的规则。为了使用“神奇”的机器,你需要定义它们,并显示它们对应的问题的复杂性类别。
参见http://en.wikipedia.org/wiki/Computational_complexity_theory#Complexity_classes 了解更多信息。
答案 4 :(得分:-1)
来自希伯来语维基百科 - “NTM主要是思考的工具,实现这样的机器是不可能的”。您可以将术语“NTM”替换为“在每一步尝试所有可能的步骤的算法”或“在每一步选择最佳可能的下一步的算法”。我认为您理解其余的步骤。 NTM仅用于帮助我们可视化此类算法。您可以看到here它应该如何帮助您实现可视化(在Pascal Cuoq的回答中)。
答案 5 :(得分:-1)
我们获得的是如果我们有神奇的力量来猜测正确的步骤,这将总是证明是正确的,我们可以解决POLYTIME中的NPC问题。当然,我们不能总是“猜测”正确的步骤。所以这是虚构的。但正如虚数适用于现实世界的问题一样,后果在理论上也是有用的。
以这种方式改变原始问题的一个积极方面是我们可以从不同角度解决它们。在理论领域,这是一件好事,因为我们有(1)我们可以采取的更多方法(因此更多的论文)和(2)如果它们可以在其他领域中表达,我们可以使用更多的工具。