二分图匹配问题(——模板习题与总结)
2017-10-13 18:06
155 查看
首先得知道什么是二分图匹配问题,给出一个二分图,每个人与另外的一个或者多个人存在某种关系
问将他们两两配对的对,最多能配成多少对。
其次,明确几个专业名词。
最大匹配:边数最多的匹配成为最大匹配。
最大匹配数:最大匹配的边数称为边独立数或者匹配数。
最大点独立集:顶点数最多的点独立集称为最大点独立集。
点独立数:最大点独立集的顶点数称为点独立数。
接下来总结一下,如何计算二分匹配的最大匹配。
这里介绍一下匈牙利算法,至于另外的网络流解法随后再说。
匈牙利算法的原理是: 从当前匹配M(可以是空集)出发,检查每一个未盖点,然后从他出发寻找可增广路,找到可增广路,沿着这条可增广路进行扩充,直到不存在可增广路为止。
未盖点出发寻找可增广路的方法有DFS增广,BFS增广,这里只介绍DFS增广。
最后,熟记几个公式。
最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7363354.html
点独立数=顶点数-最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7361114.html
最小点覆盖数=最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7361409.html
最小路径覆盖数=顶点数-最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7363128.html
最小边覆盖(未补充)
最后总结,该类问题难,不是算法,而是建模,模建好了,问题不大。
问将他们两两配对的对,最多能配成多少对。
其次,明确几个专业名词。
最大匹配:边数最多的匹配成为最大匹配。
最大匹配数:最大匹配的边数称为边独立数或者匹配数。
最大点独立集:顶点数最多的点独立集称为最大点独立集。
点独立数:最大点独立集的顶点数称为点独立数。
接下来总结一下,如何计算二分匹配的最大匹配。
这里介绍一下匈牙利算法,至于另外的网络流解法随后再说。
匈牙利算法的原理是: 从当前匹配M(可以是空集)出发,检查每一个未盖点,然后从他出发寻找可增广路,找到可增广路,沿着这条可增广路进行扩充,直到不存在可增广路为止。
未盖点出发寻找可增广路的方法有DFS增广,BFS增广,这里只介绍DFS增广。
最后,熟记几个公式。
最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7363354.html
点独立数=顶点数-最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7361114.html
最小点覆盖数=最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7361409.html
最小路径覆盖数=顶点数-最大匹配数
模板习题:http://www.cnblogs.com/wenzhixin/p/7363128.html
最小边覆盖(未补充)
最后总结,该类问题难,不是算法,而是建模,模建好了,问题不大。
相关文章推荐
- 最小生成树问题(——模板习题与总结)
- 工作总结 1 sql写法 insert into select from 2 vs中 obj文件和bin文件 3 npoi 模板copy CopySheet 最好先全部Copy完后 再根据生成sheet写数据 4 sheet.CopyRow(rowsindex, rowsindex + x); 5 npoi 复制模板如果出现单元格显示问题
- 背包问题小总结 习题(动态规划01背包(第k优解)完全背包,多重背包)acm杭电HDU2639,HDU2602,HDU1114,HDU2191
- P3386 【模板】二分图匹配(网络流与线性规划24题01飞行员配对方案问题)
- SICP 习题 (2.10)解题总结: 区间除法中除于零的问题
- KMP算法(——模板习题与总结)
- 总结——背包问题解析及模板代码
- BFS算法(——模板习题与总结)
- cacti模板使用管理及安装问题总结
- 最短路问题(——模板习题与总结)
- 贪心法(——模板习题与总结)
- DFS算法(——模板习题与总结)
- 网站模板学习发现问题总结
- 并查集(——模板习题与总结)
- SICP 习题 (2.14)解题总结:区间误差导致的问题
- 使用模板引擎artTemplate的几个问题总结
- SICP 习题 (2.10)解题总结: 区间除法中除于零的问题
- 背包问题总结(模板)
- 工作总结2 第三方库注意的问题
- [经验总结]解决Ubuntu系统中deb包循环依赖的问题