( 图论专题 )【 最小点覆盖、最少边覆盖和最大独立集 】

( 图论专题 )【 最小点覆盖、最少路径覆盖和最大独立集 】

(1)二分图的最大匹配

匈牙利算法

(2)二分图的最小点覆盖

定义:在二分图中,求最少的点集,使得每一条边至少都有端点在这个点集中。

二分图的最小点覆盖 = 二分图的最大匹配

(3)二分图的最少边覆盖

定义:在二分图中,求最少的边,使得他们覆盖所有的点,并且每一个点只被一条边覆盖。

二分图的最少边覆盖 = 点数-二分图的最大匹配

证明:

先贪心选一组最大匹配的边放进集合,对于剩下的没有匹配的点,随便选一条与之关联的边放进集合,那么得到的集合就是最小边覆盖。

所以有:最小边覆盖=最大匹配+点数-2*最大匹配=点数-最大匹配

(4)二分图的最大独立集

定义:在二分图中,选最多的点,使得任意两个点之间没有直接边连接。

二分图的最大独立集 = 点数 - 二分图的最大匹配

证明:

我们可以这样想,先把所有的点放进集合,然后删去最少的点和与之相关联的边,使得全部边都被删完,这就是最小点覆盖。所以有:最大独立集=点数-最小点覆盖

(5)有向无环图的最少不相交路径覆盖

我们把原图中的点V拆成两个点Vx和Vy,对于原图中的边A−>B,我们在新图中连Ax−>By。那么最少不相交路径覆盖=原图的点数-新图的最大匹配

证明:

一开始每个点都独立为一条路径,在二分图中连边就是将路径合并,每连一条边路径数就减一。因为路径不能相交,所以不能有公共点,这恰好就是匹配的定义。所以有:最少不相交路径覆盖=原图的点数-新图的最大匹配

 

 

你可能感兴趣的:(算法树之图论)