- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二分图最大匹配二分图最大匹配
二分图的最大匹配就是要在二分图的边集E中找到一个子集S,使S中的任两条边没有公共顶点,且|S|达到最大。二分图有很多实际应用,如工作分配问题。同时二分图最大匹配问题又可以转化成“最小顶点覆盖”、“最小路径覆盖”、“最大独立集“等问题,因此显得非常重要。下面就介绍二分图最大匹配算法。二分图最大匹配可以转换成最大流问题来解。假设二分图的两个顶点集分别为X, Y,那么我们在图中添加一个源s,和一个汇t。同时,在s与X的每个顶点间加一条有向边(s, vx),在Y的每个顶点与t间加一条有向边(vy, t)。X与Y的每条边也变为X-Y的有向边。图中每条边的容量为1。则最大匹配问题就转换为求转换后的图G的最大流的问题。利用Ford-Fulkerson方法求最大流,时间复杂度为O(VE), V为顶点数,E为边数。具体证明参考《算法导论》。经典的求二分图最大匹配的算法是Edmond于1965年提出的匈牙利算法。算法的核心思想是由一个初始匹配不断找增广路,直到找不到增广路为止。这里的增广路和网络流中的增广路有些不同。这里的增广路是这样的一条路:设已有的匹配为M,它的第一条边不在M中,最后一条边也不在M中,中间为在M中的边与不在M中的边交错出现。显然,这条路起点在X中,终点在Y中,且不在M中的边比在M中的边多1。所以我们若对增广路中的边进行取反,即原来不是匹配边的边变为匹配边,原来是匹配边的边变为不是匹配边的边,则我们能获得一个更大的匹配。所以这么一直找下去,直到找不到增广路为止,我们最后得到的匹配M就是要求的最大匹配。匈牙利算法中,初始匹配我们可以设为空,然后用DFS或者BFS找增广路。找一条增广路的复杂度为O(E),最多找V条增广路,故算法时间复杂度为O(VE)。下面给出匈牙利算法的两种实现:1.DFS找增广路
#include iostream#include cstringusing namespace std;const int MAXN = 100;int uN, vN; // u,v数目 bool g[MAXN][MAXN]; // g[i][j] 表示 xi与yj相连 int xM[MAXN], yM[MAXN]; // 输出量 bool chk[MAXN]; // 辅助量 检查某轮 y[v]是否被check bool SearchPath(int u){ int v; for(v = 0; v vN; v++) { if(g[u][v] !chk[v]) { chk[v] = true; if(yM[v] == -1 || SearchPath(yM[v])) { yM[v] = u; xM[u] = v; return true ; } } } return false ;}int MaxMatch(){ int u; int ret = 0 ; memset(xM, -1, sizeof (xM)); memset(yM, -1, sizeof (yM)); for(u = 0; u uN; u++) { if(xM[u] == -1) { memset(chk, false, sizeof (chk)); if(SearchPath(u)) ret++; } } return ret;}
优点:实现简洁,容易理解,适用于边比较多的图,DFS找增广路快。2.BFS找增广路
#include iostream#include cstringusing namespace std;#define MAXN 128int g[MAXN][MAXN], Mx[MAXN], My[MAXN], Nx, Ny;int chk[MAXN], Q[MAXN], prev[MAXN];int MaxMatch(void){ int res = 0; int qs, qe; memset(Mx, -1, sizeof(Mx)); memset(My, -1, sizeof(My)); memset(chk, -1, sizeof(
您可能关注的文档
- 二上难忘的一天.ppt
- 事务文书-计划、总结.ppt
- 二上教案修改后整册.doc
- 二倍角三角公式2.ppt
- 二0一二年秋期定时作业(三).doc
- 二上语文四字词语近义词.doc
- 二上语文园地五精品课.ppt
- 二元一次方程组与一元一次不等式-习题.doc
- 二倍角公式_王建存 - 副本.ppt
- 二倍角公式(3课时).ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
最近下载
- ZZ027 全国职业院校技能大赛(中职组) 婴幼儿保育赛项理论题第3套(含答案).doc VIP
- 单片机(李朝青)课后习题答案.pdf
- ZZ027-全国职业院校技能大赛(中职组)-婴幼儿保育赛项第5套(含答案).doc VIP
- 厦门房地产行业报告.pptx VIP
- 普外科手术并发症处理ppt.pptx
- 劳淋(再发性尿路感染)中医临床路径.doc VIP
- 年处理10万吨乙醇-水筛板精馏塔设计说明书2024.12.18.docx
- 2023年2022版数学课程标准复习题.pdf VIP
- 土地利用现状调查方法技术.pdf
- 2022年人教版中考生物复习知识点思维导图 主题五 动物的运动和行为.ppt VIP
文档评论(0)