二分图最大匹配与最大独立集

二分图定义

定义:对于一个图 G = ( V , E ) G=(V,E) G=V,E,若能将其点集分为两个互不相交的两个子集 X 、 Y X、Y XY,使得 X ∩ Y = ∅ X∩Y=∅ XY=,且对于 G G G的边集 V V V,若其所有边的顶点全部一侧属于 X X X,一侧属于 Y Y Y,则称图 G G G为一个二分图。

定理:当且仅当无向图G的回路个数为偶数时,图G为一个二分图。无回路的图也是二分图。

二分图判定:在二分图G中,任选一个点V,使用BFS算出其他点相对于V的距离(边权为1) 对于每一条边E,枚举它的两个端点,若其两个端点的值,一个为奇数,一个为偶数,则图G为一个二分图。

匹配:对于一个二分图G的子图M,若M的边集E的的任意两条边都不连接同一个顶点, 则称M为G的一个匹配。对于二分图G的一个子图M,若M为其边数最多的子图,则称M为G的最大匹配。

独立集定义

最大独立集为N P-复杂问题,但在二分图中存在多项式复杂度的解法。

一个点集中的任意点之间没有关系这个点集就是独立集,点数最多的独立集就是最大独立集。

最小点覆盖:在二分图中,求最少的点集,使得每一条边至少都有端点在这个点集中。二分图中最小覆盖点等于最大匹配。

最大独立集 =点的总数 - 最小点覆盖
因为每条边都有端点在最小点覆盖中,所以去除最小点覆盖候后,图中就不存在边了,而剩下的点之间都是没有关系相互独立的。这时就可以转化为二分图最大匹配问题求解了。
求解最大匹配问题可以使用匈牙利算法和Hopcroft-Karp (HK)算法。

增广路

增广路径的定义如下:
若P是图G中一条联通两个未匹配顶点的路径,且属于M的边和不属于M的边在P上交替出现,则称P为相对于M的一条增广路径。
由增广路的定义我们可以推出下述三个结论:

  1. P的路径长度必定为奇数,第一条边和最后一条边都不属于M。
  2. 经过取反操作可以得到一个更大的匹配M’,边数为M的边数+1。
  3. M为G的最大匹配当且仅当不存在相对于M的增广路径。

下图中已匹配的集合为M,用黑色的线表示。
在这里插入图片描述
此时 3 − 1 ′ − 1 − 3 ′ − 4 − 4 ′ 3-1^{'}-1-3^{'}-4-4^{'} 311344为一条增广路。
在这里插入图片描述
将M变为蓝线表示的边,M的数量增加了1,而求最大匹配就是不断寻找增广路的过程。
在这里插入图片描述

匈牙利算法

HK算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值