首页 > 其他 > 详细

最大二分匹配

时间:2020-06-22 18:23:00      阅读:59      评论:0      收藏:0      [点我收藏+]

一. 预备知识

1. 匹配:图G=(V,E)中没有公共端点的一组边M

  • 匹配边:M中的边 ?
  • 自由边:E/M中的边
  • 被浸润的顶点:M中边的端点 ?
  • 未被浸润的顶点:其他顶点

 完美匹配:浸润G的个顶点的匹配

 最大匹配:边的条数达到最大值的匹配

推论:完美匹配一定是最大匹配,反之未必

2. 顶点覆盖:图G=(V,E)中的一个顶点子集C,E中条边都至少有一个端点在C中

 最小顶点覆盖:G的顶点个数最少的覆盖

3. 推论:

图G的最小顶点覆盖C和最大匹配M满足|M| <= |C| , 在二分图G中,|M|=|C|

二.最大二分匹配问题

方法1:(最大流的算法)

  • 问题转化

                        构建一个新的流网络G‘ 

1 .技术分享图片 

2. 技术分享图片

3. 为每条边赋予单位容量

  • 结论

(1)图G的每个匹配对应图G‘的一个流

(2)图G的一个最大二分匹配对应图G‘的最大流

(3)最大二分匹配的基数 == 最大流| f |

方法2:匈牙利算法

1. 概念定义:

(1)交替路:从一个未匹配点出发,依次经过非匹配边、匹配边、非匹配边…形成的路径叫交替路。

(2)增广路:从一个未匹配点出发,走交替路,如果途径另一个未匹配点(出发的点不算),则这条交替路称为增广路

2. 核心思想

增广路有一个重要特点:非匹配边比匹配边多一条,因此,只要把增广路中的匹配边和非匹配边的身份交换即可。

3. 算法过程

                   技术分享图片 

三. 应用:

【任务安排问题】

【素数伴侣文通】

 

最大二分匹配

原文:https://www.cnblogs.com/duanshuai/p/13177695.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!