二分图判定
使用黑白染色法,把与一个点相连的所有节点都染成与这个点不同的颜色,这样点就会被分为黑与白两个集合,如果说染色时出现了冲突,比如两个相连的点颜色均为黑色,那么黑点集中出现了边,此图便不是二分图
二分图最大匹配
任意两条边都没有公共端点的边集成为图的一组匹配,二分图中,对于包含边数最多的一组匹配称为二分图的最大匹配。匹配上的点称为匹配点,相应的有匹配边,非匹配边/点
增广路
对于一组匹配S,若二分图存在一条连接两个非匹配点的路径path,使得非匹配边与匹配边交替出现,则path就是匹配S的增广路,又称交错路
增广路具有的性质
- 长度length为奇数
- 路径上第1,3,5…length条边(第奇数条边)为非匹配边,第2,4,6…length-1条边为匹配边
因此我们如果把非匹配边变为匹配边,匹配边变为非匹配边,新的到的仍是一组匹配,并且匹配边数较原来的那组匹配增加了一条
进一步我们有推论,S为二分图的最大匹配,当且仅当图中不存在S的增广路(用反证法证明)
匈牙利算法(增广路算法)
求二分图最大匹配
算法过程是不断寻找增广路,每找到一次增广路,把增广路边取反,由增广路定义可知,匹配边数比原来的