311. Network Simplex

A specialization of the simplex method for network flow problems (transportation, transshipment, min-cost flow). Exploits the tree structure of basic feasible solutions for 50100× speed-up over generic simplex.

311.1. Key insight: basis = spanning tree

For a network with 𝑛 nodes, a basic feasible solution corresponds to a spanning tree of the network (plus a choice of source / sink directions). There are 𝑛1 basic variables (one per tree arc), exactly matching the LP’s basis dimension.

Non-basic arcs have flow zero or equal to their capacity.

311.2. Why this matters

Operations that are 𝑂(𝑛3) in general simplex become 𝑂(𝑛) on a tree:

311.3. Algorithm

Initialize a feasible spanning tree T (e.g., via big-M or two-phase)
While there exists a non-basic arc (i, j) with reduced cost < 0:
    Add (i, j) to T forming a cycle
    Push flow around the cycle until some basic arc hits zero or capacity
    Remove that arc from T (it leaves the basis)
Return optimal flow

311.4. Complexity

311.5. When to use

311.6. See also