二分图定理的一些证明:
1.最小顶点覆盖
定义:能覆盖所有的边的最少顶点数(或是最小点权和)
最小顶点覆盖 = 最大匹配数
证明:假设最大匹配是M。为了求最少的点让每条边都至少和期中一个点关联。 M个点是足够的。就是说他们覆盖最大匹配的那M条边后,假设有某边没被覆盖,那么把它加入后会得到一个更大的匹配,出现矛盾。 M个点是必需的。匹配的M条边,由于他们两两无公共点,就是说至少有M个点才能把他们覆盖,所以啊,最小顶点覆盖 = 最大匹配数 。
2.最大独立点集
定义:在二分图中,选择一些点,使得这些点两两没有边直接相连。
最大独立点集=总点数-最小顶点覆盖
证明:可以这么想,最小顶点覆盖里的每一个点,会去尽可能多的覆盖更多的边,这样一来,这个点覆盖的边的对面的一群点,就全会被算到最大独立点集中,如果最大独立点集中的点有边,那最大匹配数会更优,最小顶点覆盖 也会更大,所以最大独立点集=总点数-最小顶点覆盖。
3.DAG最小路径覆盖
定义:能覆盖所有点的最少路径数
最小路径覆盖 = 原图上的点数 - 最大匹配数
证明:先说一下建图
DAG转化成二分图:将一个点拆分成两个点:入点和出点,如果A,B之间有边,就把A的出点和B的入点相连。
RT↓
这张图建完转成二分图是这个样子(且已经匹配完
匹配完了就是这个样子:
三种颜色即代表了三条路径
可以这样想:如果图不连通,最小路径覆盖即为点数,每多一次匹配,会多覆盖一个点,最小路径数-1。又因为每个点只能用一次,所以最小路径覆盖 = 原图上的点数 - 最大匹配数 。
原文地址:https://www.cnblogs.com/enceladus-return0/p/10030030.html