二分图的最大匹配

本文介绍了二分图的概念及其最大匹配,详细阐述了增广路的性质,并通过实例解释了匈牙利算法的步骤,包括如何找到并利用增广路径来逐步增加匹配数,直至达到最大匹配。同时,提到了匈牙利算法在解决实际问题中的应用,如最小顶点覆盖和最小路径覆盖问题。
摘要由CSDN通过智能技术生成

二分图:图G中顶点集V可以分成互不相交的子集(X,Y),并且图中的每一条边所关联的点分别属于两个不同的顶点集,则图G叫二分图,如图所示:

二分图的匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配,当匹配数达到最大时为二分图的最大匹配。

当然最大匹配的方案可能不能,但是最终结果都是一样。上图中最大匹配可以由(1,1),(2,2),(3,3),(4,4)构成,也可以是:(1,1),(2,2),(3,3),(5,4)。

上图中的最大匹配数为4,这是其中的一种情况:(1,1),(2,2),(3,3),(4,4)。

增广路:若P是图G中一条连通两个未匹配顶点的路径,并且属于M的边和不属于M的边(即已匹配和待匹配的边)在P上交替出现,则称P为相对于M的一条增广路径。

匈牙利算法(转自:飘过的小牛的博客):

算法的核心是:不断寻找增广路,直到找不到增广路为止

(图1)                                     (图2)

图1、给出两个匹配(1,5),(2,6)。图2为在这个基础上找到一条增广路:3->6->2->5->1->4。

增广路的性质:

(1)有奇数条边。
(2)起点在二分图的左半边,终点在右半边。
(3)路径上的点一定是一个在左半边,一个在右半边,交替出现。

(4)整条路径上没有重复的点。
(5)起点和终点都是目前还没有配对的点,而其它所有点都是已经配好对的。(如图1、图2所示,(15)和(26)在图1中是两对已经配好对的点;而起点3和终点4目前还没有与其它点配对.)
(6)路径上的所有第奇数条边都不在原匹配中,所有第偶数条边都出现在原匹配中。(如图1、图2所示,原有的匹配是(15)和(26),这两条配匹的边在图2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值