“算法分支由输入结构决定。Hopcroft–Karp 算法在静态无权二分图上成批处理最短增广路,给出确定性最坏 $O( E \sqrt{ V })$;Edmonds 开花算法处理一般无向图中的…”
形式陈述 ​
输入是有限无向图
若非匹配边连接同一棵树中的两个 outer 顶点
收缩不变量是
正向证明把增广路与
直觉 ​
二分图的交替 BFS 可以给顶点稳定标出奇偶层;一般图中的奇环会让两个 outer 顶点突然相连,同一个区域似乎同时要求两种层次。Blossom 收缩把这段局部奇偶冲突暂时封装成一个点,继续寻找全局出口;找到路线后再按入口位置展开。
不是任意奇环都能收缩。它必须相对于当前匹配和交替森林形成上述 blossom,base、stem 与环上匹配模式共同保证收缩前后增广路等价。
例子与边界 ​
设未匹配根为
其中
若从
平行边、自环和嵌套 blossom 需要实现层明确处理;标准简单图版本可忽略前两者,但嵌套收缩仍会出现。每次增广后交替森林和 blossom 结构依赖新匹配,必须重建或等价更新,不能沿用旧层次标签。
推论与应用 ​
由 Berge 定理,某阶段若在所有合法收缩后仍找不到增广路,当前匹配即为最大匹配。算法因此把“寻找一般图增广路”的困难全部集中在 blossom contraction 与 lifting 证书上。
二分图没有奇环,outer–outer 同树边不会形成 blossom,算法退化为普通交替森林搜索。加权一般匹配还需要对偶变量、紧边与 blossom 约束;它不是在本页算法上给边排序即可得到。
参考资料
- Jack Edmonds, “Paths, Trees, and Flowers,” Canadian Journal of Mathematics 17, 1965, pp. 449–467.
- Alexander Schrijver, Combinatorial Optimization, Springer, 2003, Chs. 24–25.