二分图最大匹配及其应用
匈牙利算法 有没有更快的算法? 匈牙利算法是迭代的,也就是说你可以从任何一个初始匹配开始使用匈牙利算法,最后一定能得到一个最大匹配(增广路定理的推论)。 如果先贪心一个初始匹配再使用匈牙利算法,那么程序可能会快很多。 有没有时间复杂度更低的算法? HOPCROFT-KARP算法 与网络流的优化方法类似,可以考虑每次寻找若干条结点不相交的最短增广路,每次沿多条增广路同时增广,这就是Hopcroft-Karp算法。 可以证明,如果每次都是沿着尽可能多的最短增广路同时增广,那么总的增广的次数仅为O(n0.5),相比于匈牙利算法(增广n次)要好很多。 HOPCROFT-KARP算法 问题的关键在于用O(m)的时间找出尽量多的最短增广路。 首先从所有X的未盖点进行BFS(仍然是找增广路),计算每个X的顶点和Y的顶点的距离。如果Y中有未盖点被访问到,就找到了增广路,但找到Y中的第一个未盖点时并不停止,而是等找出所有距离与Y相等的顶点后停止。这样,找到的所有未盖点的距离都相同,而且都是最短增广路。 HOPCROFT-KARP算法 之后对于Y部的每个未盖点,用DFS寻找增广路(只沿着距离减1的边移动)进行增广(或对于X部的每个未盖点,沿着距离加1的边寻找增广路)。 注意在整个DFS的过程中要将访问过的顶点做标记,以保证增广路都是不相交的。 增广的次数为O(n0.5),又因为每次增广的时间复杂度为O
您可能关注的文档
最近下载
- 基于NSA2860的参考方案设计.PDF VIP
- Roland罗兰乐器AX-Edge 肩背式合成器[Chinese] AX-Edge Owner's Manual用户手册.pdf
- 人力资源合规管理与风险管控 自查手册(361个风险点)-2025更新.pdf
- 日本工业标准JISL19022002.pdf VIP
- gb50974-2014消防给水及消火栓系统技术规范讲解..ppt VIP
- 《数字电子技术基础》课后习题及参考答案7810.pdf VIP
- 苏州市房地产经纪与信用管理平台‐备案经纪机构信息复核操.PDF
- 第十六届“高教杯”机械类试卷(机械手)、(台灯).pdf VIP
- 中医骨科护理疑难病例讨论.pptx VIP
- 浙江省宁波市慈溪市2024-2025学年六年级下学期期末数学试卷及答案解析.docx VIP
原创力文档

文档评论(0)