* 5

§ 5. Maximal Flow
Theorem 5.1 (Max-flow Min-cut Theorem)
For any network the maximal flow value from s to t is equal to the minimal cut
capacity of all cuts separating s and t.
cf) minimal cut : cut 을 subset 으로 가지지 않는 cut
① We
shall call a “path from s to t” “a flow augmenting path” with respect to a flow f
provided that f < c on forward arcs of the path, and f > 0 on reverse arcs of the path.
Cf) X=(x1 ,x2)
f X  = x1 + x2
X` = (x1 -ε, x2 -ε)
X``= (x1 +ε, x2 +ε)
X = ( X` + X`` ) / 2
Corollary 5.2
A flow f is maximal iff there is no flow augmenting path with respect to f.
② An
arc (x,y) is saturated w.r.t. a flow f if f(x,y) = c(x,y), and is flowless w.r.t. f if f(x,y)
=0
→ An arc that is both saturated and flowless has zero capacity.
Corollary 5.3
A cut (X, X ) is minimal iff every maximal flow f saturates all arcs of (X, X ) whereas
all arcs of ( X , X ) are flowless with respect to f.
Corollary 5.4
Let (X, X ) and (Y, Y ) be minimal cuts. Then, their union (X∪Y, X  Y ) are also
minimal cuts and their intersection (X  Y, X  Y ) are also minimal cuts.
3
Proof) any (x, x )∈(X, X ) and any (y, y )∈(Y, Y ) should be saturated referring to
Corollary 5.3
⇒ any (z, z )∈(X∪Y, X  Y ) should also be saturated.
⇒ of course, any (w, w )∈(X  Y, X  Y ) should be saturated.
cf)
x
s
t
y
( X={s}, X ={x,y,t} ) , ( Y={s,x,y}, Y ={t} ) → X  Y={s},
X Y
={x,y,t}
Theorem 5.5
Let (Y, Y ) be any minimal cut, let f be a maximal flow, and let (X, X ) be the
minimal cut defined relative to f in the proof of Theorem 5.1. Then, X⊆Y
Proof) Suppose not: X  Y ⇒ X∩Y⊂X ⇒ (X∩Y, X  Y ) is a minimal cut. ⇒
Let x∈X that x  X∩Y ⇒ Since x  X and x  s, ∃a path from s to x, say
s=x1,x2,...xk=x ∃each forward arc of the path is unsaturated w.r.t. f, while each
reverse arc carries positive flows.
⇒ However, s∈ X∩Y and x∈ X  Y , so that ∃a pair xi, xi+1 (1≤i < k)
∃xi∈ X∩Y and xi+1∈ X  Y
⇒ if (xi, xi+1) is a forward arc of the path, then f(xi, xi+1) < c(xi, xi+1)
⇒ contradicting Corollary 5.3
⇒ Similarly, if (xi+1, xi) is a reverse arc, also contradicting Corollary 5.3.
⇒ Thus, it should hold that X⊆Y. This completes the proof.
4
Note: If ( X i , X i ) i=1, ... ,m are all the minimal cuts separating source and sink, the
set X defined relative to a particular maximal flow in the proof of Theorem 5.1 is the
m
intersection of all Xi X   X i , and hence does not depend on the selection of the flows,
i 1
since X  X i i from Theorem 5.5
Theorem 5.6
Let X be the set of nodes defined in the proof of Theorem 5.1, let Y be the set defined
below, and assume that c is strictly positive. The minimal cut ( X , X ) is unique iff
( X , X ) = (Y ,Y ) where a minimal cut (Y ,Y ) is generated by defining its sink set Y in
terms of a maximal flow f as follows;
① t Y
② if y Y and f ( x , y )  c( x , y ), then x Y
③
if y Y and f ( y , x )  0, then x Y
Proof) Need to show that if ( X , X ) = (Y ,Y ) , and if (Z, Z ) is any minimal cut, then
( X , X ) =(Z, Z ) for an arbitrary minimal set (Z, Z ).
① we can see that ( X , X ) = (Y ,Y ) ⇒both equal (X, Y )
⇒ for, X⊆Y (Th 5.5) and hence (X, Y ) ⊆ (Y ,Y )
⇒ on the other hand, if (u,v)∈ ( X , X ) = (Y ,Y )
the u∈X and v∈ Y so that (u,v)∈(X, Y ), which implies that (Y ,Y ) ⊆(X, Y )
∴ (Y ,Y ) = (X, Y )
② For arbitrary minimal cut (Z, Z ) :
⇒ We can see from Th5.5 that X⊆Z and Y ⊆ Z
⇒ (X, Y )  (Z, Y )⊆(Z, Z ) so that c(X, Y ) ≤c(Z, Z ),
㉠ If (X, Y )⊂(Z, Z ), then
5
ⓐ either some arcs of (Z, Z ) have capacity zero ⇒ contradicting the
hypothesis c(•)>0
or ⓑ c(X, Y ) < c(Z, Z ), contradicting that the minimality of the cut (Z, Z )
⇒ This implies that c(X, Y ) = c(Z, Z ) and (X, Y ) = (Z, Z ) = ( X , X )
Thus, the proof is completed.
Note : Theorem 5.6 is not valid if the assumption c>0 is relaxed to c  0
e.g.
6
§6. Disconnecting sets and cuts
①A
disconnecting set = a set of arcs such that it has the chain blocking property →
then, a cut is a disconnecting set, since a cut blocks all chains from s to t.
However, the converse is not necessarily true.
↓
Every proper disconnecting set is a cut. → Every disconnecting set contains a cut,
which can be seen as follows;
Proof) Let Ð denote the disconnecting set, and define a subset X of nodes by the rule
ⓐ s  X ; ⓑif x  X and (x,y)∈ A - Ð, then y∈X. Then it is clear that t  X and
( X , X ) ⊆Ð
⇒ Notice that if Ð is a proper disconnecting set (that is, a disconnecting set whose
proper subsets are not disconnecting), then ( X , X ) =Ð. Thus every proper
disconnecting set is a cut. The converse may not hold, though.
7
§ 7. Multiple Sources and Sinks
In the situation where flow is permitted from any source to any sink;
ⓛThe adjunction of two new nodes and several arcs to the multiple source, multiple
sink(multi-source, multi-sink) network reduces the problem to the case of a single
source and sink.
Let the nodes N of a network [N; A] be partitioned into three sets;
i)
S  set of sources

