




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二分图匹配 匈牙利算法简介及应用 软件学院周娟 回顾 上一讲 最大网络流问题江西省2012年数学建模b题一等奖 华东交通大学基础学院周琴 胡媛媛 郭文文同学在论文中写到 利用网络流算法的方法 得到最均匀的分发方法 并且可以使得任何两位教师交叉共同评阅一份试卷的情况也尽量均匀 计算最大流的dinic算法去安排阅卷 dinic算法是网络流的优化算法之一 每一步对原图进行分层 然后用递归搜索的方式求增广路 算法的时间复杂度是o n2m n为有向图的顶点数 m为有向图的边数 二分图的概念 二分图又称作二部图 是图论中的一种特殊模型 设g v r 是一个无向图 如顶点集v可分割为两个互不相交的子集 并且图中每条边依附的两个顶点都分属两个不同的子集 则称图g为二分图 最大匹配 给定一个二分图g 在g的一个子图m中 m的边集 e 中的任意两条边都不依附于同一个顶点 则称m是一个匹配 1 1 2 2 3 3 4 4 5 最大匹配 给定一个二分图g 在g的一个子图m中 m的边集 e 中的任意两条边都不依附于同一个顶点 则称m是一个匹配 选择这样的边数最大的子集称为图的最大匹配问题 maximalmatchingproblem 如果一个匹配中 图中的每个顶点都和图中某条边相关联 则称此匹配为完全匹配 也称作完备匹配 匈牙利算法 求最大匹配的一种显而易见的算法是 先找出全部匹配 然后保留匹配数最多的 但是这个算法的复杂度为边数的指数级函数 因此 需要寻求一种更加高效的算法 增广路的定义 也称增广轨或交错轨 若p是图g中一条连通两个未匹配顶点的路径 并且属m的边和不属m的边 即已匹配和待匹配的边 在p上交替出现 则称p为相对于m的一条增广路径 匈牙利算法 由增广路的定义可以推出下述三个结论 1 p的路径长度必定为奇数 第一条边和最后一条边都不属于m 2 p经过取反操作可以得到一个更大的匹配m 3 m为g的最大匹配当且仅当不存在相对于m的增广路径 匈牙利算法 用增广路求最大匹配 称作匈牙利算法 匈牙利数学家edmonds于1965年提出 算法轮廓 1 置m为空 2 找出一条增广路径p 通过取反操作获得更大的匹配m 代替m 3 重复 2 操作直到找不出增广路径为止 算法的核心就是根据一个初始匹配不停的找增广路 直到没有增广路为止 找增广路的时候既可以采用dfs也可以采用bfs 两者都可以保证o nm 的复杂度 因为每找一条增广路的复杂度是o m 而最多增广n次 dfs在实际实现中更加简短 匈牙利算法 题目大意 有p门课程 n个学生 一些学生选了一些课 某个学生可能选1门或多门课程 也可以一门也不选 现在从学生中选每门课的课代表 如果某个学生已经当了某门课的代表 就不能代表别的课了 一门课也只能有一个课代表 由这些课代表组成了一个代表委员会 现在给出学生选课的情况 求这p门课是否都能够找到学生来做代表 例题1courses hdu1083 题目大意 有p门课程 n个学生 一些学生选了一些课 某个学生可能选1门或多门课程 也可以一门也不选 现在从学生中选每门课的课代表 如果某个学生已经当了某门课的代表 就不能代表别的课了 一门课也只能有一个课代表 由这些课代表组成了一个代表委员会 现在给出学生选课的情况 求这p门课是否都能够找到学生来做代表 例题1courses hdu1083 解题思路 本题是一道典型的二分图最大匹配题 采用匈牙利算法 本题的构图是这样的 左右两边的x和y 分别是x学生 y课程 那么已知哪些学生可以学哪些课 也就是在x的点和y的点之间首先连上线 求xy的最大匹配 如果有p个学生做了课代表 那么就是p门课程都有课代表了 样例33312321211 1 2 3 2 1 3 x学生 y课程 1 建图 例题1courses hdu1006 1 2 3 2 1 3 x学生 y课程 1 建图 例题1courses hdu1006 1 2 3 2 1 3 x学生 y课程 2 连接x1 y1x2 y2得到此匹配 匹配数为2 1 2 3 2 1 3 x学生 y课程 3 例题1courses hdu1006 1 2 3 2 1 3 x学生 y课程 2 连接x1 y1x2 y2得到此匹配 匹配数为2 要使x3找到匹配 只能找到与它相连的y1 此时需要删除x1 y1 1 2 3 2 1 3 x学生 y课程 3 例题1courses hdu1006 x学生 y课程 4 再尝试x1与其他点连 尝试x1 y2 此时需要删除x2 y2 无法找到与x2连接的新边 此尝试失败 要使x3找到匹配 只能找到与它相连的y1 此时需要删除x1 y1 1 2 3 2 1 3 x学生 y课程 5 例题1courses hdu1006 x学生 y课程 4 再尝试x1与其他点连 尝试x1 y2 此时需要删除x2 y2 无法找到与x2连接的新边 此尝试失败 再尝试x1 y3 得到匹配数3x1 y3 x2 y2 x3 y1 1 2 3 2 1 3 1 2 3 2 1 3 例题1courses hdu1006 4 5 1 2 3 2 1 3 2 1 2 3 2 1 3 3 1 x学生 y课程 while cases scanf d d includeintlink 303 303 intused 303 mathy 303 usingnamespacestd intp n intfind intx x学生可以匹配到某课程么 可以返回1 不可以返回0 intmmg 计算最大匹配数 调用了find intmain intx y i j intcases scanf d intmmg intx sum 0 j memset matchy 1 sizeof matchy for x 1 x n x 以此考查每个学生memset used 0 sizeof used x学生尚未代表任何一门课程if find x x学生代表了某课程 x匹配到了某课程sum 被代表的课程数加1 returnsum intfind intx x学生可以匹配到某课程么for inty 1 y p y if used y 例题2placetherobots zoj1654 问题描述有一个n m n m 50 的棋盘 棋盘的每一格是三种类型之一 空地 草地 墙 机器人只能放在空地上 在同一行或同一列的两个机器人 若它们之间没有墙 则它们可以互相攻击 问给定的棋盘 最多可以放置多少个机器人 使它们不能互相攻击 例题2placetherobots zoj 模型一 于是 问题转化为求图的最大独立集问题 在问题的原型中 草地 墙这些信息不是我们所关心的 我们关心的只是空地和空地之间的联系 因此 我们很自然想到了下面这种简单的模型 以空地为顶点 有冲突的空地间连边 我们可以得到右边的这个图 我们将每一行 每一列被墙隔开 且包含空地的连续区域称作 块 显然 在一个块之中 最多只能放一个机器人 我们把这些块编上号 同样 把竖直方向的块也编上号 例题2placetherobots zoj 模型二 1 2 3 4 5 例题2placetherobots zoj 模型二 1 2 3 4 5 把每个横向块看作x部的点 竖向块看作y部的点 若两个块有公共的空地 则在它们之间连边 于是 问题转化成这样的一个二部图 由于每条边表示一个空地 有冲突的空地之间必有公共顶点 所以问题转化为二部图的最大匹配问题 例题2placetherobots zoj 模型二 1 2 3 5 4 由于每条边表示一个空地 有冲突的空地之间必有公共顶点 所以问题转化为二部图的最大匹配问题 例题2placetherobots zoj 模型二 1 2 3 5 4 给定一个二分图g 在g的一个子图m中 m的边集 e 中的任意两条边都不依附于同一个顶点 则称m是一个匹配 选择这样的边数最大的子集称为图的最大匹配问题 maximalmatchingproblem 比较前面的两个模型 模型一过于简单 没有给问题的求解带来任何便利 模型二则充分抓住了问题的内在联系 巧妙地建立了二部图模型 为什么会产生这种截然不同的结果呢 其一是由于对问题分析的角度不同 模型一以空地为点 模型二以空地为边 其二是由于对原型中要素的选取有差异 模型一对要素的选取不充分 模型二则保留了原型中 棋盘 这个重要的性质 由此可见 对要素的选取 是图论建模中至关重要的一步 例题2placetherobots zoj 小结 例题3打猎 猎人要在n n的格子里打鸟 他可以在某一行中打一枪 这样此行中的所有鸟都被打掉 也可以在某一列中打 这样此列中的所有鸟都打掉 问至少打几枪 才能打光所有的鸟 建图 二分图的x部为每一行 y部为每一列 如果 i j 有一只鸟 那么连接x部的i与y部的j 该二分图的最大匹配数则是最少要打的枪数 学习目标 1 掌握二分图匹配 最大匹配基本概念 2 理解匈牙利算法 掌握用其求解二分图最大匹配 3 掌握实际问题的构图 即建立模型 重点和难点 因此本章的学习重点在掌握匈牙利算法原理 以便能在应用问题中正确使用 构图是难点 知识点 二分图 最大匹配 匈牙利算法 习题1 实现courses hdu10832 实现placetherobots zoj16543 2007年全国研究生数学建模试题d题 邮政运输网络中的邮路规划和邮车调度 提示 其中涉及到货郎担问题 可以用匈牙利算法 动态规划等模型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025西安某国有企业招聘笔试备考试题及答案解析
- 网络运营外包服务合同标准范本
- 项目风险评估报告研究
- 耕地质量评估与分级技术标准研究
- 个人借款合同电子版模板
- 学员培训合同范例
- 2025年智能家居安防产品竞争力分析可行性研究报告
- 交通规划2025年智慧交通系统发展策略研究报告
- 知网合同模板5篇
- 2025年G终端市场产品安全与合规性分析报告
- 商用厨房设计核心要素
- 2025年叉车司机(中级)考试试卷:操作技能与安全知识
- 小儿先天性心脏病护理常规
- 行政处罚法培训课件下载
- 个人理想与中国梦课件
- 室内装饰工程施工课件
- JG/T 9-1999钢椼架检验及验收标准
- JG/T 234-2008建筑装饰用搪瓷钢板
- 网络虚拟财产刑法保护的困境与突破:基于法理与实践的双重视角
- 股权代持协议(模板)8篇
- 《AI创意课件之设计》课件
评论
0/150
提交评论