匹配、覆盖、独立集、二分图与网络流

概念:

设图 $G = {V, E}$

  • 匹配:在$G$中两两没有公共端点的边集合$M\subseteq E$
  • 边覆盖:$G$中任意顶点都至少是$F$中某条边的端点的边集合$F\subseteq E$
  • 独立集:在$G$中两两互不相连的顶点集合$S\subseteq V$
  • 顶点覆盖:$G$中的任意边都有至少一个端点属于$S$的顶点集合$S\subseteq V$

定理:

  1. 对于不存在独立点的图,$|\text{最大匹配数}|+|\text{最小边覆盖}|=|V|$
  2. $|\text{最大独立集}|+|\text{最小顶点覆盖}|=|V|$
  3. 对于二分图,$|\text{最大匹配}| = |\text{最小顶点覆盖}|$

不严谨的理解:

一:

可以想象,最小边覆盖可以通过最大匹配加边来完成,但是要加多少条边呢?

假设图$G$的最大匹配为$M$,那么这时还有$|V|-2\times|M|$个点没有覆盖,这时需要$|V|-2\times |M|$条边进行覆盖这些点。可以贪心的想,要尽可能的用一条边覆盖尽量多的点,但是一条边覆盖两个点的情况是不存在的,因为如果一条边可以覆盖两个新的点,那么当前的匹配就不是最大匹配了,与假设矛盾。所以每个点都要加一条边进行覆盖。

由此可知,图G的最小边覆盖为:$|F| = |M|+|V|-2\times|M| = |V|-|M|$
移项可得:$|F|+|M|=|V|$

关于为什么不能有孤立的点呢,因为这些孤立点一条边都没有,最后$|V| > |F|+|M|$


二:

可以这样理解,现在图G要删除一些点,构造最小顶点覆盖,要删除哪些点呢?

一个思路是删除一组两两独立的点,因为这样删除点,不会导致一条边的两个端点都被删去。如果一条边的两个端点都被删去了,那么删去的点也就不是互相独立的了。这样要构造最小的顶点覆盖,就要尽量多的删去两两独立的点,那么就是$V$删去最大独立集了。


三:暂时还没找到比较容易理解的方式