【问题标题】:NP-Complete vs. NP-hard [closed]NP-Complete 与 NP-hard [关闭]
【发布时间】:2012-01-06 11:58:54
【问题描述】:

如果一个已知为 NP-Complete 的问题 A 可以在多项式时间内简化为另一个问题 B,那么 B 是 (A) NP-完全 (B) NP-hard

无论问题 B 是否在 NP 中,都没有给出任何信息。我很困惑,因为在 Hopcraft 和 Ullman 书中给出了一个定理,如果一个 NP 完全问题 P1 可以在多项式时间内简化为问题 P2,那么 P2 是 NP 完全的。但它也要求一个问题是 NP 完全的,它应该属于 NP 类。伙计们帮助理解这个概念。

【问题讨论】:

  • 正如一些回答者指出的那样(有些人完全关闭),减少只是使 B NP-Hard,尽管在您的特定情况下,即使没有明确说明,也可能作者认为很明显它在 NP 中(因此在 NPC 中)。如果它很容易验证(通常是属于 NP 的最简单方法),那么这就足够了。

标签: algorithm complexity-theory np-complete np-hard


【解决方案1】:

如果 A 是 NP 完全的,那么它也必然是 NP。这反过来意味着 A 的每个潜在解决方案都可以在多项式时间内得到验证,这意味着 B 也是如此(因为 A 在多项式时间内可简化为 B)。因此 B 是 NP;不必将其声明为单独的条件。

【讨论】:

  • 我的老师告诉我,如果问题 Y 可以简化为问题 X,这也意味着 X 至少和 Y 一样难,因为如果你能解决 X,你就可以解决 Y。 m 还在这里引用维基百科“当且仅当存在一个 NP 完全问题 L 是多项式时间图灵可简化为 H 时,问题 H 是 NP 难的。”
  • A 可约化为 B 意味着 B 的任何解都可以用于解 A。这并没有对 B 的复杂度设置上限,因此 B 可能比 NP 更难。
【解决方案2】:

由于问题 A 可以在多项式时间内简化为问题 B,因此问题 B 的任何解决方案都可以用来找到问题 A 的解决方案。或者更简单地说,解决问题 A 不会比解决问题 B 难。因为我们知道 A 是 NP -complete,哪一类问题至少和 NP-complete 问题一样难?

作为参考,您可能还想查看NP-Hard(特别是第二句)NP-Complete 上的维基百科文章。 和Reduction

【讨论】:

  • 这就是我要问的,为什么 B 不只是 NP-hard。 B 可能比 NP 更难。这样 B 应该是 NP 难的。如果它也在 NP 中,那么我们可以说 B 是 NP-Complete。
  • 是的,B 是 NP-Hard。 NP-Hard 问题“至少和 NP 中最难的问题一样难”。由于 A 可以简化为 B,B 至少和 A 一样难,而且由于 A 是 NP 完全的,它是 NP 中最难的问题之一。
  • 谢谢@David。我终于明白了。从这么多不同的来源阅读后,我有点困惑。
  • 还有一个疑问,大卫,假设我们可以在多项式时间内将一个 NP 问题 A 简化为另一个问题 B,那么我们可以推断出 B 的什么。它会在 NP 中还是不在?
  • 我们不能说B是否是NP。 NP 是问题复杂性的上限,但我们对 B 的了解是它至少与 A 一样难(这是一个下限)。 NP-Hard 是复杂度的下限,所有 NP-Hard 问题至少与 NP-Complete 问题一样难(并且可能更难)。但是,如果 A 只是 NP,我们也不能说 B 是 NP-Hard(除非 P=NP),因为 A 和 B 可能都是 NP,但不是 NP-Complete。 vendiagram here 应该有助于澄清这一点。
【解决方案3】:

如果 A 可以在多项式时间内简化为 B,那么您所知道的就是 B 比 A 更难。在您的情况下,如果 A 是 NP 完全的,则 B 是 NP 困难的。

如果 B 也恰好在 NP 中,那么 B 将是 NP 完全的(因为 NP 完全意味着同时处于 NP 和 NP-hard 中)。

但是,没有什么能阻止您将 A 简化为一个不在 NP 中的问题。例如,将 NP 中的任何问题简化为停机问题是微不足道的——除了 NP 难之外,这个问题是不可判定的:

Construct the following program:
    Test all possible solutions for A.
    If one of them is successful halt and otherwise enter an infinite loop.
A has a solution if-and-only if that program halts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-18
    • 2018-05-29
    • 2011-04-09
    • 2021-03-01
    • 2016-12-03
    • 2014-01-27
    • 2011-08-04
    • 2014-01-27
    相关资源
    最近更新 更多