This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CS 577: Introduction to Algorithms 11/09/06 Homework Solution: 4a Instructor: Shuchi Chawla TA: Siddharth Barman Question 1 There can be multiple min-cuts in a flow graph. Let us denote the edges crossing a particular min-cut as MinCut i . From definition it follows that the set of bottleneck edges B = i MinCut i and the set of critical edges C = i MinCut i . This suggests the approach for finding bottlenecks and critical edges. 1a Here we need to determine the intersection of min cuts hence we refine a single min cut to get the desired edges. To obtain the bottleneck edges B , we start by executing an efficient max-flow algorithm (say the Edmond-Karp algorithm which takes O ( m 2 log F ) time) in order to obtain a min cut. We know that edges crossing the min cut are being fed at capacity. This follows from the fact that vertex at the other end of such edges are not reachable from the source s in the residual graph, hence there are no forward edges. Next we increment the capacity of each edge in the obtained min cut by one (one at a time), and by DFS determine whether this adds a new augmenting path in the residual graph, if so then the edge is a bottleneck. There can be at most m edges in a min cut and DFS takes O ( m ) time hence the time complexity of the second step is O ( m 2 ). This is a polytime algorithm for determining all the bottlenecks of a graph. 1b In order to determine the set of critical edges C we start with the set of edges, say S that have reached capacity in the residual graph generated by the max-flow algorithm. Note that C is a subset of S . Next we refine this overestimate of C ....
View Full Document
This note was uploaded on 02/17/2011 for the course CS 577 taught by Professor Joseph during the Spring '08 term at Wisconsin.
- Spring '08