Problem

Given a network , find the flow with the greatest value

Definition - cut

A cut in the network is a partition of the vertex set into two disjoint subsets and such that

The capacity of a cut is the total capacity of all edges from to :

Example

Observation: Any s-t cut in a flow network places an upper bound on the value of any feasible flow.

Maximum flow

If we find, for a flow , an - cut such that

then is a maximum flow

Lemma

We claim:

(i)

( makes sure those edges exist (equivalently all edges (,) such that and ))

(ii) proved by showing (iii) proved by capacity constraint

Maxflow-Mincut Theorem

Maxflow-Mincut Theorem

In any flow network, the maximum value of a flow equals the minimum capacity of an s-t cut

formally

This means we could find a minimum - cut in finite steps, and a minimal cut always exists.

Characterization of Maximum Flow

Let be a network (without oppositely directed edges).

A flow is a maximum flow there is no directed path in the residual network .

For every maximum flow , there exists an cut such that

Proof

There is no directed path in the residual network there exists an cut such that is a maximum flow.

nodes in that can be reached from

For all there is For all there is

Ford-Fulkerson Algorithm

Assume all capacities are integers.

Start with the zero flow . As long as there is a directed - path in the residual network , augment the flow along .

Let

be the minimum residual capacity on the path. Then update the flow by

  • increasing by on forward edges of
  • decreasing by on backward edges of

After the augmentation, the value of the flow increases by :

Since all capacities are integers, all residual capacities are integers as well, so whenever an augmenting path exists. Therefore every augmentation increases the flow value by at least .

Because the value of any flow is bounded above by the capacity of any - cut, the algorithm can perform only finitely many augmentations. When no augmenting path exists anymore, the flow is maximum by the characterization above.

Integer capacities

If all capacities are integers, Ford-Fulkerson terminates and returns a maximum flow. Moreover, the final flow is integral on every edge. Its running time is , since there are at most augmentations and each search for an augmenting path takes time.