排版幻灯片

以下考虑完备匹配的必须边(非完备匹配要用到网络流)

给定一张二分图,其最大匹配方案不一定是唯一的。若任何一个最大匹配方案的匹配边都包括(x,y),则称(x,y)为二分图匹配的必须边

以下证明假设我们已经求出了一个最大匹配

在完备匹配时,一条边(x,y)是必须边,当且仅当满足以下两个条件:

1.在当前这个完备匹配的状态下,(x,y)是匹配边

2.在当前这个完备匹配的状态下,直接从图中删除(x,y)这条边之后,不能再找一条增广路,其起点是x,终点是y

第一个条件显然,下面的证明就忽略了

必要性。利用反证。如果去掉(x,y)后,还能再找到这么一条增广路,那么我们把这条增广路取反,显然匹配数加一,此时等于最大匹配,而且这个最大匹配不再包含(x,y)这一条边,所以(x,y)不是必须边,矛盾,故不能找到这么一条增广路

充分性。仍然利用反证。如果(x,y)不是必须边,那么就说明去掉(x,y)后的图的最大匹配仍然是完备匹配,我们不妨重新排序把xy这两个点放在最后,并且认为前面在跑匈牙利算法的时候跑出来的匹配情况与最开始的完备匹配去掉(x,y)后剩下的边的匹配情况相同(匈牙利算法是不看顺序的,而且只执行一遍,故这个换序不会影响结果),那么这个匈牙利跑出来的结果应该是完备匹配。我们在匈牙利的最后,考虑xy这两个点(此时,现在的这个图与最开始的完备匹配的那个图的差距仅仅是少了(x,y)这一条边),如果找不到xy的增广路,那么x肯定匹配失败,故匈牙利跑出来的结果不再是最大匹配,矛盾,所以(x,y)是必须边

如果我们把二分图中的非匹配边看作从左部到右部的有向边,把二分图中的匹配边看作从右部到左部的有向边,构成一张新的有向图,那么原图中从xy有增广路等价于新图中存在从xy的路径。这一个用充分必要性证明就可以了,比较简单

因此,必须边的判定条件是:(x,y)是原图的匹配边,并且xy两点在新图中属于不同的SCC(在相同的SCC就说明存在一条增广路;注意y一定可以走到x

posted @   最爱丁珰  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示