【发布时间】: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 Science 或Theoretical Computer Science(虽然不能肯定)。
-
是的,我会推荐理论计算机科学...我知道我来自 U of U 的高级算法教授潜伏在那里。
-
我的立场是正确的,我看到理论家没有接受你的问题!
标签: algorithm