Augmenting Paths and Ford-Fulkerson

This lesson develops the Ford-Fulkerson algorithm for computing maximum flow. We define the residual graph, augmenting paths, and bottleneck capacities, then learn how to update a flow along an augmenting path. Finally, we run the full algorithm: repeatedly augment until no augmenting path exists.

Step 1 of 157%

Tutorial

The Residual Graph

Given a flow network with capacities c(u,v)c(u,v) and a feasible flow ff, the residual graph GfG_f records how much additional flow each edge can carry.

For every edge (u,v)(u,v) in the original network, GfG_f may contain up to two edges:

  • A forward residual edge (u,v)(u,v) with capacity
cf(u,v)=c(u,v)f(u,v),c_f(u,v) = c(u,v) - f(u,v),

representing how much more flow can be pushed along (u,v)(u,v).

  • A backward residual edge (v,u)(v,u) with capacity
cf(v,u)=f(u,v),c_f(v,u) = f(u,v),

representing how much existing flow on (u,v)(u,v) can be cancelled by routing in the reverse direction.

Only residual edges with strictly positive capacity are included in GfG_f.

For instance, if an edge (u,v)(u,v) has capacity 1010 and currently carries flow 77, then GfG_f contains

cf(u,v)=107=3,cf(v,u)=7.c_f(u,v) = 10 - 7 = 3, \qquad c_f(v,u) = 7.

We can push up to 33 more units forward along (u,v)(u,v), or cancel up to 77 units by routing flow backward.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle