( 图论专题 )【 最小点覆盖、最少路径覆盖和最大独立集 】
(1)二分图的最大匹配
匈牙利算法
(2)二分图的最小点覆盖
定义:在二分图中,求最少的点集,使得每一条边至少都有端点在这个点集中。
二分图的最小点覆盖 = 二分图的最大匹配
(3)二分图的最少边覆盖
定义:在二分图中,求最少的边,使得他们覆盖所有的点,并且每一个点只被一条边覆盖。
二分图的最少边覆盖 = 点数-二分图的最大匹配
证明:
先贪心选一组最大匹配的边放进集合,对于剩下的没有匹配的点,随便选一条与之关联的边放进集合,那么得到的集合就是最小边覆盖。
所以有:最小边覆盖=最大匹配+点数-2*最大匹配=点数-最大匹配
(4)二分图的最大独立集
定义:在二分图中,选最多的点,使得任意两个点之间没有直接边连接。
二分图的最大独立集 = 点数 - 二分图的最大匹配
证明:
我们可以这样想,先把所有的点放进集合,然后删去最少的点和与之相关联的边,使得全部边都被删完,这就是最小点覆盖。所以有:最大独立集=点数-最小点覆盖
(5)有向无环图的最少不相交路径覆盖
我们把原图中的点V拆成两个点Vx和Vy,对于原图中的边A−>B,我们在新图中连Ax−>By。那么最少不相交路径覆盖=原图的点数-新图的最大匹配
证明:
一开始每个点都独立为一条路径,在二分图中连边就是将路径合并,每连一条边路径数就减一。因为路径不能相交,所以不能有公共点,这恰好就是匹配的定义。所以有:最少不相交路径覆盖=原图的点数-新图的最大匹配