在图论中,二分图(又称二部图)是一个特殊的模型,关于二分图有很多概念,比如匹配、完全匹配、最大匹配等。这一课我们来介绍一种求二分图的最大匹配的匈牙利算法,匈牙利算法原理是公开的,人们使用匈牙利算法都是根据自己问题域的数据模型,利用算法原理实现具体的算法。这一课我们的关注点仍然是怎么根据算法原理设计数据模型,并实现算法。

二分图的各种匹配

首先介绍一下二分图,二分图 G=(V,E) 是这样的一个图,它的顶点集合 V 可以划分为 X 和 Y 两个集合,它的边集合 E 中的每条边都有一个端点在 X 集合,另一个端点在 Y 集合。判断二分图的关键是看点集是否能分成两个独立的点集,如图(1-a)就是一个二分图,如果一个图的边形成了三角形,那它一定不是二分图,图(1-b)就不是二分图。

图(1)二分图识别示意图

匹配

对于一个二分图 G=(V,E) 中部分边组成的子集 M,如果 M 的边集中任意两条边都不依附于同一个顶点,则称 M 是一个匹配,怎么理解这句话呢?首先匹配是一个边的集合,并且不唯一;其次,匹配 M 中没有任何两条边有公共的顶点。以图(1-a)所示的二分图为例,图(2-a)和图(2-b)中红色的边集就是二分图的两个匹配,而图&

第5-1课:匈牙利算法与二分图的最大匹配相关推荐

  1. 用匈牙利算法求二分图的最大匹配

    转载大神的!! 什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到.二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识):第二种就是我现在要讲的匈牙利算 ...

  2. 匈牙利算法:二分图的最大匹配

    传送门 题意:给定一个二分图,其中左半部包含n1个点(编号1 ~ n1),右半部包含n2个点(编号1~n2),二分图共包含m条边. 数据保证任意一条边的两个端点都不可能在同一部分中. 请你求出二分图的 ...

  3. 【二分图算法】手把手教你学会:染色法(判断二分图)、匈牙利算法(二分图的最大匹配)

    博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作.目前在学习和分享:算法.数据结构.Java等相关知识. 博主主页: @是瑶瑶子啦 所属专栏: 算法 :该专栏专注于蓝桥杯和ACM等算法竞赛

  4. 匈牙利算法 求二分图最大匹配

    匈牙利算法 1. 二分图 二分图: 又称作二部图,是图论中一种特殊模型.设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中每条边所关联的两个顶点 i 和 j 分别属 ...

  5. 匈牙利算法解决二分图匹配问题

    匈牙利算法是由匈牙利数学家Edmonds于1965年提出.匈牙利算法是基于Hall定理中充分性证明的思想,它是二分图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的 ...

  6. 51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题

    题目: 题目已经说了是最大二分匹配题, 查了一下最大二分匹配题有两种解法, 匈牙利算法和网络流. 看了一下觉得匈牙利算法更好理解, 然后我照着小红书模板打了一遍就过了. 匈牙利算法:先试着把没用过的左 ...

  7. 【7.17总结】 匈牙利算法(二分图最大匹配)

    二分图就是把图的点集分成X和Y两个集合且连接每条边的两个顶点分别在两个集合. 匹配是指图的边集的一个子集,其中任意两条边没有相同的顶点. 最大匹配就是找到一个匹配使得匹配里面的边数最多. 增广路径就是 ...

  8. 匈牙利算法求解二分图最大匹配问题

    这是一个非常简单的问题,描述如下,给你两部分的点,问你最大匹配数是多少. 简单描述一下算法流程,首先我们先匹配左边,蓝1先匹配红2:接下来到蓝2,只能匹配红2,但是这这时候发现红2已经有主了,根据匈牙 ...

  9. Hungary(匈牙利算法)——二分图最大匹配

    在复习匈牙利算法的时候,发现这么一篇介绍匈牙利算法的文章,非常通俗易懂,所以就借鉴过来了. 复杂度:邻接矩阵:O(v^3)邻接表:O(V*E) 附上链接:趣写算法系列之--匈牙利算法 下面就附上代码吧 ...

最新文章

  1. CVPR 2020 SLAM挑战赛冠军方案解读,搞定超难数据集TartanAir
  2. ATL的GUI程序设计(前言)
  3. PRML-系列一之1.1
  4. Python 爬取 3000 部电影,最具人气烂片排行榜出炉!
  5. amazon linux 用户名,如何在Amazon AWS上设置一台Linux服务器
  6. 三个数比大小c语言_C语言必学知识点【结构体】用法很多,坑也很多!
  7. UPCA条形码生成器
  8. linux centos如何切换时区,如何在CentOS服务器上更改时区?
  9. 个人申请美国B1/B2商旅签证的完整流程
  10. 分布式、集中式存储与san、nas
  11. 我参加NVIDIA Sky Hackathon 环境安装(编程环境)
  12. tailscale自建derper服务器中转,使用自定义端口
  13. 同步110序列检测电路
  14. java.security.cert.CertificateException: X.509 not found,X.509证书找不到
  15. 网络规划设计师复习笔记--网络需求分析
  16. 小米android隐藏游戏,MIUI8小米手机开启隐藏选项
  17. Python爬虫入门实战2:获取CSDN个人博客文章基础信息
  18. 最新影视小程序对接苹果cms源码无授权版+详细教程
  19. jmeter 后置处理器
  20. Windows新建域时本地administrator账户密码不符合要求解决办法

热门文章

  1. 萧石心:受用一生的话
  2. python matplotlib 绘制不等距数据
  3. textbox 只能输入数字
  4. 全球十大长寿食物排行榜
  5. 关于打开网页弹出am.189so.cn,卸载360浏览器用其它浏览器就好了
  6. 南京大学软件学院2019夏令营小记
  7. 文件服务器数据归档,数字化转型之数据清理与归档
  8. 在Eclipse中使用Junit测试代码
  9. python 视频分段_Python中使用moviepy进行视频分割
  10. 百度网盘 yundetectservice.exe可以禁用关闭吗