Vertex-Cover
问题描述
Vertex-Cover中文名为顶点覆盖问题,即在一个图中找出一个最小的点集,使得图中每条边都有一个点在这个点集中。
注意与最小统治集的区别
具体思路
以下图片未注明出处的都来自北航算法课件
基于朴素的想法,每次选取新增覆盖边数最多的顶点。
我们可以用一个简单的例子说明该算法不是OPT的。
上图的最优解应该是6个红色顶点,但是按照贪心策略:
先找到cover=3的两个绿色点,
再找到cover=2的三个蓝色点,
最后找到cover=1的六个橘色点。
从上图不难看出一个结论,在二分图中,最大匹配=最小顶点覆盖。但是在一般图中,这个结论并不成立。
与Set-Cover的联系
Vertex-Cover问题其实是Set-Cover问题的一种特殊情况。