![e5ffb4c1a7dd4d9218a7b525cc3f33df.png](https://i-blog.csdnimg.cn/blog_migrate/47182074db9ea6767ecfc42a1a325299.jpeg)
感谢 @Chao Xu 的指正。
首先声明一下,这里的等价指的是可以规约,而不是指相等,标题无误。
这个证明源自我跟 @hehelego spinach 的一次口胡,随便乱搞,口胡出了这么个证明。
![c68b046f5cf9493f50e77bfd766707b8.png](https://i-blog.csdnimg.cn/blog_migrate/479f36a8c335cd563b32bd6613ef984d.jpeg)
于是这篇文章就诞生了2333
我觉得这三个问题的内容应该不用我再写一遍了吧(逃
最大匹配:给定一个二分图G,在G的一个子图M中, M的边集{E}中的任意两条边都不交汇于同一个结点,则称M是一个匹配,|M|最大的匹配称为最大匹配。
最小顶点覆盖:假如选了一个点就相当于覆盖了以它为端点的所有边,最小顶点覆盖就是选择最少的点来覆盖所有的边。
最大独立集:选出一些顶点使得这些顶点两两不相邻,则这些点构成的集合称为独立集。找出一个包含顶点数最多的独立集称为最大独立集。
以上就是二分图上最经典的三个问题,也是这次所要围绕的主题。这三个问题的等价性证明在网上有很多,主要都是通过图论模型,采用构造和反证的方法证明,文字叙述有点长(懒得读),比较繁琐。
在这个代数证明中,将会从最小顶点覆盖出发,推出最大独立集,再推到最大匹配上,由于代数变形的等价性,所以并不需要再反向推回去,只要这么推一遍即可。
首先考虑如何将图论模型转化成代数模型。
对于最小顶点覆盖问题,它等价于一个线性规划问题。
设
则最小顶点覆盖可以用如下的线性规划来表示
这就成功地将图论模型转化到了代数模型上,下一步理所当然的就是代数变形
Part1 最小顶点覆盖
进行变量代换,令
其中
再赋予
考虑第一个不等式
然后考虑目标函数,可以发现
使减去的数最大相当于让尽可能多的
因为目标函数是
(我觉得还是挺简洁易懂的吧233)
Part2 最小顶点覆盖
现在推出了跟最大独立集等价,下一步是推到最大匹配上。
(变量代换?不存在的,我们想用变量代换证明,推了几个小时都没推出来)
冷静分析一波为什么简单的变量代换行不通,主要是以下两个原因:
1.现有的所有变量都是关于点的,跟边没有关系
2.原本的线性规划是求min,而最大匹配是求max
(凉了凉了,大家都散了吧)
所以现在我们要做的方向就是,颠覆现有的全部变量,将min转化到max上。
没错,就是原问题的对偶问题。
首先现在有了原问题
注意这里去除了0-1规划的限制,只要求变量非负。首先可以发现在这样的限制下,变量的取值只能是在
令
写出它的对偶问题
显然这两个问题都具有最优解,根据强对偶性定理,对偶问题与原问题的最优解相等。
考虑对偶问题的实际意义。根据第一个式子,可以得到
易知,这个对偶问题就是最大匹配。所以便得到了二分图上另一条重要的结论,最小顶点覆盖等于最大匹配。
现在来证明最优解下,所有变量的取值都是整数,否则刚刚的推理是不成立的。
首先做一些定义,对于二分图中的一条边
构造这样一个求二分图
其中该算法中第7行的
在这个算法当中,我们每次给
emm到这里不得不说句真香,这个证明方法已经相比纯图论的证明复杂多了。
我知道Part2很(bu)清(you)真(hao),所以在这里再讲一下不用强对偶性定理的证明方法。
考虑最小顶点覆盖的线性规划对应的网络流模型,它实际上对应了如下图所示的最小割模型
![942212bdb5cd4703434c72fa07102785.png](https://i-blog.csdnimg.cn/blog_migrate/63a1da43389af5d1ff216214a0ed1563.jpeg)
S是源点,T是汇点,图是我随便脑补出来的,理解到意思就好233
根据线性规划的限制,
不难发现,这个网络流的最大流对应的就是二分图的最大匹配,于是就同样得到了最小顶点覆盖等于最大匹配。
另外补充一下,最大流最小割定理实际上是强对偶性定理在网络流问题上的特化形式,最大流和最小割是一组对偶的问题,因而这两个证明方法在本质上是相同的,并无两样。