### 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

#### B level

1. Textbook 6.36
2. Textbook 6.38

#### A level

1. The instructors plan to grade the final, May 20. They have scheduled 8 hours for it. Each instructor prefers to grade only a certain subset of the 11 problems. They have represented their preferences in a graph in which a grader is connected to a problem if they are willing to grade it.

Each grader has a grading speed, and each problem has a grading difficulty. If a problem with difficulty d is graded by an instructor with speed s, it will take d/s minutes to grade. There are N problems and M instructors; S students took the exam.

Design an algorithm to determine if the instructors will be able to finish grading within the scheduled 8 hours, respecting their grading preferences.

What is the order-of-growth worst-case running time of your algorithm as a function of both M and N? Assume that the speeds and difficulties are integers between 1 and 10. Also, assume that the work for a problem can be divided among different graders.

Hint: formulate it as a maxflow problem and invoke a known algorithm for solving maxflow. Draw the resulting flow network to illustrate your construction. Answers

2. Textbook 6.37