Skip to content

最小费用流

Minimum-cost flow

在满足流量守恒与容量限制下最小化边费用总和的网络优化问题。

条目类型
模型

形式陈述

最小费用流在有向网络上为每边给容量 ue、单位费用 ce,要求满足流守恒并发送指定流量(或满足供需),使 ecefe 最小。残量网络的正向边费用为 ce,反向边费用为 ce。最优性可由残量网络不存在负费用环刻画。逐次最短增广路算法每次沿最小费用源汇路增广;存在负边时先用 Bellman–Ford 求可行势,或直接从已知可行势开始,再以约化费用非负为不变量配合 Dijkstra。每次势更新保持同端点路径的相对费用。整数容量与供需下,增广过程终止并可得到整数最优流;这不能无条件推广为任意实数数据上的同一离散终止论证。

直觉

最大流只关心“能送多少”,最小费用流还要在满足给定流量或供需的前提下决定“走哪条路线最划算”:容量决定流量上限,费用决定边际选择。残量网络中的反向边费用取负,使算法可以撤销先前昂贵选择;负环则表示能在不改变供需的情况下降低成本。最短增广路法每次寻找从源到汇的最低边际费用路径,但负费用边要求 Bellman–Ford 或势函数约化。

容量、费用与流量守恒
例子与边界

运输问题中供应点到需求点的边费用是单位运输成本。若未指定流量,零流可能平凡最优,因此必须说明目标流值或节点供需。负费用边本身不意味着无界;只有可无限循环且不受容量限制的负环才造成无界。直接每次选当前最便宜原图路径可能因已用容量和反向调整失败。势函数改变路径费用但保持同端点路径相对成本。

两条可发送一单位流的路径费用分别为 52,需求为一单位时应走费用 2 路径;需求变为两单位且容量各一,则总费用为 7。若先走一条局部便宜路径阻塞后续组合,残量反向边允许重排流。

存在可达负费用环时,若环还有残量容量,可沿环降低总费用而不改变净流量;算法必须检测或通过最优性条件排除。势函数要求约化成本非负且按正确方向更新,原图有负边时不能直接用普通 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。
关系图谱10 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系