最大二分匹配

Posted duanshuai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大二分匹配相关的知识,希望对你有一定的参考价值。

一. 预备知识

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. 算法过程

                   技术图片 

三. 应用:

【任务安排问题】

【素数伴侣文通】

 

以上是关于最大二分匹配的主要内容,如果未能解决你的问题,请参考以下文章

(转)二分图的最大匹配完美匹配和匈牙利算法

匈牙利算法求二分图的最大匹配数

861. 二分图的最大匹配(匈牙利算法模板)

匈牙利算法dfs模板 [二分图][二分图最大匹配]

(转)二分图的最大匹配完美匹配和匈牙利算法

二分图的最大匹配完美匹配和匈牙利算法