Search⌘ K
AI Features

Max Flow = Min Cut

Explore the max flow min cut theorem and understand how the Ford-Fulkerson method guarantees finding a maximum flow. Learn how minimum cuts are defined and linked to flows, and discover the proof that connects these two concepts in graph flow problems.

In this lesson, we want to prove that the Ford-Fulkerson method is actually guaranteed to find a maximum flow. To do this, we’ll take a short detour into the territory of another graph problem, finding minimum cuts.

The minimum cut problem

The minimum cut problem is another problem that can be posed in a flow network G=(V,E,c)G = (V, E, c). Given a source ss and a sink tt, an s\mathbf{s}-t\mathbf{t}-cut is a partition of the vertices VV into two subsets SS and TT, such that sSs \in S and tTt \in T.

The value v(S,T)v(S, T) of an ss-tt-cut is the capacity of all edges that cross the cut from SS to TT.

v(S,T)=uS,vT,(u,v)Ec(u,v).v(S, T) = \sum_{u \in S, v \in T, (u, v) \in E} c(u, v).

As an example, let’s take another look at the flow network from the previous lesson:

g a a t t a->t 1 b b a->b 5 t->st s s ss->s s->a  2 s->b 2 b->t  2
An example cut with S = {s, a} and T = {b, t}

Here, we’ve marked up an example cut with S={s,a}S = \{s, a\} (blue) and T={b,t}T = \{b, t\} (red). The edges crossing through the border of the cut are marked in green. The value of the cut is

v(S,T)=1+2+5=8.v(S, T) = 1 + 2 + 5 = 8.

However, it is not a minimum cut because there is a cut with a smaller value:

g a a t t a->t 1 b b a->b 5 t->st s s ss->s s->a  2 s->b 2 b->t  2
A minimum cut with S = {s,a,b} and T = {t}

This cut ...