问题描述
在一个无向图G=(V,E)中,我们称D⊆V为一个占优集,是指每个v∈V都属于D或与D中一个节点为邻。在占优集问题中,输入为一个图和预算b,目标是求图中的一个规模不超过b的控制集——如果该集存在,证明该问题是NP-完全的。
解答
可以将顶点覆盖问题归约到占优集问题。若要在图G(V, E)中求得不大于b的一个顶点覆盖,可以先对图G 做一个预处理:对每条边(u,v)∈E ,添加一个辅助顶点w,及两条边(u,w)和(v,w),如下图所示:
对每条边都这样处理后得到一个新图G'。容易看出,若原图G 中存在不大于b 的顶点覆盖,这个顶点覆盖也是新图G'的一个占优集。反过来,若新图G'中存在一个不大于b 的占优集,那么对这个支配集进行一些处理后也能得到一个图G 的不大于b 的顶点覆盖。处理过程如下:设该占优集为D,对于每条边(u,v)及相应的辅助顶点w,若w∉D ,则不用做任何处理,若w∈D 且u,v∉D,那么可以在D中将w替换成u 或v,若w∈D 同时u∈D∨ v∈D,则直接将w从D中删掉即可。
综上,因为顶点覆盖问题是NP-完全的,所以占优集问题也是NP-完全的。