【发布时间】:2023-03-03 16:38:01
【问题描述】:
NP 中是否所有的问题都不是 P NP 完全的? 为了让自己更清楚,NP-P = NPC吗?如果不是,你能举一个既不是 P 也不是 NP 完全的 NP 问题的例子吗?
所有 NP 完全问题都是 NP 难的吗?
提前非常感谢您。
【问题讨论】:
-
这可能更适合堆栈交换站点之一。请参阅此link。它似乎回答了你的问题。
NP 中是否所有的问题都不是 P NP 完全的? 为了让自己更清楚,NP-P = NPC吗?如果不是,你能举一个既不是 P 也不是 NP 完全的 NP 问题的例子吗?
所有 NP 完全问题都是 NP 难的吗?
提前非常感谢您。
【问题讨论】:
我只能肯定回答2。
根据其定义,NP 完整性需要 NP 硬度。如果 NP 中的所有问题都可以在多项式时间内归约到它,则称一个问题 H 是 NP 完全的。因此,解决 H 至少与解决 NP 中的任何其他问题(即 NP-hardness 的定义)一样难。
【讨论】:
首先,一张图片
Ladner 表明如果
P ≠ NP则NP存在问题 既不在P也不在NP-complete中。此类问题称为NP-intermediate问题。 graph isomorphism problem、discrete logarithm problem 和 integer factorization problem 是示例 的问题被认为是NP-intermediate。他们是一些非常 很少有NP的问题不知道在P或NP-complete。
NP-hard 是一类至少与NP 中最难的问题一样难的问题。因此,是的,每个NP-complete 问题都是NP-hard。 【讨论】:
对于您的第一个问题,答案取决于 P = NP。如果 P = NP,则 NP 中不存在任何 P 中不存在的问题,因此不存在此类问题。另一方面,如果 P ≠ NP,则名为Ladner's theorem 的结果保证存在 NP 中的问题,而不是 P 中的问题,而不是 NP 完全问题(这些称为 NP 中间问题)。这个定理的证明是通过构建满足所有标准的高度人为的语言来实现的。我们现在不知道任何属于 NP 中间的具体问题,因为如果我们知道任何问题,我们就会证明 P ≠ NP。
对于第二个问题,是的,根据定义,所有 NP 完全问题都是 NP 难的。 NP-complete问题被定义为同样属于NP类的NP-hard问题。
【讨论】: