Algorithm 如果这些问题是NP完全问题,如何有多项式时间算法来解决它们?

Algorithm 如果这些问题是NP完全问题,如何有多项式时间算法来解决它们?,algorithm,np,np-complete,Algorithm,Np,Np Complete,我在研究p,NP和NP完全问题,我遇到了一些问题 我知道一个问题是p,如果你能在多项式时间内解决它,一个问题是NP,如果它能在多项式时间内验证。我也知道,如果一个问题是NP问题,那么它就是NP完全问题,并且可以从一个现有的NP完全问题中进行简化 我知道SAT,3-SAT,独立集,顶点覆盖,哈密顿圈,子集和,旅行商都是NPC。但我遇到了一个问题,我被告知,决定一个图中是否存在一个由5个顶点组成的独立集实际上是多项式时间可解的,而不是NPC。这让我很困惑,因为我认为独立集问题是NPC 所以我想知道,

我在研究p,NP和NP完全问题,我遇到了一些问题

我知道一个问题是p,如果你能在多项式时间内解决它,一个问题是NP,如果它能在多项式时间内验证。我也知道,如果一个问题是NP问题,那么它就是NP完全问题,并且可以从一个现有的NP完全问题中进行简化

我知道SAT,3-SAT,独立集,顶点覆盖,哈密顿圈,子集和,旅行商都是NPC。但我遇到了一个问题,我被告知,决定一个图中是否存在一个由5个顶点组成的独立集实际上是多项式时间可解的,而不是NPC。这让我很困惑,因为我认为独立集问题是NPC


所以我想知道,在什么情况下,这些“NPC”问题不是NPC,实际上是p?当给出问题时,我如何确定问题是P还是NPC?如果这个问题真的有一个多时间可解的解决方案呢?我就是想不出来,所以就走上了NPC的道路。我怎么知道我犯了一个错误?

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

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

解决方案的边界是,最多有五个顶点的
C(n,k)
子集,对于每个子集,您最多需要检查
C(k,2)
边。对于常数
k
,它们中的每一个都是多项式

决定一个图中是否存在由5个顶点组成的独立集实际上是多项式时间可解的

是的,确定/查找固定大小的独立集(或互补,查找)有一个多项式时间的蛮力算法,通常类似于nk,k是固定大小-在您的案例n5中


然而,NP完全决策问题适用于任意大小的,其中k属于算法的输入。然后它变成指数时间。该领域进一步分析了这一点。

有一个类比可以帮助你思考它,尽管它不是同一件事。 有一个数学证明,不能在小于O(n*log(n))的范围内对任意长度的数组进行排序。但是,如果输入是“小”的,或者您知道输入的一些信息,例如,它只包含k个字符,那么您可以使用其他方法更快地解决它,使用O(n)算法(例如,Redix sort)


当我们试图推广这个问题时,由于我们对输入没有任何先前的知识,事情就更难了(有时是NP完全困难)。

一个由5个顶点组成的多项式独立集似乎没有多大意义,因为如果所有参数都有界,那么这个问题就会在恒定时间内得到解决。P、 NP等表示了一些关于渐近行为的信息。此外,某些问题的子集很可能更容易解决。例如,2-SAT可以在多项式时间内求解。因此,如果我们使用3-SAT问题,但每个子句只有两个不同的术语(如a或a或b),那么这实际上是2-SAT。@WillemVanOnsem抱歉,我编辑了我的原始帖子。该问题是判定一个图是否有一个由5个顶点组成的独立集是P还是NPC,而不是一个由5个顶点组成的独立集是NPC。最大独立集和旅行商问题是NP难问题,不是NP完全问题。它们是组合优化问题,你无法在多项式时间内验证它们的解决方案。“如果问题确实有一个多时间可解的解决方案,我只是无法想出它,因此走上了NPC的道路。”-别难过,我们甚至还不知道P=NP=NPC。谢谢你的回答。我很难理解为什么当它是k时,它就是NPC,但当它是一个数字代替k时,它就是P。如果k可以被任何数字代替,那么这不意味着它可以被任何数字代替吗?(不确定这是否有意义)只要用任何固定的数字替换
k
,它就是P。就像任何算法一样,只要我们用一个固定的数字限制输入大小,它就是
O(1)
。但是当我们想分析任意大的
k
s的复杂性时,我们得到了NPC,最大独立集问题不是NPC。这是NP难的。我错过什么了吗?当
k
是任意的时,NP完全的决策问题在哪里?@justinpc在那篇文章中被称为“独立集决策问题”。谢谢,我很抱歉。谢谢你的回答。这是否意味着我列出的所有NPC问题都只是针对这些问题的优化问题?当我们询问一个具体情况时,它就变成多项式时间可解的了?你列出的优化问题是NP难的,不是NP完全的。正如Bergi所提到的,当参数化时,某些优化问题会变得更简单。寻找最大独立集的问题归结为寻找具有参数化大小的独立集的问题。