浅谈二分图的最大匹配和二分图的KM算法

二分图还可以,但是我不太精通。我感觉这是一个很烦的问题但是学网络流不得不学它。硬啃吧。

人比较蠢,所以思考几天才有如下理解。希望能说服我或者说服你。

二分图的判定不再赘述一个图是可被划分成一个二分图当且仅当其之中不存在奇环、

最大匹配:两点在一起这就是匹配而我们要求出一张图中的最大匹配。寻找增广路。

通俗一点就是不断看看哪个点还能向外延伸,对于一个点其找到一个匹配点那就匹配上去找不到的话就看看占用它的匹配点的点谁还能向外延伸如果可以就向外延伸一下。

上述就是非常简单明了的最大匹配求法。但是我时常会注意到这个算法的正确性,也就是说也就是说有增广路那便有了不存在谁占到当前位置更优的理论。

因为所有点匹配到某个点只有先来后到的关系没有谁比谁更优的道理。。

接下来是二分图带权匹配的KM算法:如果没有这个算法或许我会去学习费用流,或者直接爆搜。。但是虽然这个算法的局限性非常的大而且易忘 还是学习一下吧费不了多少时间。

具体看算法进阶指南。下面是我对KM算法的理解。多么痛的领悟。

KM算法的正确性:

1 KM算法要求的是图中最大权匹配是完备匹配也就是说都匹配上了。我想这个条件要不是题目中自己给出了,要不就是边权都是正值且每个点想其他点都有连边如本题,此时这个性质是可以被保证的。

2 这个算法是围绕着顶点的定标匹配的我来定性的描述这个算法的过程:首先每个点都和自己最大的边权进行匹配,然后发现有些点没有匹配对象的话更换交错树中定标的值然后再次寻找增广路。当然新能沟通的路是边权变化最小的。

3 经过我长期的研究我终于把我的反例证明出来了我的意思是指是否存在一种情况使得当前直接点匹配上比两个已匹配边更换匹配然后是当前点得到匹配更优,这个主意很容易走到这个误区经过我画的多张图我发现出现这种情况的是不存在完备匹配的情况的否则皆可以利用KM网上的证明方法来证明。

至于核心就是一张相等子图上的完备匹配就是最大的 可以这样来思考:比如在完备匹配还未形成之时由于最大权匹配是完备匹配所以当前肯定不是最优解。我们放出来一条边(或多条)对当前匹配边的权值影响最小的也就是最接近答案的一组边然后再次匹配直至达到完备匹配。为什么这样是最大的?可以证明这样做保证了最初匹配的边权一直没有丧失且一直不断加边,而且比加其他的边更优。

综上得到答案一定是最优的。如果你真的不理解那么就放弃吧这个局限性很大不如跑费用流。。

上一篇:二分图学习记 之 KM算法 二分图最大权完美匹配。


下一篇:km算法(二分图最大权匹配)学习