【问题标题】:NP COMPLETE and NP HARDNP 完成和 NP 困难
【发布时间】:2013-11-15 19:36:06
【问题描述】:

我必须检查我的逻辑是否在正确的路径上。

NP-HARD:这些是最难的问题,可能/可能不在 NP 类中。如果您对这些问题有一个有效的算法,那么您在 NP 类中的每个问题都有一个。

NP COMPLETE:这些是 NP 类中最难的问题,如果你解决其中一个问题,你可以解决 NP 类中的任何问题。所以,NP COMPLETE 问题是一个 NP-HARD 问题。

库克定理:如果 SAT(NP-HARD) 具有多项式时间算法,那么 NP 类中的每个问题也是如此。

现在,假设我们必须证明 CDP(集团决策问题)是NP COMPLETE

->第 1 步:证明 CDP 属于 NP 类。 它属于 NP 类,因为证明者可以为 yes 输入生成证明,这将使验证者能够检查它是否是 CDP(具有大小为 k 的集团)。

->第 2 步:证明 CDP 是 NP HARD。 为此,我们可以通过从子句构建图并提供 k 来将 SAT 转换为 CDP。 我们将 (G,k) 提供给 clique 子程序,该子程序将验证是否存在大小为 k 的 clique。如果它可以在多项式时间内解决这个问题,那么 SAT 有一个多项式时间算法,因为 CDP 有一个多项式时间算法,我们将 SAT 转换为 CDP。所以,现在我们证明了如果 CDP 有多项式时间算法,那么 SAT 也有。现在,如果我们可以找到 CDP 的多项式时间算法,那么这意味着 SAT 存在多项式时间算法。这意味着 COOK'S THEOREM 对 NP 中的每个问题都有一个多项式时间算法。

所以我们证明了 CDP 是NP COMPLETE。一旦我们将 CDP 添加到 NP COMPLETE 类,现在我们提出一个新问题,我们必须再次证明它是 NP COMPLETE,我们可以证明该问题属于 NP strong> 然后我们可以证明如果给定问题有一个有效的算法,那么这意味着 SAT/CDP 有一个有效的算法(因为我们已将其添加到 NP COMPLETE)。然后如上所述,我们可以将这个问题转换为 CDP/SAT,然后证明如果我们的问题有一个有效的算法,那么 CDP/SAT 有一个有效的算法,然后再次通过库克定理,如果有一个解决方案 NP -HARD 问题(在这种情况下是 CDP/SAT),那么 NP 中的每个问题都有一个。所以我们再次证明了我们的问题是 NP-HARD 并且现在它也属于 NP 如上所述,它是 NP COMPLETE

所以我们可以向 NP COMPLETE 类添加尽可能多的问题,只要我们可以将一些已经在 NP-HARD 类中的问题(在本例中为 SAT/CDP)转换为我们的问题,并且我们应该找到一个有效的算法来解决我们的问题将间接找到 NP-HARD 问题的有效算法,根据 COOK 定理,我们可以说,由于某些 NP-HARD 问题有一个有效的算法,我们有一个解决NP中所有问题的高效算法。

【问题讨论】:

  • 您的问题具体是什么?我认为这是正确的,但我不确定你在问什么。
  • 我需要知道它是否正确
  • 回答这个问题需要大量深入的分析和理论知识,可能比Stack Overflow 通常适合的要多。也许这个问题更适合Computer ScienceTheoretical Computer Science(虽然不能肯定)。
  • 是的,我会推荐理论计算机科学...我知道我来自 U of U 的高级算法教授潜伏在那里。
  • 我的立场是正确的,我看到理论家没有接受你的问题!

标签: algorithm


【解决方案1】:

你在正确的道路上,但你的逻辑有点不完整。

您的证明的一般结构是正确的:首先证明问题属于 NP,然后证明问题属于 NP-Hard。这两条信息一起证明了一个问题是 NP-Complete 的。

您证明问题在 NP 中的证明不完整。以下是证明问题存在于 NP 中的关键组件:

  1. 将问题改写为可以用“是”或“否”来回答的决策问题。
  2. 描述什么是“证书”。注意:证书是可以检查以验证决策问题答案的输出。对于 CDP,它可以是组成大小为 k 的团的顶点和边的列表。
  3. 证明可以在多项式时间内验证此证书。

你证明 NP-Hard 的证明是不完整的。以下是证明问题是 NP-Hard 的关键组成部分:

  1. 将已知 NP-Hard 问题的输入转换为您要证明的问题的输入。
  2. 证明这种变换可以在多项式时间内完成。
  3. 将您试图证明的问题的输出转换为已知 NP-Hard 问题的输出。
  4. 演示如何在多项式时间内完成。
  5. 证明如果你得到了你试图证明的问题的答案,那么你就有了已知问题的答案。
  6. 证明,如果您得到已知问题的答案,则您尝试证明的问题也有答案。

只有满足这 6 个标准,你才能说你已经完全证明了一个问题是 NP-Hard。

除了你的逻辑是合理的细节。如果您的真正意思是“可以在多项式时间内解决”,那么在说“高效”时要小心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2014-12-08
    • 2011-04-18
    相关资源
    最近更新 更多