Está en la página 1de 1

Problem Set Three

Due date: Thursday February 21, 2013 (by end of lecture)

1. (20 points) One of the polynomial max flow algorithms discussed in class relies on the
existence of an efficient way to find a path from s to t which has the largest bottleneck
capacity, whereby bottleneck capacity we mean the smallest residual capacity on the path.
Describe an efficient algorithm to find such a path and prove its correctness. What is the
running time of your algorithm? [Hint: start with Dijkstra’s shortest path algorithm, and
modify appropriately.]

2. (15 points) Suppose we are given a graph and an s-t flow. Prove that for any two s-t cuts
(A, V − A) and (B, V − B), the flow across these cuts has the same value, (i.e. f (A, V − A) =
f (B, V − B)).

3. (15 points) A regular bipartite graph is a bipartite graph in which every node has degree
exactly k (i.e. is adjacent to exactly k edges). A non-trivial regular bipartite graph is a
regular bipartite graph for which k > 0. Using what we learned in class about network flow,
show that any non-trivial regular bipartite graph has a perfect matching. Your proof should
use only material studied in class, e.g. do not apply Hall’s theorem. [Hint: there exists a very
short and clean proof, without induction.]

4. (20 points) Suppose we modify the Ford-Fulkerson algorithm by not adding reverse residual
edges whenever we add an augmenting path. For example, if we pushed 2 units of flow through
an edge with capacity 7, then instead of creating a forward residual edge of capacity 5 and
a backwards one of capacity 2, we create only the forward one. Prove or disprove (i.e. give
counter example) the following statement:
There is a constant 0 < α ≤ 1 such that the modified algorithm always produces a flow of
size at least α|f ∗ | where |f ∗ | is the value of the maximum flow.
[In other words, the claim states that the modified algorithm is ”good enough” since it
produces flow that is at most a constant factor smaller than the maximum possible one.]

5. (20 points) Consider a communication network represented by a graph with n nodes and
m edges. You have k packets sitting at various nodes in the network. The goal is to construct
a schedule that will bring all these packets to a designated node s as fast as possible (i.e.
minimize the number of steps before the last packet arrives). By “schedule” we mean a table
that, for each time unit, indicates which packets will cross which edges during this time unit.
The restriction is that each communication link of the network is capable of transmitting
only one packet every time unit. [Hint: show a reduction to max flow in an appropriately
constructed graph.]

6. (10 points) Suppose that after solving a maximum flow problem (with integer capacities)
you realize that you have overestimated the capacity of an arc e by k units. Show how to
reoptimize the problem in O(km) time.

También podría gustarte