


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: Special Topics: Linear Regression; Subject: Mathematics; University: University of Kansas; Term: Spring 2008;
Typology: Study notes
1 / 4
This page cannot be seen from the preview
Don't miss anything!



Definition: A network is a directed graph N = (V, E) with the following additional data:
s t
We want to think of an s, t-network as modeling a situation where stuff—data, traffic, liquid, electrical current, etc.—is flowing from s to t. The capacity of an edge is the amount of stuff that can flow through it (or perhaps the amount of stuff per unit time). This is a very general model that can be specialized to describe cuts, connectivity, matchings and other things in directed and undirected graphs.
A flow on N is a function f : E → N that satisfies the capacity constraints
(1) 0 ≤ f (e) ≤ c(e) ∀e ∈ E
and the conservation constraints
(2) f −(v) = f +(v) ∀v ∈ V \ {s, t}
where f −(v) =
e=−uv→
f (e), f +(v) =
e=−vw→
f (e).
That is, stuff cannot accumulate at any internal vertex of the network, nor can it appear out of nowhere.
The value of a flow f is the net flow into the sink:
|f | = f −(t) − f +(t) = f +(s) − f −(s).
The second equality follows from the conservation constraints. Typically, we’ll assume that there are no edges into the source or out of the sink, so that
|f | = f −(t) = f +(s).
Observation: If we can find a path from s to t in which no edge is being used to its full capacity, then we can increase the flow along every edge on that path, and thereby increase the value of the flow by the same amount.
The problem is that some flows cannot be increased in this way, but are nevertheless not maximal. The flow on the right above is an example. In every path from s to t, there is some edge e with f (e) = c(e). However, the flow shown below evidently has a greater value, namely 2:
Observation: Flow along an edge −xy→ can be regarded as negative flow from y to x.
Accordingly, there is another way to increase flow. Look for a path from s to t consisting of forward edges not being used to full capacity OR backward edges with positive flow. Then, increasing flow on the forward edges and decreasing flow on the backward edges will increase the value of the flow.
Proposition 1. Let f be a flow, and let A ⊆ V. Then:
(3a) f +(A) − f −(A) =
v∈A
(f +(v) − f −(v)).
In particular, if [S, T ] is a cut, then
(3b) f +(S) − f −(S) = f −(T ) − f +(T ) = |f |,
(3c) |f | ≤ c(S, T ).
In particular, the maximum value of a flow is less than or equal to the minimum capacity of a cut, a principle known as weak duality.
Proof. We just need some careful bookkeeping. For (3a):
f +(A) − f −(A) =
e∈[A,A]
f (e) +
e∈[A, A¯]
f (e)
e∈[A,A]
f (e) +
e∈[ A,A¯ ]
f (e)
e=−vw, v→ ∈A
f (e)
e=−wv, v→ ∈A
f (e)
v∈A
e=−vw→
f (e) −
e=−wv→
f (e)
v∈A
(f +(v) − f −(v)).
For (3b), the conservation constraints (2), together with (3a), imply that
f +(S) − f −(S) =
v∈S
(f +(v) − f −(v)) = f +(s) − f −(s) = |f | = f −(t) − f +(t) = f −(T ) − f +(T ).
For (3c), the capacity constraints (1) imply that
|f | = f +(S) − f −(S) ≤ f +(S) ≤
e∈[S,T ]
c(e) = c(S, T ).
Proposition 2. Suppose that f is a flow that has no augmenting path. Let
S = {v ∈ V | there is an augmenting path from s to v}, T = V \ S.
Then s ∈ S, t ∈ T , and c(S, T ) = |f |. In particular, f is a maximum flow and [S, T ] is a minimum cut.
Proof. Note that t 6 ∈ S precisely because f has no augmenting path. By (3b), we have
|f | = f +(S) − f −(S) =
e∈[S, S¯]
f (e) −
e∈[ S,S¯ ]
f (e) =
e∈[S, S¯]
f (e).
But f (e) = c(e) for every e ∈ [S, T ] (otherwise S would be bigger than what it actually is), so this last quantity is just c(S, T ). The final assertion follows by weak duality.
We have proven:
Theorem 3. For any network N , the Ford-Fulkerson Algorithm terminates in finite time, and outputs a maximum flow f and a minimum cut [S, T ] such that |f | = c(S, T ).