如果这些问题是NP完全问题,那么如何解决这些问题的多项式时间算法呢?

时间:2019-02-12 20:56:33

标签: algorithm np np-complete

我正在研究P,NP和NP-Complete问题,并且遇到了一些问题。

我知道,如果可以在多项式时间内解决问题,则问题为P;如果可以在多项式时间内验证问题,则问题为NP。我也了解,如果问题是NP,并且是NP-Complete,并且可以从现有的NP-Complete问题中减少。

我知道SAT,3-SAT,独立集,顶点覆盖,哈密顿循环,子集总和和旅行商都是NPC。但是我遇到一个问题,我被告知判断图形中是否存在5个顶点的独立集合实际上是多项式时间可解的,而不是NPC。然后这让我感到困惑,因为我认为独立集合问题就是NPC。

那么,这使我想知道,在什么情况下这些“ NPC”问题不是NPC,实际上是P?遇到问题时,如何确定问题是P还是NPC?如果该问题确实有可解决的时间问题,该怎么办,我只是无法解决该问题,因此沿NPC走了。我怎么知道我做错了?

3 个答案:

答案 0 :(得分:5)

找到图的最大独立集的问题是NP难的,就像旅行商问题一样。它们都是优化问题,并且都涉及枚举大于输入多项式的多项式的情况。

给定一个数字k和一个n顶点图,找到独立k顶点集的问题是一个单独问题,对于其中有一个多项式时间解。这不是优化问题。

该解决方案受以下事实限制:五个顶点最多有C(n, k)个子集,对于每个子集,您最多需要检查C(k, 2)个边。对于常数n,每个都是k中的多项式。

答案 1 :(得分:1)

  

确定图形中是否存在5个顶点的独立集合实际上是多项式时间可解的

是的,确定/查找固定大小的独立组(或补充,找到cliques of fixed size)具有多项式时间的蛮力算法,通常类似于 n k ,其中 k 是固定大小-在您的情况下为 n 5

但是,NP完全的决策问题是针对任意大小的,其中 k 属于算法的输入。然后变成指数时间。 parameterised complexity字段对此进行了进一步分析。

答案 2 :(得分:0)

有一个类比可以帮助您考虑一下,尽管不是一回事。 有数学证明,您不能对小于O(n * log(n))的任意长度数组进行排序。但是,如果输入为“小”,或者您知道某些输入(例如,它仅包含k个字符),则可以使用O(n)算法使用其他方法更快地解决它(例如Redix)排序)。

当我们尝试推广问题时,由于我们以前对输入没有任何了解,因此事情变得更难(有时,NP-Complete会更难)。