“Ford–Fulkerson 方法始终维护可行流并沿完整增广路提高流值;Push–Relabel 维护预流并通过局部 push/relabel 消除 active vertex。前者在任意实…”
形式陈述 ​
给定容量网络,Ford–Fulkerson 从零流开始。对当前可行流
并沿
若残量图中不再有
若容量为非负整数,每次
直觉
一次增广把整条残量路看成可同时调整的方向链,瓶颈是这次最多能推多少。正向记录使用尚空容量,反向记录撤销旧流;早期路径因此不是不可逆承诺。
停止证书来自全局不可达性,而非“刚才选的路已经满”。只要还有残量源汇路,就存在严格增加流值的可行改动;当所有这类路消失,残量可达集恰好暴露一个与当前流同值的割。
例子与边界
弧
容量均为
其中
反平行原弧与残量反向记录方向可能相同,更新时必须通过配对索引找到各自原弧;只用端点定位会在撤销时改错记录。平行弧也应分别保存容量与残量,或在不需要逐弧输出时预先合并容量。
大整数容量说明终止不等于高效:容量用二进制写入时,
推论与应用
增广思想把二分图匹配中的交替路、单源单汇流与某些环流可行性算法放进同一残量语言。最小费用流还要比较增广费用并防止负费用圈,带下界环流要先恢复可行初始流;它们不能只沿任意残量路重复本页步骤。
Ford–Fulkerson 始终维护满足守恒的可行流,并按完整源汇路增加流值。Push–Relabel允许中间状态违反守恒而形成预流,只沿局部 admissible edge 推送超额;两者的状态空间、终止条件与复杂度势函数不同。
任一可行流可由流分解定理写成路径流与环流之和,这解释增广的路线语义,却不保证任意选路具有多项式迭代数。
参考资料
- L. R. Ford Jr. and D. R. Fulkerson, “Maximal Flow Through a Network,” Canadian Journal of Mathematics 8, 1956, pp. 399–404。
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,§24.2。
- Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005,Ch. 7。