可规约性
如果问题𝑄1Q_1可以归约为问题𝑄2Q_2,则记为𝑄1≤p𝑄2Q_1 ≤_p Q_2,表示Q1大于Q2的难度不会超过一个多项式时间因子(但通常我们可以根据小于等于号来通俗的认为𝑄1Q_1的难度要小于等于𝑄2Q_2)。
𝑄1Q_1 ≤p 𝑄2 ≤_p Q_2 ,可以推出:
•
如果
Q1
是
NPC
问题,则
Q2
必然是
NPC
问题
(
因
Q2
不比
Q1
容易
);
•
如果
Q2
是
P
问题,则
Q1
必然是
P
问题
(
因
Q1
不比
Q2
难
);
集合覆盖问题和顶点覆盖问题
•
顶点覆盖问题即为对于给定的图
G=(V,E)
,能否找到
k
个点,使得图中每条边都至少有一个点在这
k
个点中。如图为一个
6
个顶点,
7
条边的图。
![](https://i-blog.csdnimg.cn/blog_migrate/d10741c90af840485dccba779ba6347f.png)
对于右边的图而言,当k = 2时, 𝑉cV_c, 𝑉𝑓V_f为图的点覆盖。
顶点覆盖规约到集合覆盖问题
转化:对于顶点问题做如下转化:给定一个集合U,U中元素为图中的每条边。对于图中每个顶点i,我们都建立一个集合𝑆iS_i,𝑆iS_i中元素为与顶点i相连的边。这样,问题就转化成了在集合S中能否找到k个集合,使得这些集合的并为U。
对于右边转化后的集合而言, 𝑆c ,S_c , 𝑆fS_f的并集为U。
•
这样,顶点覆盖就多项式规约到集合覆盖。但集合覆盖问题能多项式规约到顶点覆盖问题吗?
•
不可以,因为对于任意的集合
𝑆
i
S_
i
而言,每个元素出现次数可能不是偶数,对于图而言,每条边出现次数一定是偶数,故这种情况下无法通过构图来表示任意一种集合,因此集合覆盖无法规约到顶点覆盖。
![](https://i-blog.csdnimg.cn/blog_migrate/ed3ecad534b019f0e5b73f41d4f942d5.png)