K?nig定理及其证明(感性理解

2022/2/22 6:23:48

本文主要是介绍K?nig定理及其证明(感性理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

先附上参考博客

二分图最大匹配的König定理及其证明 | Matrix67: The Aha Moments 作者:Matrix67

对其中一些点做出一定感性解释...(离散真就没学)

 匈牙利算法需要我们从右边的某个没有匹配的点,走出一条使得“一条没被匹配、一条已经匹配过,再下一条又没匹配这样交替地出现”的路(交错轨,增广路)。但是,现在我们已经找到了最大匹配,已经不存在这样的路了。

 

为什么不存在 因为我们假设存在这样的一条增广路那么增广路上未标记的边的个数就比已标记的边的个数多一个,那么原先所谓的最大匹配就不是最大匹配了(一个反证法的思路

我们给所有这样的点打上记号:从右边的所有没有匹配过的点出发,按照增广路的“交替出现”的要求可以走到的所有点(最后走出的路径是很多条不完整的增广路)。那么这些点组成了最小覆盖点集:右边所有没有打上记号的点,加上左边已经有记号的点。

这里为什么组成了点覆盖集比较好理解,从右边开始的增广路的每一条边若选择左边都能一个点覆盖两条边,从右侧出发而未被选择的边只能是无交错路的边始发(因为已经遍历了所有未在匹配上的点而剩下的点即要么灰边始发了就遇不到蓝边了;要么蓝边始发)而这些点也不可能再从左边贪心的一个点占两条边(因为如果还能占两条边那么又说明构成了增广路或交错路 又矛盾了)而对于左侧那些没有到达过的点,与他们连接的也必然是灰边(否则又与不能构成增广路矛盾)那么这样只能选择现在未被标记的点;如此便构成了一个点覆盖。

同样为什么有m个点也好理解,参考上述扯淡理解 每个被选中的点都为蓝边的一点,而另外一点也必没被选中,那么就有m个点了。

至于其为最小,上述感性理解中提到其看上去为一种贪心的策略,感觉原博客的证明更为严谨...

 



这篇关于K?nig定理及其证明(感性理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程