二分图总结
二分图大概有一下几个性质:
1.点覆盖集:
集合中的点:图G中每一条边的至少有一个顶点在这个集合中;
2.点独立集:
集合中的点:任意2个点在图G中都不相邻。
3.路径覆盖:
在图中找一些路径(注意是路径不是边!!),这些路径覆盖图中所有的顶点,每个顶点都只与一条路径相关联。
a为覆盖集,b为独立集。
图1
4.最小点覆盖集:
集合中点最少的覆盖集。
最小覆盖数=最大匹配数。
覆盖集与独立集互补。(如上图1)
5.最大点独立集:
集合中点最多的独立集。
方法:最大独立数=点数n-最大匹配数。
6.最小路径覆盖:
在所有的路径覆盖中,路径个数最小的就为最小路径覆盖数。
方法:最小路径覆盖数=总结点个数-最大匹配数。
7.最小点权覆盖集:
带点权的图G中,权值最小的覆盖集。
方法:最大流建图求最小割。
正的与源点相连,负的与汇点相连,建图。
c(v,u)=INF,(s,v),(u,t)中至少一条边在最小割中,正好与点覆盖集限制条件的形式相符。
而目标是最小化点权之和,恰好也是最小割的优化目标。
例题:poj2125 题解:http://www.cnblogs.com/sweat123/p/4924380.html
8.最大点权独立集:
带点权的图G中,权值最大的独立集。
最大点独立集是最小点覆盖集的对偶问题,所以最大点权独立集=总的权值-最小点权覆盖集。
例题:poj3692 题解:http://www.cnblogs.com/sweat123/p/4925629.html
9.最优完备匹配:
二分图中每个点有权值,|x|=|y|=匹配数时,我们称该匹配方案为完备匹配,所有匹配边的权和最大,记做最优完备匹配。
方法:KM算法。