【问题标题】:What makes an NP-hard problem not to be an NP-complete problem?是什么让 NP-hard 问题不是 NP-complete 问题?
【发布时间】:2011-08-04 23:20:12
【问题描述】:

我对 NP 难题感到困惑。
一些 NP-hard 问题在 NP 中称为 NP-Complete,而有些则不在 NP 中。
例如:停机问题只是 NP-hard,而不是 NP-complete。
但为什么它不是 NP-complete 呢?我的意思是问题必须符合什么属性
“NP难但不是NP完全问题”?

【问题讨论】:

标签: computer-science theory complexity-theory np


【解决方案1】:

我认为最短的答案是:NP-complete = NP-hard AND in NP。

因此,要证明一个问题是 NP 完全的,您必须证明它既是 NP 难的又是 NP 的。通常,表明问题存在于 NP 中非常容易(只需给出一个非确定性多项式时间算法)。证明一个问题是 NP-hard 是非常困难的。因此,即使在 NP-完备性的证明中,大部分证明都致力于 NP-硬度

对于停机问题,它不在NP中,因此不是NP完全的。

【讨论】:

    【解决方案2】:

    定义 NP 的原因是您可以在多项式时间内验证 NP 问题的解。因此,如果一个问题是 NP 难的,但不是 NP 完全的,则您无法在理论上及时验证问题的解决方案。如果您查看停止问题,这是有道理的。解决方案是“是”或“否”,您只能通过再次解决原始问题来验证,这意味着它不在 NP 中。

    【讨论】:

      【解决方案3】:

      NP-hard 简单的意思是“至少和 NP 中的问题一样难”。 NP-complete的意思是“在NP中,所有的NP-complete问题都可以归结为这个问题,这个问题可以归结为所有的NP-complete问题”。

      The Wikipedia article 可能是一个很好的起点,因为它专门讨论了停机问题作为其插图之一。

      【讨论】:

      • 我读了维基百科的文章,但不太明白。我的意思是“至少和 NP 中的问题一样难”,什么? NP-hard 问题也满足这种归约性质。
      • 所有 NP 完全问题都是 NP 难题,一些 NP 难题比 NP 完全问题更难(也就是说,它们至少与 NP 完全问题一样难,但不可翻译到/从 NP 完全问题)。
      【解决方案4】:

      简短回答: 唯一不是 NP 完全的 NP 难题是那些不属于 NP 的问题。

      长答案:

      现在,这是为什么呢?让我们仔细看一下 NP-complete 和 NP-hard 的定义:

      问题 X 是 NP 完全的,如果:

      1. 在NP中

      2. NP 中的每个问题都可以在多项式时间内简化为 X。

      如果问题 X 满足 (2) 则为 NP-hard((1) 不是必要条件)。

      根据这些定义,很明显可以得出这样的结论:NP 难但不是 NP 完全的唯一问题是 NP 之外的问题。

      例如,所有不是决策问题的 NP-hard 问题都不是 NP 完全的(因为根据定义,NP 是由决策问题形成的)。特别是旅行推销员问题的搜索版本:给定一个城市列表及其成对距离,任务是找到最短的可能路线,该路线仅访问每个城市一次并返回到起点城市。

      TSP 的搜索版本被证明是 NP 难的,但由于它不是决策问题(您无法通过对问题回答是或否来解决它)它不是 NP 的一部分,因此不能是 NP 完全的.

      停止问题一个决策问题,但它在多项式时间内无法验证(根据定义,问题在 NP 中的第二个要求),这就是为什么它不能是 NP 完全的。 p>

      【讨论】:

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