二分图的一些概念
二分图
-
不存在长度为奇数的环
-
为了描述方便将两个集合分成左和右两个部分,所有匹配边都是横跨左右两个集合,可以假想成男女配对。
-
增广路径:
从非匹配点出发,经历非匹配边,匹配边,非匹配边,匹配边,...,非匹配点的一条路径。 -
二分图的一组匹配\(S\)是最大匹配,当且仅当图中不存在\(S\)的增广路。
-
求二分图最大匹配使用匈牙利算法(增广路算法)。
最小点覆盖、最大独立集、最小路径点覆盖(最小路径点覆盖)
\(最大匹配数 = 最小点覆盖 = 总点数 - 最大独立集 = 总点数 - 最小路径点覆盖\)
-
点覆盖:每一条边的两个点至少有一个点被选中
-
最小点覆盖:就是选出点集至少能涵盖所有的边
-
最大独立集:从图中选出最多的点构成一个点集,集合内任意两个点都没有边。
\(在二分图中求最大独立集等价于去掉最少的点,将所有的边都破坏掉,剩下的点\)
\(等价于找总点数减去最小点覆盖等价于总点数减去最大匹配,\)
\(设最大匹配是m,总点数为n,那么最大独立集为n - m\)
-
最大团:从图中选出最多的点构成一个点集,集合内任意两个点都有边,与最大独立集互补。
-
最小路径点覆盖:在有向无环图中\((DAG)\),用最少的互不相交的路径将所有点覆盖(互不相交指的是点和边都不想交)。
-
最小路径重复点覆盖:
求出传递闭包的新图\(G'\),原图的最小路径重复点覆盖就等于新图的最小路径点覆盖。(直觉的想一想:原图有重复的点做一遍传递闭包之后就可以直接连一条边就跳过去了,那么原图的覆盖方式都可以变成新图的不重复的覆盖方式)