我试图找出一种算法来找到二分图的最小顶点覆盖。
我正在考虑一个解决方案,它将问题减少到二分图中的最大匹配。众所周知,可以使用从bip创建的networ中的最大流量来找到它。曲线图。
最大匹配M应确定最小值。顶点覆盖C,但我无法应对选择顶点来设置C. 让我们说bip。图中有部分X,Y和顶点是最大匹配边的端点在集A中,那些不属于B的那些。
我想说我应该为M到C中的边选择一个顶点。 特别是M中边缘e的端点连接到集合B中的顶点,否则如果它仅连接到A中的顶点则无关紧要。 遗憾的是,这个想法并不常用,因为我的算法可以找到反例,因为A中的顶点也可以通过其他边连接,而不是包含在M中的边。
任何帮助都会得到满足。
答案 0 :(得分:0)
Kőnig's theorem证明确实做到了-从二分图中的最大匹配建立最小的顶点覆盖。
假设您有一个G = (V, E)
的二分图,它在X
和Y
之间隔开。
正如您所说,首先必须找到最大匹配项(例如,可以使用Dinic's algorithm实现)。我们称此最大匹配为M
。
然后构建最小的顶点覆盖范围:
U
1 中找到X
不匹配顶点的集合(可能为空),即。未连接到M
Z
中建立U
的集合或顶点,或通过交替路径(在U
的边缘和不在{{ 1}})M
是您的最小顶点覆盖范围维基百科上的文章详细介绍了如何证明M
确实是最小的顶点覆盖范围。
1 或Y,都是对称的