Purpose: A scaling maximum flow algorithm running in , where is the largest capacity. It is the excess-scaling refinement of push-relabel.

Capacity scaling in general

The idea behind every scaling algorithm: instead of pushing arbitrary amounts of flow, work in phases by bit significance.

  • Phase considers only residual capacities , starting with and halving each phase.
  • Within a phase, only “large” augmentations are made, so there are few of them.
  • After phases and the flow is exact.

Applied to Ford-Fulkerson this gives ; applied to Dinic it gives .

Ahuja-Orlin’s excess scaling

Rather than scaling capacities, scale the excess at active nodes:

  1. Maintain the push-relabel invariants (a height function and excesses ).
  2. In phase , only process nodes with excess — the “large-excess” nodes.
  3. Push from the large-excess node of smallest height, and never push more than into a node (so no node’s excess overshoots ).
  4. When no large-excess node remains, halve .

Capping the push amount is the key: it prevents the excess from ping-ponging and bounds the number of non-saturating pushes at per phase — independently of .

Complexity

  • Time:
  • Space:

The max-flow complexity table

AlgorithmTime
Ford-Fulkerson — pseudo-polynomial
Edmonds-Karp
Capacity-scaling Ford-Fulkerson
Dinic; unit caps; unit…
MPM
Push-relabel FIFO
Push-relabel highest-label
Ahuja-Orlin (excess scaling)
Goldberg-Tarjan
Orlin (with King-Rao-Tarjan)
Chen et al. 2022

In a contest

Dinic’s algorithm with scaling as an optional add-on. It is short, it is on unit-capacity graphs (which is what bipartite matching needs), and it is fast in practice far beyond its worst-case bound. Ahuja-Orlin is a theoretical waypoint.

Variants / Use Cases

  • Maximum Flow — the topic page with modelling patterns
  • Push-relabel — the framework being refined
  • Min-cost flow — cost scaling is the analogous idea for costs, and Ahuja-Orlin also produced the standard cost-scaling algorithm
  • Gabow scaling — bit-scaling applied to matching and shortest paths