算法概论 习题8.20

来源:互联网 发布:2016网络古装剧 编辑:程序博客网 时间:2024/05/16 12:58

本篇为算法课期末作业。

题目是8.20.

原题:在一个无向图G=(V,E)中,我们称为一个占优集,是指每个都属于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中删掉即可。

原创粉丝点击