CS 577: Introduction to Algorithms
11/09/06
Homework Solution: 4a
Instructor: Shuchi Chawla
TA: Siddharth Barman
Question 1
There can be multiple mincuts in a flow graph.
Let us denote the edges crossing a particular
mincut 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 maxflow
algorithm (say the EdmondKarp 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 maxflow algorithm.
Note that
C
is a
subset of
S
. Next we refine this overestimate of
C
.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
This is the end of the preview.
Sign up
to
access the rest of the document.
 Spring '08
 JOSEPH
 Algorithms, Graph Theory, edges, residual graph, sj, min cut

Click to edit the document details