N  T  set of sinks
 R  set of intermediate nodes

ii)
The problem of finding a maximal flow from S to T; a flow from S to T may be
thought of as a real valued function f defined on A that satisfies
 7.1
 7.2
 7.3
② Extend
f ( x , N )  f ( N , x )  0, for x  R
0  f ( x , y )  c( x , y ), for ( x , y )  A
v( the flow value )  f ( S , N )  f ( N , S )
[N; A] to a network [N*; A*] by adjoining two nodes u,v and all arcs (u,S),(T,v),
and extend the capacity function c (defined on A) to c* defined on A* by
c * (u, x)  , x  S

c * ( x, v)  , x  T
`

c * ( x, y )  c( x, y ), for every ( x, y )  A
↓
The restriction f of a flow f* from u to v in [N*; A*] is a flow from S to T in [N; A].
Vice versa, a flow f from S to T in [N;A] can be extended to a flow f* from u to v in
[N*;A*] by defining
f * ( u , x )  f ( x , N )  f ( N , x ), x  S
⇒ f * ( x ,v )  f ( N , x )  f ( x , N ), x  T
f * ( x , y )  f ( x , y ),o / w
8
⇒ Consequently, the maximal flow problem from S to T in [N; A] is equivalent to a
single source, single sink problem in the extended network.
↓
Relevant cuts = those separating S and T → That is, a set of arcs ( X , X ) with
S  X ,T  X
⇒Hence, the max-flow min-cut theorem and its corollaries, as well as the other
theorems of §5, remain valid.
③ However,
the situation where there are several sources and sinks but where certain
sources can “ship” only to certain sinks is distinctly different.
⇒In such a multi-commodity case,
{the maximal flow value}<{the minimal disconnecting set capacity}
9
§ 8. The labeling method for maximal flow problems
① To
ensure termination in a maximal flow computation algorithm, it is assumed that
the capacity function c is integral valued.
② Given
an integral flow f, we proceed to assign “labels” to nodes, a label having one of
the forms ( x , )or( x , ) , where x∈N and εis a positive integer or ∞, as in


Routine A;
i)During routine
A;
unlabeled

a node is in one of three states  labeled and scanned
(initially all nodes are
labeled and unscanned

unlabeled)
ii)Routine A(labeling process):
ⓐ Source s receives the label ( - ,   s   ) ← The source is now “labeled and
unscanned” and all other nodes are unlabeled.
ⓑ In general, select any labeled, unscanned node x;
→Suppose it is labeled (z±,   x  )
→To all nodes y that are unlabeled, and such that f(x,y)<c(x,y), assign the label
(x+,   y ), where
(8.1)   y = min [   x  ,c(x,y)-f(x,y) ]
↔
Such node y are now “labeled and
unscanned”
→To all nodes y that are now “unlabled”, and such that f(y,x)>0, assign the label
(x -,   y ), where
(8.2)   y = min[   x  ,f(y,x) ]
s u c yh  l a b e l ne d ua n s ceda n n
such x  labeled and scanned

⇒
ⓒRepeat step b until either the sink t is labeled and unscanned, or until no more
10
labels can be assigned and the sink is unlabeled.
iii) Routine B(Flow
change)
ⓐThe sink t has been labeled (y±,   t  )
ⓑIf t is labeled (y+,   t  ), replace as f(y,t) →f(y,t) +   t  ;
If t is labeled (y-,   t  ), replace as f(t,y) →f(t,y) -   t 
ⓒFor (x+,   y ): replacing as f(x,y) →f(x,y) +   t 
For (x-,   y ): replacing as f(y,x) →f(y,x) -   t  and go on to node x
ⓓStop the flow change when the source s is reached.
⇒discard the old labels
⇒go back to Routine A
In conclusion:
㉠ The labeling process is a systematic search for a flow augmenting path from s to t.
㉡ Enough information is carried along in the labels so that if the sink t is labels
(called “breakthrough”), the resulting flow change along the path can be made
readily.
㉢ If, on the other hand, routine A ends and the sink has not been labeled,(called “nonbreakthrough”) then the flow is maximal and the set of arcs leading from labeled to
unlabeled nodes is a minimal cut, since the labeled nodes correspond to the set X
defined in the proof of Theorem 5.1.
Remark:
㉠ A main reason for the computational efficiency of the labeling process is that once
a node is labeled and scanned it can be ignored for the remainder of the processing.
㉡ Labeling a node x corresponds to locating a path from s to x that can be the initial
segment of a flow augmenting path. While there may be many such paths from s to a
node x (labeled), finding one suffices.
㉢ If the flow f is integral and routine A results in “breakthrough”, then the flow
11
change   t  of routine B is a positive integer
→ If the computation is initiated with an integral flow, each successive flow is
integral , so that the algorithm is finite, since the flow value increases by at least
one unit with each occurrence of breakthrough.
Theorem 8.1 (Integral Theorem)
If the capacity function c is integral valued, there exists a maximal flow f that is also
integral valued.
Note : c(x,y) - f(x,y) = residual capacity of arc(x,y) with respect to f
12
§9. Lower Bounds on Arc Flows
①
So far; (9.1) 0≤f(x,y) ≤c(x,y)
②
How about (9.2) l(x,y) ≤f(x,y) ≤c(x,y) ?
↔ If a feasible f exists, the only change in the labeling rules for constructing a maximal
flow is as follows ;
The flow change; for labeled x (i.e. (z±,ε)), y may be labeled as   y  ={x-, min
[ε,f(y,x)-l(y,x)] provided f(y,x)>l(y,x)
Theorem 9.1 (the analogue of Theorem 5.1)
If there is a function f satisfying (2.1) and (9.2) for some number v, then the maximal
value of v subject to these constraints is equal to the minimum of c(X, X )-l( X ,X)
taken over all X⊆N with s∈X and t∈ X .
 Assuming the existence of a function f satisfying (2.1) and (9.2) for some v, the
minimal value of v may be found in a similar way:
Labeling;
If x is labeled ( z±,ε) and if f(x,y)>l(x,y), then attach the label [ x-, min [ε, f(x,y)l(x,y) ] to y or if f(y,x)<c(y,x), assign y the label [ x+, min [ε, c(y,x)-f(y,x) ]
Theorem 9.2 (the analogue of Theorem 5.1)
If ∃a function f satisfying (2.1) and (9.2) for some value v, the minimal value of v
subject to these constraints is equal to the maximum of l(X, X )-c( X ,X) taken over all
X⊆N with s∈X and t∈ X .
Note : The questions that still remain are those of determining conditions under which
the constraints (2.1) and (9.2) are compatible, and of constructing a function f
satisfying them when these conditions hold. (They will be taken up in Chapter II. )
13
§ 10. Flows in Undirected and Mixed Networks
① Suppose that
the network is undirected or mixed, and that c(x,y) ≥0
ⓐ For an arc (x,y) which is undirected with c(x,y), interpret it as
101. 
 f ( x , y )  c( x , y )

 f ( y , x )  c( x , y )

 f ( x , y )  f ( y , x )  0
↓
The arc (x,y) has a flow capacity c(x,y) in either direction, but flow is permitted in only
one of the two directions
ⓑ For example;
How should one-way signs be put up on streets not already oriented in order to permit
the largest traffic flow from some set of points to another?
Ans) to get each undirected arc broken down into both directed flows
⇒ That is, replace each undirected arc with a pair of oppositely directed arcs
: by considering f ’ instead of f
ⓒ A moment’s thought shows that the problem can be solved by considering only one
directed network; namely, that obtained by replacing each undirected arc with a pair
of oppositely directed arcs, each having capacity equal to the old one. The reason for
this is that : For the reason of validating the scheme ⓐ(Eq.10.1); given any solution
f,v of the flow constraints (2.1) and (2.2), one can produce a solution f`,v in which
f ' ( x , y)  f ' ( y , x)  0 by taking
(10.2) f ' ( x , y)  max [0, f ( x , y )  f ( y , x )]
and f = a feas. Flow subject to constraints (2.1) and (2.2) for directed arc.
② In
conclusion;
Allowing both orientations for each undirected arc solves the original problem of
maximizing v subject to the flow constraints (2.1), capacity constraints (2.2) for
directed arcs, and constraints (10.1) for undirected arcs.
14
§11.Node Capacities and Other Extensions
Other kinds of inequality constraints in addition to bounds on arc flows can be imposed
without altering the character of the maximal flow problem.
① For
instance, suppose that each node x has a flow capacity k(x)≥0 and that it is
desired to find a maximal flow from s to t subject to both arc and node capacities
↓
maximize f(s,N) subject to
f ( x , N )  f ( N , x )  0 , x  s, t
(111
.)
(112
. ) 0  f ( x , y )  c( x , y )
(113
. )
f ( x, N )  k ( x)
(114
. )
f ( N , t )  k (t )
② This
, ( x, y)  A
,x  t
problem can be reduced to the arc capacity case by a simple device ; A simple
device for the problem;
ⓐ define a new network [N* ; A*] from [N; A] as follows;
㉠ to each x∈N, we make correspond two nodes x' , x'' ∈N*;
if (x,y)∈ A, then ( x' , y'' )∈ A *, and also ( x'' , x' )∈ A * for each x∈N
㉡ The (arc) capacity function defined on A *
(11.5) c * ( x , y )  c( x, y ), ( x, y )  A
(11.6) c * ( x , x )  k ( x), x  N
㉢ For example;
x
s
x”
t
s”
y
x’
s’
t”
y”
y’
ⓑThus, any function f satisfying (11.1)-(11.4), that is, any flow from s to t in [N; A]
that does not exceed the node capacities, yields an equivalent flow f* from s`` to t` in
[N*; A *] by defining
15
t’
. 
117
118. 
. 
119
f * ( x' , y'' )  f ( x , y ),( x , y )  A
f * ( x'' , x' )  f ( x , N ), x  t
f * ( t'' ,t' )  f ( N ,t )
and conversely.
↓
If the notion of a disconnecting set is extended to include nodes as well as arcs, the
analogue of the max-flow min-cut theorem asserts that the maximal flow value is
equal to the capacity of a disconnecting set of nodes and arcs having minimal
capacity.
ⓒ In a similar way, more general kind of constraints on the flow out of or into node x
can be reduced to the case of arc capacities by enlarging the network.
i)
For example, suppose that the nodes of the set A(x) are put into subsets
11.10
A1 ( x),, Am ( x ) ( x)
with the proviso that
11.11
ii)
Ai ( x)  A j ( x)    Ai ( x)  A j ( x)or A j ( x)  Ai ( x)
and assume that the flow constraints
(1112
. )
f ( x, Ai ( x))  ki ( x), i  1,, m( x)
iii)Depicting the
scheme of (i) & (ii) as in Fig. 11.3 & Fig. 11.4;
iv)Similarily the
case of flow into x;
( 1113
. )
f ( B j ( x ), x )  h j ( x ), j  1,,n( x )
* Notice that inequality constraints (11.2), (11.3), (11.4) are a special case of (11.12).
v)
Remarks:
If we refer to each set ( x , Ai ( x )) and ( Bj ( x ) , x ) as an elementary set of arcs, and
extend the notion of a disconnecting set of arcs to say that a collection (B) of
elementary sets is a disconnecting collection,if each chain from s to t has an arc in
common with some elementary set contained in (B), it can be shown that the
maximal flow value from s to t is equal to the minimal blocking capacity. (under the
assumption (11.11) and a similar assumption on B j ( x) ).
16
y1
∞
K1(x)
A1(x)
x’
A2(x)
y2
A1(x)
∞
x”
y3
y3
x
K3(x)
y4
y5
y6
∞
y4
x”’
∞
A3(x)
y5
K4(x)
y6
A4(x)
Fig. 11.3 [N:A]
Fig. 11.4 [N*:A*]
17
A2(x)
y2
∞
K2(x)
x
y1
§ 12. LP and Duality Principles
① The
algorithms to be presented here do not require appeal to the duality theorem, but
they are motivated by duality considerations. Moreover, we shall note that the maxflow min-cut theorem provides a proof of the duality theorem for the special case of
maximal flow problems.
② Assigning
multipliers π(x) to (2.1), multipliers  (x,y) to (2.2) then the dual has the
constraints
  ( s )   (t )  1
 ( x)   ( y )   ( x, y )  0, all ( x, y )
12.12
 ( x, y )  0, all ( x, y )
(12.13) min  c( x, y )   ( x, y )
A


v


f ( x, y ) 
f ( y, x )   0
 2.1
y A( x )
y B( x )
 v
⇔


 2.2 f ( x , y )  c( x , y ) ,all( x , y )  A

i)

if (X, X ) is a minimal cut separating s and t, it can be checked that an optimal
solution to the dual problem is provided by taking
0, for x  X
(12.14)  ( x )  
1, for x  X
1 , for ( x , y )  ( X , X )
(12.15)  ( x , y )  
0 , o / w
which follows, since (12.14) and (12.15) define a feasible solution to the dual that
produces equality between the primal form v and dual form (12.13) or one can check
the optimality properties (12.8) and (12.10).
ii)
note : the dual of the maximal flow problem always has an integral solution.
iii)
It can be shown, in fact, that all extreme points of the convex polyhedral set
18
defined by setting  (s) =0 in (12.12), which corresponds to dropping the
(redundant) source equation in the primal problem, are of the form given in
(12.14) and (12.15) for some X with s  X . Using this fact, the max-flow
min-cut theorem can be deduced from the duality theorem.
19