Skip to content

网络单纯形法

network simplex method · network simplex algorithm

把最小费用流的基表示为生成树,以约化费用选入基弧并沿基本环完成枢轴。

条目类型
算法

形式陈述

最小费用流基

在有向网络上,每条弧 (i,j) 有费用 cij、下界 ij、上界 uij,节点有供需 bi。可行流满足容量界与流量平衡,并最小化

(i,j)cijxij.

网络单纯形法把单纯形法的一个基具体化为覆盖所有节点的生成树

树弧的流量由节点平衡和非树弧状态唯一确定。每条非树弧固定在下界或上界;树弧允许位于界内,也可能因退化恰好落在某个界上。工程实现常另加人工根与高费用人工弧来构造初始可行树,找到可行解后再移除其影响。

势与约化费用

给每个节点势 πi,令

c¯ij=cij+πiπj.

沿树从根传播势,使所有树弧的约化费用为 0。对最小化问题,处在下界的非树弧要求 c¯ij0,处在上界的非树弧要求 c¯ij0;若全部满足,当前可行树解最优。

违反符号条件的非树弧可以入基。下界弧且 c¯<0 时沿正方向增流会降低费用;上界弧且 c¯>0 时沿反方向减流。只看原费用 cij 会忽略为维持平衡而在树上引起的连锁变化。

直觉

生成树给出一组恰好能由节点平衡确定的基弧;加入一条非树弧会形成唯一基本环,因此所有维持守恒的流量变化都沿这条环发生。约化费用判断该方向是否改善目标,ratio test 则找到第一条触碰容量界并离基的弧。

网络单纯形的基树 pivot
例子与边界

一个完整 pivot

设节点 s 供给 4,t 需求 4,v 平衡为 0。三条弧容量都为 4,费用为

cst=5,csv=1,cvt=1.

初始可行流为 xst=4,xsv=0,xvt=0。取树弧 st,sv,其中 sv 是位于下界的退化树弧;非树弧 vt 位于下界。

πs=0。由树弧约化费用为 0,得到 πt=5,πv=1。于是

c¯vt=1+πvπt=3,

非树弧 vt 违反下界最优性条件,选择它入基。

vt 加入无向基树形成基本环

vtsv.

沿 vt 增加 θ,为保持节点平衡,同时沿 sv 增加 θ,沿 st 减少 θ。三个容量约束共同给出 θ=4

增广后

xsv=4,xvt=4,xst=0.

st 首先到达下界,因而离基;新基树为 sv,vt。每单位流节省 5(1+1)=3,总费用从 20 降到 8,恰好改善 12。

状态更新不变量

一次 pivot 后必须同时恢复三项条件:流量平衡不变,所有弧仍在上下界内,基弧仍构成生成树。fundamental cycle 上的正负方向由入基弧方向决定;若把整条环都加同一符号,内部节点会产生净流入。

离基弧由 ratio test 决定:沿环各弧离其即将碰到的界还有多少余量,取最小值。多条弧同时到界时发生退化,θ 甚至可能为 0;仍需按防循环规则选择一条离基,否则算法可能在多个等价树基之间循环。

势只需在 pivot 后相对调整新树某一侧,使新入基弧约化费用变为 0。树数据结构要支持找 fundamental cycle、求瓶颈、换边和对子树势加常数;这些接口决定大型实例上的实际效率。

entering arc 规则

Dantzig 规则可选违反最严重的约化费用,first-eligible 规则按扫描顺序选第一条,工程求解器还会组合候选列表、块搜索和退化处理。规则影响每轮扫描成本与 pivot 数。

这些启发式常使网络单纯形在运输、指派和最小费用流实例上很快,但不能据此宣称经典 pivot 规则具有一般多项式轮数。已知构造能让某些规则经历指数级 pivot;理论最坏界与工程表现应分开陈述。

推论与应用

与其他最小费用流算法对照

逐次最短路每轮按剩余网络最短路增广,cost scaling 通过 ε-最优性逐步收紧;网络单纯形始终维护一棵基树并沿基本环换边。三者共享势和约化费用语言,状态演化却不同。

容量无穷、供需不平衡或负费用环会影响可行性与有界性,预处理必须先检查。整数输入下基树 pivot 保持整数流,但浮点费用会让约化费用比较和退化判定需要容差;容差策略不属于抽象精确算术证明。

参考资料
  • George B. Dantzig, Application of the Simplex Method to a Transportation Problem, in Activity Analysis of Production and Allocation, 1951.
  • Ravindra K. Ahuja, Thomas L. Magnanti and James B. Orlin, Network Flows: Theory, Algorithms, and Applications, Prentice Hall, 1993.
  • James B. Orlin, A Polynomial Time Primal Network Simplex Algorithm for Minimum Cost Flows, Mathematical Programming, 1997.
关系图谱8 个相邻概念 · 4 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

上位 / 更一般

下位 / 直接特例

暂未标注直接特例。

类型化关系

使用的工具

实现的抽象