图匹配
匹配 或是 独立边集 是一张图中不具有公共端点的边的集合。 在二分图中求匹配等价于网路流问题。
图匹配算法是信息学竞赛中常用的算法,总体分为最大匹配以及最大权匹配,先从二分图开始介绍,再进一步提出一般图的作法。
图的匹配
在图论中,假设图
一组两两没有公共点的边集
定义匹配的大小为其中边的数量
当图中的边带权的时候,边权和最大的为 最大权匹配。
匹配中的边称为 匹配边,反之称为 未匹配边。
一个点如果属于
- 极大匹配(maximal matching):无法再增加匹配边的匹配。不一定是最大匹配。
- 最大匹配(maximum matching or maximum cardinality matching):匹配边数量最多的匹配。最大匹配可能有不止一个,但最大匹配的边数是确定的,而且不可能超过图中定点数的一半。
- 最大权匹配(maximum weight matching):加权图中,权值和最大的匹配。
- 最大权最大匹配(maximum weight maximum cardinality matching):匹配数最多的前提下,边权和最大的匹配。即所有最大匹配中,边权和最大的匹配。
- 完美匹配(perfect matching):所有点都属于匹配,同时也符合最大匹配。若图 G 为完全图且顶点数为偶数时,必然存在完美匹配。
近完美匹配(near-perfect matching):发生在图的点数为奇数,刚好只有一个点不在匹配中,扣掉此点以后的图称为 factor-critical graph。
maximal matching
最大匹配
最大权匹配
最大权最大匹配
二分图匹配
一张二分图上的匹配称作二分匹配
设
完美匹配
设
霍尔定理
设二分图
最大匹配
寻找二分图边数最大的匹配称为最大匹配问题。
算法
组合优化中的一个基本问题是求 最大匹配(maximum matching)。
二分图最大匹配
详见 二分图最大匹配 页面。
在无权二分图中,Hopcroft–Karp 算法可在
二分图最大权匹配
详见 二分图最大权匹配 页面。
在带权二分图中,可用 Hungarian 算法解决。 如果在最短路搜寻中用 Bellman–Ford 算法,时间复杂度为
一般图最大匹配
详见 一般图最大匹配 页面。
无权一般图中,Edmonds' blossom 算法可在
一般图最大权匹配
详见 一般图最大权匹配 页面。
带权一般图中,Edmonds' blossom 算法可在
匹配算法的转换
用最大权最大匹配求最大权匹配
最大权最大匹配 允许负边权
若一张图
调整边的权重
先将图
完全图性质
当图
所以把图
用最大权匹配求最大权最大匹配
最大权匹配 不会有负边权,且零边
调整边的权重
令
最大权最大匹配 不一定等于 最大权匹配,但如果把所有边的边权加上一个足够大的数
此时对图 G 进行 最大权匹配,其结果可以对应原图
参考资料
- Wikiwand - Matching (graph theory)
- Wikiwand - Blossom algorithm
- 2015 年《浅谈图的匹配算法及其应用》- 陈胤伯
- 演算法笔记 - Matching
- the-tourist/algo
- Bill Yang's Blog - 带花树学习笔记
- 二分图的最大匹配、完美匹配和匈牙利算法
- Wikiwand - Hopcroft–Karp algorithm
本页面最近更新:2023/9/28 13:33:04,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:StudyingFather, t4rf9, wlbksy, yuhuoji, 310552025atNYCU, accelsao, Enter-tainer, mcendu, Tiphereth-A, Xeonacid
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用