Konig定理学习笔记
内容
Konig 定理是一个关于二分图的定理。
其内容为:一个二分图的最大匹配边数等于其最小点覆盖数。
证明
从最大匹配入手,考虑最大匹配被寻找的过程。
无论是 Dinic 还是匈牙利算法,其本质都是寻找一条“增广路”。这条增广路是形如“未选边-已选边-未选边-......-已选边-未选边”的形式,以一条未选边结尾,并且这条未选边两个端点都没有被选择。
我们钦定从一个未被匹配的右部点开始增广。如果在一张已经找到最大匹配的图上尝试增广,那么这条增广路将以“已选边”结尾(或者一条边都没有),也就是在右部点终止增广。
证明:
反证法,证明其一定不会在左部点终止。
考虑什么情况下有可能在左部点终止,即通过一条未选边来到一个左部点,并且没有与这个点为端点的一选边。
那么此时路径的未选边数大于已选边数,同时可以交换路径上所有的未选边和已选边。通过此操作会使这张图的最大匹配数更大,那么现有的匹配方案不是该图的最大匹配方案,与假设矛盾。
如下图,其被标蓝的点为所有可能增广路的经过点,红色的边为一组最大匹配的边。(图转)
根据图片,我们可以发现一些结论:
- 左部点所有被标记的点均为匹配点。
证明:若该点不是匹配点,那么增广路可以在此处终止,产生更大匹配,与增广路只能在右部点终止相违。
- 右部点所有没有被标记的点均为匹配点。
证明:若某个右部点不为匹配点,则增广路可以从此处开始,该点将会被标记。
- 所有匹配边所连接的两个点只会同时被标记或都没有被标记。
证明:
当左端点被标记时,由于增广路过程中左部点到右部点经过的边均为匹配边,因此可以通过匹配边标记右段点。
当左端点没有被标记时,由于右端点是匹配点,所以增广路不会从此处开始。因为一个点至多只会被一条边匹配,所以右端点只有可能从左端点转移而来,而左端点没有被遍历,因此右端点也不会被遍历。
如下图,其被标红的点为这个图的一组点覆盖,其余同上幅图。(图转)
这组最小点覆盖的构造方式:选取左部点所有被标记的点以及右部点所有没有被标记的点。
分两方面证明这是最小点覆盖:点覆盖和最小。
对于匹配边,由上述结论可知一条匹配边的两个端点标记情况相同。对于连接标记点的匹配边,会被选择的左部点所覆盖。对于连接非标记匹配点的边,会被选择的右部点所覆盖。
对于非匹配边,可以分为如下四种情况:
左端点被标记,右端点被标记:形式同匹配边。
左端点未被标记,右端点未被标记:形式同匹配边。
左端点被标记,右端点未被标记:可通过左端点覆盖。
左端点未被标记,右端点被标记:该情况不可能出现。因为在增广过程中右端点到左端点的边为非匹配边,可以通过右端点来标记左端点。
至此,已经证明该组点是一组点覆盖。
由上文结论得:所有选取的点均为匹配点。
对于每个被选择的左部点,其一定是某条增广路的中间点,因此一定会与一条匹配边相连。
对于每个被选择的右部点,其必定与一条匹配边相连,否则其可以作为一条增广路的起点。
又因为一个点最多与一条匹配边相连,所以选择的点数不少于匹配的边数。
由点覆盖证明过程知:一条匹配边恰好被一个选择点覆盖,所以匹配的边数不少于选择的点数。
所以匹配的边数与选择的点数相等。
由于最大匹配的边端点不重叠,因此最小点覆盖的点数至少为最大匹配的边数。
综上,最小点覆盖的点数即为最大匹配的边数。
一种另类的证明方法
构建网络流模型。
源点向每个左部点连流量为 \(1\) 的边,左部点向原图中有连边的右部点连流量为 \(\infin\) 的边,右部点向汇点连流量为 \(1\) 的边,最小割等于最大流。