这是问题所在。我想知道是否有明确有效的证据:
顶点覆盖:输入无向G,整数k>是否有一个子集 顶点S,| S |< = k,覆盖所有边?
支配集:输入无向G,整数k>是否有一个子集 顶点S,| S |< = k,支配所有顶点?
顶点覆盖它的入射边缘,并支配它的邻居和它自己。
假设VC是NPC,证明DS是NPC。
答案 0 :(得分:8)
有一个非常好的和众所周知的缩减:(仅适用于连接图)
给定一个Vertex Cover的实例(G,k)构建一个Dominating Set(H,k)的实例,其中对于H,你取G并且对于每个边(u,v)添加一个连接到u的附加顶点x诉
首先要认识到G的顶点覆盖是H的一个主导集合(它显然是G的DS,新的顶点也是主导的)。因此,如果G的VC小于k,则H的DS小于k。
相反,考虑D,H的支配集。
请注意,如果其中一个新顶点在D中,我们可以用它的两个邻居之一替换它并仍然得到一个支配集:它只是邻居是两个原始顶点并且它们也是连接的 - 所有x都可以可能的支配地位也由你或v支配。
因此我们可以假设D仅包含来自G的顶点。现在对于G中的每个边(u,v),新的顶点x由D控制,因此u或v在D中。但这意味着D是a G的顶点封面
我们拥有它:当且仅当H具有较小的支配集k时,G的顶点覆盖较小的k。
答案 1 :(得分:0)
答案 2 :(得分:-2)
我认为第二个问题不是NP。 让我们尝试以下算法。
1. Get the original Graph
2. Run any algorithm which checks if a graph is connected or not.
3. mark all used edges of step 2
4. if the graph is connected then return the set of marked edges otherwise there is no such a set.
如果我理解你的问题,那么它就不是NP Complete。