### Key Concepts

Maxflow, mincut, and Ford-Fulkerson basics

• What is an st-flow f? Assignment of value to every edge.
• What is an st-cut (A, B)? Partition of vertices into two sets A and B, with s in A and t in B.
• What is the maxflow problem? What is the mincut problem?
• What is the maxflow-mincut theorem?
• How do we find an augmenting path from s to t? BFS, but with the special rule that we don't traverse a forward edge if full or a backward edge if empty.
• Given a maxflow, how can we compute a mincut? Try to find an augmenting path using algorithm above. The s side of the st-cut is every vertex reachable from the source.

Ford-Fulkerson details

• How do we know that Ford-Fulkerson terminates when all capacities are integers?
• How do we know that Ford-Fulkerson computes a maxflow (assuming it terminates)?
• What are some different strategies for picking an augmenting path? Why is DFS potentially very bad?

Residual network

• Represent spare capacity on each edge, in both forward and backward directions.
• Use mutable FlowEdge instead of immutable DirectedEdge.
• Edge v->w appears in both v's adjacency list and w's adjacency list. Why?

### Recommended Problems

#### C level

1. Fall 2011, #11
2. Spring 2012, #11
3. Fall 2012, #6

#### B level

1. Textbook 6.36
2. Textbook 6.38

#### A level

1. Textbook 6.37