Maxflow-Mincut Theorem

The maximum flow of a network is equal to the size of the minimum cut.

Proof:

We have the easy direction from Lemma (Maxflow is at Most the Mincut). So, in the reverse direction, consider the maximum flow , where it is impossible for us to create an augmenting path to apply lemma to increase it.

On the other hand, we can create a partial augmenting path. We start at the source, but we don’t need to end at the sink. It’s edges are in or reverse edges in . Let

Since there’s no partial augmenting path that ends at the sink, then the sink must be in . This allows us to define a cut with this partition.

I claim that . First, there is no edge from . Suppose by contradiction there was. But then this means there is a partial augmenting path with an endpoint in , contradicting the definition of . This implies the flow is equal to the capacity.

Likewise, we cannot have an edge from . Otherwise, the reverse of it would be , giving us a contradiction.

This allows us to compute :

where the last equality is by definition. But this tell us,

Indeed, for all flows ,

and for all cuts ,

Therefore the maxflow and mincut are equal.

Applications

We can apply this to Konig’s Theorem by turning it into a network graph where the directed edges are from , and that we can create an arbitrary source vertex connecting all of , (i.e. ) and an arbitrary sink vertex where . This gives a correspondence from matchings in , to flows in .

We can also apply this to Menger’s Theorem. Replace each edge with two directed edges in the opposite direction to form a network. If we can remove edges to separate , then it defines a cut . Then is at most the number of removed edges. But for a minimum cut, this is equal to the maxflow. Indeed, there exists a flow where .

If is a flow of size at least , then it contains edge disjoint paths. We can prove this by induction on . For , we start at and create a path by adding new edges to until we get stuck (in particular, ). Suppose we stopped at some vertex . For each ingoing edge to , we take an outgoing edge, except for the last one such that we cannot get stuck. At , the number of outgoing is ingoing plus . So, we cannot get stuck here. Thus we can only stop at .

For the inductive step, consider a path . We induct on , giving us edge disjoint paths. The proof is trivial from here.