【问题标题】:How do we know NP-complete problems are the hardest in NP?我们怎么知道 NP 完全问题是 NP 中最难的?
【发布时间】:2016-09-29 22:20:51
【问题描述】:

我知道,如果您可以从“每个”问题中减少多项式时间,那么它证明该问题至少与 NP 中的每个问题一样难。除了,我们怎么知道我们已经发现了 NP 中的所有问题?是否存在我们可能没有发现或证明存在于 NP 但不能简化为任何 np 完全问题的问题?或者这仍然是一个悬而未决的问题?

【问题讨论】:

    标签: big-o complexity-theory computation-theory turing-machines


    【解决方案1】:

    正如其他人正确指出的那样,存在 NP 但不是 NP 完全问题意味着 P != NP,因此找到一个将为您带来million dollar 和永恒的荣耀。一个被认为属于此类的著名问题是integer factorization。但是,您最初的问题是

    难道不能存在我们可能没有发现或证明的问题吗? 存在于 NP 但不能简化为任何 np 完全问题?

    答案是。根据 NP 完全性的定义,两个之一 问题 A 是 NP 完全的必要条件是每个 NP 问题都需要在多项式时间内可约简为 A。如果您想了解如何证明每个单个 NP 问题都可以在多项式时间内约简为某个完整的问题,请查看Cook-Levin theorem 的证明,该证明表明 3-SAT 问题是 NP 完全的。这是第一个被证明的 NP 完全问题,后来通过找到从 3-SAT 到这些问题的适当简化证明了许多其他 NP 完全问题。

    【讨论】:

    • 谢谢! SAT 的想法使它完全明智。
    【解决方案2】:

    除了,我们怎么知道我们已经发现了 NP 中的所有问题?

    我们没有。宇宙中所有问题的集合不仅是无限的,而且是不可数的。

    难道不能存在我们可能没有发现或证明的问题吗 存在于 NP 但不能简化为任何 np 完全问题?

    我们不知道。我们怀疑情况确实如此,但这还没有得到证实。如果我们要找到一个不在 NP-Complete 中的 NP 问题,则证明 P =/= NP。

    这是 CS 中最大的未解决问题之一。许多聪明的头脑都在尝试,但这个坚果一直很难破解。

    【讨论】:

    • 这太有趣了。你能否解释一下关于找到一个不是 NP 完全的 NP 问题必然证明 P=/=NP 的问题?因为我认为证明 P=/=NP 的唯一方法是证明没有算法可以在确定性多项式时间内解决 NP 完全问题。
    • @rb612 如果 NP 中存在问题 X 而不是 NP-Complete,则 NP-Complete 是 NP 的适当子集。但是 P 不能等于 NP,因为 P 中的每个问题都是多项式时间可归约到 P 中的所有其他问题。因此,如果 P = NP,则 NP 中的所有问题都必须是 NP 完全的(即,在 NP 和多项式时间中可归约为彼此)。
    • @Patrick87 谢谢!然而,公认的答案说,NP 中的所有问题都可以简化为 NP 完全问题。那么它已经被证明了还是仍然未知?您能否详细说明“然后 P 不能等于 NP,因为 P 中的每个问题都是多项式时间可简化为 P 中的所有其他问题”的意思。如果 NP ⊂ NP-complete,我看不出 P 中的每个问题如何相互减少表明 P≠NP。
    • @rb612 根据定义,NP-C 是 NP 的一个子集。 P 也是 NP 的子集,同样根据定义。如果 NP 包含 x 不在 NP-C 中,则 NP 中存在一些问题 y 使得 y 不能在多项式时间内归约为 x(否则,x 将是 NP-C)。但是如果 P = NP,则 x 和 y 都在 P 中。如果 x 和 y 在 P 中,则可以通过简单地忽略 x 并使用我们的多项式时间算法来将 y 在多项式时间内简化为 x。所以我们不能同时有 NP-C =/= NP 和 P = NP。如果您能证明前者是正确的,那么该证明将证明 P =/= NP。
    【解决方案3】:

    NP 包含所有可以(理论上)通过能够进行幸运猜测、猜测解决方案并在多项式时间内检查解决方案是否正确来解决的问题。例如,旅行推销员问题“我可以在少于 9,825 英里的行程中访问美国所有 50 个州的州府吗?”可以通过猜测行程并检查它是否不太长来解决。

    而NP中的一个问题基本上是模拟具有各种输入的可编程计算机电路并检查是否可以实现某个输出。而且那个可编程的计算机电路足够强大,可以解决 NP 中的所有问题。

    所以是的,我们知道所有关于 NP 的问题。

    (那么当然可以根据定义使用一个NP完全问题来解决NP中的任何问题。如果有一个它无法解决的问题,则该问题不在NP中)。

    【讨论】:

    • 感谢您的回答。那么,为什么不可能找到一个在 NP 中的算法 X,而一个 NP 完全问题又不能简化为 X?
    • @rb612 如果 NP 中存在问题 X 而不是 NP-Complete,则 NP-Complete 是 NP 的适当子集。但是 P 不能等于 NP,因为 P 中的每个问题都是多项式时间可归约到 P 中的所有其他问题。因此,如果 P = NP,则 NP 中的所有问题都必须是 NP 完全的(即,在 NP 和多项式时间中可归约为彼此)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2022-07-21
    • 2011-11-14
    • 2011-04-18
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多