第5-1课:匈牙利算法与二分图的最大匹配
在图论中,二分图(又称二部图)是一个特殊的模型,关于二分图有很多概念,比如匹配、完全匹配、最大匹配等。这一课我们来介绍一种求二分图的最大匹配的匈牙利算法,匈牙利算法原理是公开的,人们使用匈牙利算法都是根据自己问题域的数据模型,利用算法原理实现具体的算法。这一课我们的关注点仍然是怎么根据算法原理设计数据模型,并实现算法。
二分图的各种匹配
首先介绍一下二分图,二分图 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课:匈牙利算法与二分图的最大匹配相关推荐
- 用匈牙利算法求二分图的最大匹配
转载大神的!! 什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到.二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识):第二种就是我现在要讲的匈牙利算 ...
- 匈牙利算法:二分图的最大匹配
传送门 题意:给定一个二分图,其中左半部包含n1个点(编号1 ~ n1),右半部包含n2个点(编号1~n2),二分图共包含m条边. 数据保证任意一条边的两个端点都不可能在同一部分中. 请你求出二分图的 ...
- 【二分图算法】手把手教你学会:染色法(判断二分图)、匈牙利算法(二分图的最大匹配)
博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作.目前在学习和分享:算法.数据结构.Java等相关知识. 博主主页: @是瑶瑶子啦 所属专栏: 算法 :该专栏专注于蓝桥杯和ACM等算法竞赛
- 匈牙利算法 求二分图最大匹配
匈牙利算法 1. 二分图 二分图: 又称作二部图,是图论中一种特殊模型.设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中每条边所关联的两个顶点 i 和 j 分别属 ...
- 匈牙利算法解决二分图匹配问题
匈牙利算法是由匈牙利数学家Edmonds于1965年提出.匈牙利算法是基于Hall定理中充分性证明的思想,它是二分图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的 ...
- 51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题
题目: 题目已经说了是最大二分匹配题, 查了一下最大二分匹配题有两种解法, 匈牙利算法和网络流. 看了一下觉得匈牙利算法更好理解, 然后我照着小红书模板打了一遍就过了. 匈牙利算法:先试着把没用过的左 ...
- 【7.17总结】 匈牙利算法(二分图最大匹配)
二分图就是把图的点集分成X和Y两个集合且连接每条边的两个顶点分别在两个集合. 匹配是指图的边集的一个子集,其中任意两条边没有相同的顶点. 最大匹配就是找到一个匹配使得匹配里面的边数最多. 增广路径就是 ...
- 匈牙利算法求解二分图最大匹配问题
这是一个非常简单的问题,描述如下,给你两部分的点,问你最大匹配数是多少. 简单描述一下算法流程,首先我们先匹配左边,蓝1先匹配红2:接下来到蓝2,只能匹配红2,但是这这时候发现红2已经有主了,根据匈牙 ...
- Hungary(匈牙利算法)——二分图最大匹配
在复习匈牙利算法的时候,发现这么一篇介绍匈牙利算法的文章,非常通俗易懂,所以就借鉴过来了. 复杂度:邻接矩阵:O(v^3)邻接表:O(V*E) 附上链接:趣写算法系列之--匈牙利算法 下面就附上代码吧 ...
最新文章
- CVPR 2020 SLAM挑战赛冠军方案解读,搞定超难数据集TartanAir
- ATL的GUI程序设计(前言)
- PRML-系列一之1.1
- Python 爬取 3000 部电影,最具人气烂片排行榜出炉!
- amazon linux 用户名,如何在Amazon AWS上设置一台Linux服务器
- 三个数比大小c语言_C语言必学知识点【结构体】用法很多,坑也很多!
- UPCA条形码生成器
- linux centos如何切换时区,如何在CentOS服务器上更改时区?
- 个人申请美国B1/B2商旅签证的完整流程
- 分布式、集中式存储与san、nas
- 我参加NVIDIA Sky Hackathon 环境安装(编程环境)
- tailscale自建derper服务器中转,使用自定义端口
- 同步110序列检测电路
- java.security.cert.CertificateException: X.509 not found,X.509证书找不到
- 网络规划设计师复习笔记--网络需求分析
- 小米android隐藏游戏,MIUI8小米手机开启隐藏选项
- Python爬虫入门实战2:获取CSDN个人博客文章基础信息
- 最新影视小程序对接苹果cms源码无授权版+详细教程
- jmeter 后置处理器
- Windows新建域时本地administrator账户密码不符合要求解决办法