“最小费用流 $f$ 的正向残量边容量为 $u e f e$、费用 $c e$;反向边容量为 $f e$、费用 $ c e$,允许撤销旧流。逐次最短路从一个可行流出发,每轮找残量网络最短 $s…”
形式陈述 ​
最小费用流在有向网络上为每边给容量
直觉
最大流只关心“能送多少”,最小费用流还要在满足给定流量或供需的前提下决定“走哪条路线最划算”:容量决定流量上限,费用决定边际选择。残量网络中的反向边费用取负,使算法可以撤销先前昂贵选择;负环则表示能在不改变供需的情况下降低成本。最短增广路法每次寻找从源到汇的最低边际费用路径,但负费用边要求 Bellman–Ford 或势函数约化。
例子与边界
运输问题中供应点到需求点的边费用是单位运输成本。若未指定流量,零流可能平凡最优,因此必须说明目标流值或节点供需。负费用边本身不意味着无界;只有可无限循环且不受容量限制的负环才造成无界。直接每次选当前最便宜原图路径可能因已用容量和反向调整失败。势函数改变路径费用但保持同端点路径相对成本。
两条可发送一单位流的路径费用分别为
存在可达负费用环时,若环还有残量容量,可沿环降低总费用而不改变净流量;算法必须检测或通过最优性条件排除。势函数要求约化成本非负且按正确方向更新,原图有负边时不能直接用普通 Dijkstra。
推论与应用
最小费用流结合 最大流 的可行性、最短路 的边际选择与 线性规划 的对偶结构,是网络流和线性规划之间的重要桥梁。指派、运输、带成本匹配、库存和资源调度都可建模为最小费用流;原始—对偶方法 解释节点势与互补松弛。
问题页应把求解路线分开:连续最短路每次在残量网络增广并用势保持非负约化成本;Network Simplex在生成树基之间 pivot,工程行为与最坏理论不同;带下界需求环流先处理可行性和基准流。负成本边、负环与容量整数性决定算法条件,不能把某一实现复杂度写成问题固有成本。
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,Parts I–VI。
- Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005,Chs. 1–13。