标签:匈牙利算法 二分匹配 src info 点子 因此 最大匹配 单位 容量
一. 预备知识
1. 匹配:图G=(V,E)中没有公共端点的一组边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. 算法过程
三. 应用:
【任务安排问题】
【素数伴侣文通】
标签:匈牙利算法 二分匹配 src info 点子 因此 最大匹配 单位 容量
原文地址:https://www.cnblogs.com/duanshuai/p/13177695.html