浅谈二分图的最大匹配和二分图的KM算法
二分图还可以,但是我不太精通。我感觉这是一个很烦的问题但是学网络流不得不学它。硬啃吧。
人比较蠢,所以思考几天才有如下理解。希望能说服我或者说服你。
二分图的判定不再赘述一个图是可被划分成一个二分图当且仅当其之中不存在奇环、
最大匹配:两点在一起这就是匹配而我们要求出一张图中的最大匹配。寻找增广路。
通俗一点就是不断看看哪个点还能向外延伸,对于一个点其找到一个匹配点那就匹配上去找不到的话就看看占用它的匹配点的点谁还能向外延伸如果可以就向外延伸一下。
上述就是非常简单明了的最大匹配求法。但是我时常会注意到这个算法的正确性,也就是说也就是说有增广路那便有了不存在谁占到当前位置更优的理论。
因为所有点匹配到某个点只有先来后到的关系没有谁比谁更优的道理。。
接下来是二分图带权匹配的KM算法:如果没有这个算法或许我会去学习费用流,或者直接爆搜。。但是虽然这个算法的局限性非常的大而且易忘 还是学习一下吧费不了多少时间。
具体看算法进阶指南。下面是我对KM算法的理解。多么痛的领悟。
KM算法的正确性:
1 KM算法要求的是图中最大权匹配是完备匹配也就是说都匹配上了。我想这个条件要不是题目中自己给出了,要不就是边权都是正值且每个点想其他点都有连边如本题,此时这个性质是可以被保证的。
2 这个算法是围绕着顶点的定标匹配的我来定性的描述这个算法的过程:首先每个点都和自己最大的边权进行匹配,然后发现有些点没有匹配对象的话更换交错树中定标的值然后再次寻找增广路。当然新能沟通的路是边权变化最小的。
3 经过我长期的研究我终于把我的反例证明出来了我的意思是指是否存在一种情况使得当前直接点匹配上比两个已匹配边更换匹配然后是当前点得到匹配更优,这个主意很容易走到这个误区经过我画的多张图我发现出现这种情况的是不存在完备匹配的情况的否则皆可以利用KM网上的证明方法来证明。
至于核心就是一张相等子图上的完备匹配就是最大的 可以这样来思考:比如在完备匹配还未形成之时由于最大权匹配是完备匹配所以当前肯定不是最优解。我们放出来一条边(或多条)对当前匹配边的权值影响最小的也就是最接近答案的一组边然后再次匹配直至达到完备匹配。为什么这样是最大的?可以证明这样做保证了最初匹配的边权一直没有丧失且一直不断加边,而且比加其他的边更优。
综上得到答案一定是最优的。如果你真的不理解那么就放弃吧这个局限性很大不如跑费用流。。
浅谈二分图的最大匹配和二分图的KM算法的更多相关文章
- 【模板】二分图最大权完美匹配(KM算法)/洛谷P6577
题目链接 https://www.luogu.com.cn/problem/P6577 题目大意 给定一个二分图,其左右点的个数各为 \(n\),带权边数为 \(m\),保证存在完美匹配. 求一种完美 ...
- 浅谈最长上升子序列(O(n*logn)算法)
今天GM讲了最长上升子序列的logn*n算法,但没讲思路... 我看了篇博客,发现-- 说的有道理!!! 首先,举例子: a[7]={1,2,4,3,6,7,5}(假设以1开头) 很明显,LIS=5: ...
- 算法笔记_137:二分图的最大匹配(Java)
目录 1 问题描述 2 解决方案 1 问题描述 何为二分图的最大匹配问题? 引用自百度百科: 首先得说明一下何为匹配: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于 ...
- 《Machine Learning in Action》—— 浅谈线性回归的那些事
<Machine Learning in Action>-- 浅谈线性回归的那些事 手撕机器学习算法系列文章已经肝了不少,自我感觉质量都挺不错的.目前已经更新了支持向量机SVM.决策树.K ...
- Going Home(最大匹配km算法)
Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20115 Accepted: 10189 Desc ...
- 虚拟化构建二分图(BZOJ2080 题解+浅谈几道双栈排序思想的题)
虚拟化构建二分图 ------BZOJ2080 题解+浅谈几道双栈排序思想的题 本题的题解在最下面↓↓↓ 不得不说,第一次接触类似于双栈排序的这种题,是在BZOJ的五月月赛上. [BZOJ4881][ ...
- hdu3729 I'm Telling the Truth (二分图的最大匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=3729 I'm Telling the Truth Time Limit: 2000/1000 MS (Java/ ...
- [HDOJ3718]Similarity(KM算法,二分图最大匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3718 题意:有一堆答题情况和正确答案,问每一个答题情况的正确率最大是多少. 给每一对答案和答题情况的字 ...
- POJ 2584 T-Shirt Gumbo (二分图多重最大匹配)
题意 现在要将5种型号的衣服分发给n个参赛者,然后给出每个参赛者所需要的衣服的尺码的大小范围,在该尺码范围内的衣服该选手可以接受,再给出这5种型号衣服各自的数量,问是否存在一种分配方案使得每个选手都能 ...
随机推荐
- SQL基础随记2 视图 存储过程
SQL基础随记2 视图 存储过程 View CREATE/ALTER/DROP VIEW ViewName as SELECT(...) 可以在视图的基础上继续创建视图,即,将之前创建的视图当做表 ...
- 关于ganymed-ssh2版本262和build210的SCPClient类的区别
ganymed-ssh2是通过java使用ssh连接服务器的工具库,先上两个版本的pom文件配置: <!--ssh连接linux--> <!-- https://mvnreposit ...
- 「疫期集训day12」阴雨
我们走进了泥泞的雨林----阿尔贡森林里艰难前进的士兵 今天考试一般,T1T2签到题没啥好说的,剩下三个小时全肛T3(我脑子有泡,前几天刚做了一道类似T4的难题,公式更难推),9:00->10: ...
- Face The Right Way思维。。。
题目再次链接 题意: 已知01序列a,求进行定长子串取反的最少操作次数,以及最少时的定长. 分析: 首先,先想一想怎么暴力吧.这样想:要保证最小,那么必然不会对同一个区间反转两次,而在k一定时,则不会 ...
- Xshell6 优化
Xshell6 优化
- 不会用Java Future,我怀疑你泡茶没我快, 又是超长图文!!
你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough ...
- [BSidesCF 2020]Had a bad day
[BSidesCF 2020]Had a bad day 测试 一些猫狗的图片加上url有传参,测试到文件包含时报错了. 使用php伪协议: php伪协议 php://fliter/read=conv ...
- 机器学习实战基础(十七):sklearn中的数据预处理和特征工程(十)特征选择 之 Embedded嵌入法
Embedded嵌入法 嵌入法是一种让算法自己决定使用哪些特征的方法,即特征选择和算法训练同时进行.在使用嵌入法时,我们先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据权值系数从大 ...
- IOS中input键盘事件keyup 的兼容解决办法
用input监听键盘keyup事件,在安卓手机浏览器中是可以的,但是在ios手机浏览器中很慢,用输入法输入之后,并未立刻相应keyup事件. 解决办法: 在ios设备上可以用html5的input事件 ...
- Java数组最大值和最小值
package com.mybatis.demo.exercise; /** * @author yinsenxin */ public class ArrayMaxAndMin { public s ...