MAXFLOW AND MINCUT STUDY GUIDE
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
- Fall 2011, #11
- Spring 2012, #11
- Fall 2012, #6
B level
- Textbook 6.36
- Textbook 6.38
A level
- Textbook 6.37