【问题标题】:NP complete - solvable in non-deterministic polynomial timeNP 完全 - 可在非确定性多项式时间内求解
【发布时间】:2013-12-17 15:31:21
【问题描述】:

在一本书中写到——“如果问题 A 是 NP-Complete,则存在一个非确定性多项式时间算法来解决 A”。但据我所知,“是” - NP完全问题的答案可以在多项式时间内“验证”。我真的很困惑。 NP完全问题可以用非确定性多项式时间算法“解决”吗?

【问题讨论】:

  • 这个问题似乎跑题了,因为它是关于Computer Science
  • 如果您可以在多项式时间内检查,那么您可以在多项式时间内进行非确定性求解:只需开始检查所有可能的解决方案,并保留解决您问题的解决方案。

标签: algorithm time-complexity np-complete


【解决方案1】:

这两件事基本上是相同的,并且基于两个不同但等效的NP定义。

NP 中的每个问题(语言)都必须是:

  1. 由确定性图灵机在多项式时间内验证。 (给定一个问题和一个“验证”,您可以在多项式时间内回答验证是否正确)。
    示例: 给定一个图,并且您想检查其中是否存在汉密尔顿路径 - 验证者可以是路径。获得路径后,您可以轻松检查该路径是否确实是哈密顿路径。
  2. 由非确定性图灵机在多项式时间内求解。 (存在可以多项式解决问题的非确定性图灵机M

由于根据 NP-Complete 的定义 - 如果问题是 NP-Hard AND 在 NP 中,则该问题是 NP-Complete,因此每个 NP-Complete 问题也是 NP - 两者都是正确的。


请注意,这两个声明基本上基于 NP 的两个等效定义:

  1. 如果L 中的每个x 有一个词z 使得|z||x| 中是多项式,则语言L 是NP,并且存在一些运行在多项式时间 M - 这样对于每个 x 及其匹配的 z,: M(x,z) = true if and only if x is in L
  2. 如果存在可以在多项式时间内解决问题的非确定性图灵机,则 NP 存在问题。形式上,如果存在非确定性图灵机,则语言 L 在 NP 中,例如 M(x) = true if and only if x is in L

【讨论】:

  • 请注意,两个条件都必须为真,问题才能成为 NP 完全问题。例如。 P 中的问题也可以在确定性多时间中进行验证,但这并不能使它们成为 NP 完全的。
  • @LarsKotthoff 这两个条件是等价的,并且基于 NP 的 2 个等价定义,如果一个成立 - 另一个也成立。
  • 对不起,我指的是较早版本的帖子,没有行以下的部分。
【解决方案2】:

找到 NP 完全问题的解决方案可以在非确定性图灵机上在多项式时间内完成。给定一个 NP 完全问题的候选解,可以在确定性图灵机上以多项式时间验证它是否确实是一个解,即检查

所以区别在于找到解决方案和检查解决方案。前者通常需要对 NP 完全问题进行某种搜索,而后者只是验证变量的分配。

【讨论】:

  • 请注意,这通常适用于 NP 问题,而不仅仅是 NP 完全问题。
猜你喜欢
  • 2017-03-05
  • 2015-07-06
  • 2016-12-05
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 2011-01-22
相关资源
最近更新 更多