Network Simplex Method

Specialize the simplex method to min-cost flow problems. Represent a basic feasible solution as a spanning tree, compute node potentials and reduced costs, identify entering and leaving arcs, and perform a full pivot.

Step 1 of 157%

Tutorial

Spanning Trees and Node Potentials

The network simplex method is the simplex method specialized to the min-cost flow LP. It exploits two facts about the structure of basic feasible solutions on a network with nn nodes.

Fact 1. Every basic feasible solution (BFS) corresponds to a spanning tree TT of the network. The n1n-1 tree arcs are basic; the remaining arcs are non-basic and sit at their lower bound xij=0x_{ij}=0 (uncapacitated case).

Fact 2. The dual variables of the flow-conservation constraints — one per node — are called node potentials y1,y2,,yny_1,y_2,\ldots,y_n. They are pinned down by the requirement that every tree arc has zero reduced cost:

cˉij  =  cijyi+yj  =  0for every (i,j)T.\bar{c}_{ij} \;=\; c_{ij} - y_i + y_j \;=\; 0 \quad \text{for every } (i,j) \in T.

Rearranging, yj=yicijy_j = y_i - c_{ij} along each tree arc.

The n1n-1 tree-arc equations leave one degree of freedom in the nn potentials. To pin them down, pick any node as the root, set its potential to 00, and propagate yj=yicijy_j = y_i - c_{ij} outward through TT.

For example, if the tree arcs are (1,2)(1,2) with c12=4c_{12}=4 and (2,3)(2,3) with c23=6c_{23}=6, setting y1=0y_1=0 gives

y2=y1c12=4,y3=y2c23=46=10.y_2 = y_1 - c_{12} = -4,\qquad y_3 = y_2 - c_{23} = -4 - 6 = -10.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle