



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Notes; Class: Algorithms; Subject: Computer Science; University: University of Illinois - Urbana-Champaign; Term: Unknown 1999;
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!




Col. Klink: What are you waiting for? Cut the wire. Col. Hogan: That’s the problem. One of these wires disconnects the fuse, the other one fires the bomb. Which one would you cut, Shultz? Sgt. Schultz: Don’t ask me, this is a decision for an officer. Col. Hogan: All right. Which wire, Colonel Klink? Col. Klink: This one. [points to the white wire] Col. Hogan: You’re sure? Col. Klink: Yes. [Hogan cuts the black wire; the bomb stops ticking] Col. Klink: If you knew which wire it was, why did you ask me? Col. Hogan: I wasn’t sure which was the right one, but I was certain you’d pick the wrong one. — “A Klink, a Bomb, and a Short Fuse", Hogan’s Heroes (1966)
In the mid-1950s, Air Force researchers T. E. Harris and F. S. Ross published a classified report studying the rail network that linked the Soviet Union to its satellite countries in Eastern Europe. The network was modeled as a graph with 44 vertices, representing geographic regions, and 105 edges, representing links between those regions in the rail network. Each edge was given a weight, representing the rate at which material could be shipped from one region to the next. Essentially by trial and error, they determined both the maximum amount of stuff that could be moved from Russia into Europe, as well as the cheapest way to disrupt the network by removing links (or in less abstract terms, blowing up train tracks), which they called ‘the bottleneck’. Their results (including the figure at the top of the page) were only declassified in 1999.^1
Figure 2 From Harris and Ross [1955]: Schematic diagram of the railway network of the Western So- viet Union and Eastern European countries, with a maximum flow of value 163,000 tons from Russia to Eastern Europe, and a cut of capacity 163,000 tons indicated as ‘The bottleneck’.
The max-flow min-cut theorem In the RAND Report of 19 November 1954, Ford and Fulkerson [1954] gave (next to defining the maximum flow problem and suggesting the simplex method for it) the max-flow min- cut theorem for undirected graphs, saying that the maximum flow value is equal to the minimum capacity of a cut separating source and terminal. Their proof is not constructive, but for planar graphs, with source and sink on the outer boundary, they give a polynomial- time, constructive method. In a report of 26 May 1955, Robacker [1955a] showed that the max-flow min-cut theorem can be derived also from the vertex-disjoint version of Menger’s theorem. As for the directed case, Ford and Fulkerson [1955] observed that the max-flow min-cut
Harris and Ross’s map of the Warsaw Pact rail network
This one of the first recorded applications of the maximum flow and minimum cut problems, which are defined as follows. Let G = (V, E) be a directed graph, and let s and t be special vertices of G called
u to vertex v. (^1) Both the map and the story were taken from Alexander Schrijver’s fascinating survey ‘On the history of combinatorial optimization (till 1960)’.
An ( s , t ) -flow (or just flow if the source and target are clear from context) is a function f : E → IR≥ 0 that satisfies the following balance constraint for all vertices v except possibly s and t: ∑
u
w
In English, the total flow into any vertex is equal to the total flow out of that vertex. (To keep the
the flow f is defined as the excess flow out of the source vertex s:
| f | =
w
u
It’s not hard to prove that the value | f | is also equal to the excess flow into the target vertex t. First we observe that ∑
v
w
u
v
w
v
u
because both summations count the total flow across all edges. On the other hand, the balance constraint implies that ∑
v
w
u
w
u
w
u
= | f | +
w
u
It follows that | f | =
u
w
Now suppose we have another function c : E → IR≥ 0 that assigns a non-negative capacity c(e) to each edge e. We say that a flow f is subject to c if f (e) ≤ c(e) for every edge e. Most of the time we will consider only flows that are subject to some fixed capacity function c. We say that a flow f saturates edge e if f (e) = c(e), and avoids edge e if f (e) = 0. The maximum flow problem is to compute an (s, t)-flow in a given directed graph, subject to a given capacity function, whose value is as large as possible.
s t
10/
0/
10/
0/
10/
5/
5/
5/
0/
An (s, t)-flow with value 10. Each edge is labeled with its flow/capacity.
Surprisingly, for any weighted directed graph, there is always a flow f and a cut (S, T ) that satisfy the equality condition. This is the famous max-flow min-cut theorem:
The value of the maximum flow is equal to the cost of the minimum cut.
The rest of this section gives a proof of this theorem; we will eventually turn this proof into an algorithm. Fix a graph G, vertices s and t, and a capacity function c : E → IR≥ 0. The proof will be easier if we
or equivalently, if an edge appears in G, then its reversal does not. This assumption is easy to enforce.
has the same maximum flow value and minimum cut cost as the original graph.
Enforcing the one-direction assumption.
Let f be a flow subject to c. We define a new capacity function cf : V × V → IR, called the residual capacity , as follows:
0 otherwise
where Ef is the set of edges whose residual capacity is positive. Notice that the residual capacities are
s t
10/
0/
10/
0/
10/
5/
5/
5/
0/ s t 10
10
5
10
15 5 5
10 5
15
5
10 10
A flow f in a weighted graph G and the corresponding residual graph Gf.
Suppose there is no path from the source s to the target t in the residual graph Gf. Let S be the set of vertices that are reachable from s in Gf , and let T = V \ S. The partition (S, T ) is clearly an (s, t)-cut. For every vertex u ∈ S and v ∈ T , we have
edge from S to T and avoids every edge from T to S. It follows that | f | = ‖S, T ‖. Moreover, f is a maximum flow and (S, T ) is a minimum cut.
s t 10
10
5
10
15 5 5
10 5
15
5
10 10 s t
10/
5/
5/
5/
10/
5/
0/
10/
0/
An augmenting path in Gf with value F = 5 and the augmented flow f ′.
push through the augmenting path in Gf. We define a new flow function f ′^ : E → IR as follows:
To prove this is a legal flow function subject to the original capacities c, we need to verify that f ′^ ≥ 0
and
and
= 0 Duh.
Finally, we observe that (without loss of generality) only the first edge in the augmenting path leaves s, so | f ′| = | f | + F > 0. In other words, f is not a maximum flow. This completes the proof!