Lecture 8: Ford-Fulkerson Analysis & Edmonds-Karp Algorithm
1 Complexity of the Ford-Fulkerson Algorithm
- Integer capcacities, Ford-Fulkerson algorithm terminates with an integer maximum flow after a finite number of iterations.
- Real capacities, can run forever, or converge to a suboptimal value.
2 Edmonds-Karp Maximum Flow Algorithm
2.1 High-level idea, (bottleneck)
- Variant of Ford-Fulkerson in which we always augment along a shortest augmenting path.
- Bottleneck edges of an augmenting path P P P. Δ \Delta Δ denotes the capacity of a minimum-capacity edge of P P P.
- Bottleneck count of e e e, the number of iterations such that e e e is a bottleneck edge on an augmenting path.
- Bound the bottleneck count of each edge within O ( V ) O(V) O(V). Since each iteration increments bottleneck count at least one, number of iterations is O ( ∣ E ∣ ∣ V ∣ ) O(|E||V|) O(∣E∣∣V∣).
- Terminates within O ( ∣ E ∣ ∣ V ∣ ) O(|E||V|) O(∣E∣∣V∣) iterations, each iteration within O ( ∣ E ∣ ) O(|E|) O(∣E∣) time, total O ( ∣ E ∣ 2 ∣ V ∣ ) O(|E|^2|V|) O(∣E∣2∣V∣)
2.2 Bottleneck lemma
- Vertex distances: d ( v , i ) d(v,i) d(v,i) denotes the minimum length of a path of positive-capacity edges from s s s to v v v in G f G_f Gf after i i i iterations. (No such path: d ( v , i ) = ∞ d(v,i)=\infin d(v,i)=∞, if d ( v , i ) < ∞ d(v,i)<\infin d(v,i)<∞ then d ( v , i ) ≤ ∣ V ∣ − 1 d(v,i)\leq|V|-1 d(v,i)≤∣V∣−1).
- For all v v v in V V V, and all i ≥ 1 i\geq 1 i≥1, we have d ( v , i − 1 ) ≤ d ( v , i ) d(v,i-1)\leq d(v,i) d(v,i−1)≤d(v,i).
- Bottleneck count of ( u , v ) (u,v) (u,v) is at most max ( 1 , ∣ V ∣ / 2 ) \max(1,|V|/2) max(1,∣V∣/2)
3 Max-Flow Min-cut theorem
- For any flow network, a maximum flow exists in G G G and the value of a maximum flow in G G G is equal to the capacity of a minimum cut in G G G.