chapter 6 maximum flows: basic ideas

40
Chapter 6 Maximum Flows: Basic Ideas 1

Upload: jalen

Post on 21-Jan-2016

102 views

Category:

Documents


0 download

DESCRIPTION

Chapter 6 Maximum Flows: Basic Ideas. 6.1 Introduction. Formulation: Maximize v(6.1a) subject to  {j: (i, j)A} x ij -  {j: (j, i)A} x ji = v,for i = s(6.1b) = 0,for all i N\{s, t} = -v,for i = t - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 6 Maximum Flows: Basic Ideas

Chapter 6Maximum Flows: Basic Ideas

1

Page 2: Chapter 6 Maximum Flows: Basic Ideas

6.1 Introduction

Formulation:

Maximize v (6.1a)

subject to

{j: (i, j)A} xij - {j: (j, i)A} xji = v, for i = s (6.1b)

= 0, for all i N\{s, t}

= -v, for i = t

0 xij uij for each (i, j)A (6.1c)

Assumptions1. Network is directed.

2. Capacities are nonnegative integers.

3. No s-t directed path composed of infinite capacity arcs.

4. Whenever arc (i, j)A, arc (j, i)A.

• May use arcs with 0 capacities. Conceptual device. Residual network.

5. Network does not contain parallel arcs.

Network Theory and Applications 2010 2

Page 3: Chapter 6 Maximum Flows: Basic Ideas

6.2 Applications

Application 6.1 Feasible Flow Problem:

Identify a feasible flow x satisfying the constraints

{j: (i, j)A} xij - {j: (j, i)A} xji = b(i) for i N, (6.2a)

0 xij uij for all (i, j)A. (6.2b)

Add a source node s, and a sink node t.

For each node i with b(i) > 0, add an arc (s, i) with capacity b(i).

For each node i with b(i) < 0, add an arc (i, t) with capacity –b(i).

Then solve a maximum flow problem from s to t. If the maximum flow saturates all the source and sink arcs, problem has a feasible solution; otherwise, it is infeasible.

If x is a feasible flow satisfying (6.2a), let xsi = b(i) and xit = -b(i). It is a max

flow since it saturates all the source and the sink arcs.

If x is a maximum flow in the transformed network that saturates all the source and the sink arcs, this flow in the original network is feasible.

Network Theory and Applications 2010 3

Page 4: Chapter 6 Maximum Flows: Basic Ideas

Application 6.2 Problem of Representatives:

A town has r residents R1, R2, … , Rr; q clubs C1, C2, … , Cq; and p political

parties P1, P2, … , Pp.

Each resident is a member of at least one club and can belong to exactly one political party. Each club must nominate one of its members to represent it on the town’s governing council so that the number of council members belonging to the political party Pk is at most uk.

Is it possible to find a council that satisfies this “balancing” property?

Ex: r = 7, q = 4, p = 3

max flow with value equal to q = 4 gives a balanced council

Network Theory and Applications 2010 4

Page 5: Chapter 6 Maximum Flows: Basic Ideas

Ex)

Network Theory and Applications 2010 5

C1

R1

1

P1

ts

C2

C3

C4

R7

R6

R5

R4

R3

R2

P2

P3

1

1

1

1

1

1

1

1

1

1

111

1

1

1

1

1

1

1

1

u1

u2

u3

Page 6: Chapter 6 Maximum Flows: Basic Ideas

Application 6.3 Matrix Rounding Problem:

Concerned with consistent rounding of the elements, row sums, and column sums of a matrix.

(see Application 6.6 for another example of using nonzero lower bound on each arc.)

Ex)

Network Theory and Applications 2010 6

row sum

3.1 6.8 7.3 17.2

9.6 2.4 0.7 12.7

3.6 1.2 6.5 11.3

Column sum 16.3 10.4 14.5

Page 7: Chapter 6 Maximum Flows: Basic Ideas

Network Theory and Applications 2010 7

Row sum

3.1 6.8 7.3 17.2

9.6 2.4 0.7 12.7

3.6 1.2 6.5 11.3

Column sum 16.3 10.4 14.5

1 1’

t2

3

2’

3’

(17, 18)

(lij, uij)

s (12, 13)

(11, 12)

(3, 4)

(6, 7)(7, 8)

(9. 10)

(2, 3)

(0, 1)

(3, 4)(1, 2)

(6, 7)

(16, 17)

(10, 11)

(14, 15)

Page 8: Chapter 6 Maximum Flows: Basic Ideas

Application 6.4 Scheduling on Uniform Parallel Machines:

Scheduling of a set J of jobs on M uniform parallel machines. Each job jJ has processing requirement pj (number of machine days required), a release

date rj (beginning of the day when job j becomes available), and a due date dj

rj + pj (beginning of the day by which the job must be completed).

Assume that a machine can work on only one job at a time and that each job can be processed by at most one machine at a time. Preemptions are allowed.

Ex) M = 3 machines. Rank all the release and due dates, rj and dj for all j, in

ascending order and determine P 2|J| - 1 mutually disjoint intervals of dates between consecutive milestones. Let Tk, l denote the interval that starts at the

beginning of date k and ends at the beginning of date l + 1.

Network Theory and Applications 2010 8

Page 9: Chapter 6 Maximum Flows: Basic Ideas

Job(j) 1 2 3 4

Processing time (pj) 1.5 1.25 2.1 3.6

Release time (rj) 3 1 3 5

Due date (dj) 5 4 7 9

Network Theory and Applications 2010 9

2

t3

4

1.5

s

T1,2

1

1.25

2.1

3.6

T3,3

T4,4

T5,6

T7,8

1

1

21

11

2

2

2

6

3

3

6

6

Page 10: Chapter 6 Maximum Flows: Basic Ideas

6.3 Flows and Cuts

Residual network

residual capacity rij = (uij – xij) + xji, given flow x.

residual network G(x) defined using arcs with rij > 0

Network Theory and Applications 2010 10

1

2

3

4

i j(xij, uij)

(0, 1)(2, 2)

(2, 3)

(5, 5)

source

(3, 4)

sink1

2

3

4

i jrij

(12

2

5

(a) Original network G with flow x

1

sink

31

(b) Residual network G(x)

Page 11: Chapter 6 Maximum Flows: Basic Ideas

s-t cut:

Partition of N into S and S. Set of arcs whose endpoints belong to the different subsets S and S.

s-t cut: sS and tS.

forward arc, backward arc of the cut [S, S].

Let (S, S) denote the set of forward arcs in the cut, and (S, S) denote the set of backward arcs.

Capacity of an s-t cut:

u[S, S] = (i, j)(S, S) uij.

(upper bound on the maximum amount of flow we can send from the nodes in S to the nodes in S)

Minimum cut: an s-t cut whose capacity is minimum among all s-t cuts. Residual capacity of an s-t cut:

r[S, S] = (i, j)(S, S) rij.

Network Theory and Applications 2010 11

Page 12: Chapter 6 Maximum Flows: Basic Ideas

Flow across an s-t cut:

Let x be a flow. Adding the constraints (6.1b) for the nodes in S, obtain

v = iS [ {j: (i, j)A} xij - {j: (j, i)A} xji ].

Simplifying gives

v = (i, j)(S, S) xij - (i, j)(S, S) xij . (6.3)

Using xij uij and xij 0, obtain

v (i, j)(S, S) uij = u[S, S]. (6.4)

Property 6.1. The value of any s-t flow is less than or equal to the capacity of any cut.

Suppose that x is a flow of value v, and x’ is a flow of value v + v for some v 0.

From (6.4), v + v (i, j)(S, S) uij . (6.5)

Subtracting (6.3) from (6.5),

v (i, j)(S, S) (uij – xij) + (i, j)(S, S) xij .

By Assumption 6.4, rewrite (i, j)(S, S) xij as (i, j)(S, S) xji .

v (i, j)(S, S) (uij – xij + xji ) = (S, S) rij .Network Theory and Applications 2010 12

Page 13: Chapter 6 Maximum Flows: Basic Ideas

Property 6.2. For any flow x of value v, the additional flow that can be sent from s to v is less than or equal to the residual capacity of any s-t cut.

Network Theory and Applications 2010 13

Page 14: Chapter 6 Maximum Flows: Basic Ideas

6.4 Generic Augmenting Path Algorithm

Idea:

Given a feasible flow x, identify an augmenting path P in G(x).

Let = min { rij: (i, j)P}

Augment units of flow along P and update G(x)

(Stopping criteria? Optimality?)

Recovering flow values xij from residual capacities rij.

rij = (uij – xij) + xji (use +xji if arc (j, i) exists)

xij – xji = uij – rij

(1) If uij rij , set xij = uij – rij , xji = 0.

(2) Otherwise, set xij = 0, xji = rij – uij. (or compute directly for xji if (j, i)

exists)

Network Theory and Applications 2010 14

Page 15: Chapter 6 Maximum Flows: Basic Ideas

6.5 Labeling Algorithm and Max-Flow Min-Cut Theorem

Algorithm labeling;

begin

label node t;

while t is labeled do

begin

unlabel all nodes;

set pred(j) := 0 for each jN;

label node s and set LIST := {s};

while LIST or t is unlabeled do

begin

remove a node i from LIST

for each arc (i, j) in the residual network emanating from node i do

if rij > 0 and node j is unlabeled then set pred(j) := i, label node j,

and add j to LIST;

end;

if t is labeled then augment

end;

end; Network Theory and Applications 2010 15

Page 16: Chapter 6 Maximum Flows: Basic Ideas

procedure augment;

begin

use the predecessor labels to trace back from the sink to the source to

obtain an augmenting path P from node s to node t;

:= min {rij : (i, j)P};

augment units of flow along P and update the residual capacities;

end;

Network Theory and Applications 2010 16

Page 17: Chapter 6 Maximum Flows: Basic Ideas

Correctness of the Labeling Algorithm:

If t not labeled, rij = 0 for all (i, j), iS, jS (tS)

Furthermore, rij = (uij – xij) + xji , xij uij and xji 0

rij = 0 xij = uij for (i, j)(S, S)

xij = 0 for (i, j)(S, S)

substituting in v = (i, j)(S, S) xij - (i, j)(S, S) xij v = (i, j)(S, S) uij = u[S, S].

By Property 6.1, x is a maximum flow and [S, S] is a minimum cut.

Thm 6.3) (Max-Flow Min-Cut Theorem)

maximum s-t flow = minimum s-t cut

Thm 6.4) (Augmenting Path Theorem)

x* is a maximum flow G(x*) contains no augmenting path.

Network Theory and Applications 2010 17

Page 18: Chapter 6 Maximum Flows: Basic Ideas

Thm 6.5) (Integrality Theorem)

If all arc capacities are integer, the maximum flow problem has an integer maximum value.

Complexity:

Each augmentation needs O(m). Capacity of the cut (s, N\{s}) is at most nU, hence the max flow value is bounded by nU.

Each augmentation increases the flow value by at least 1.

running time is O(nmU)

(The running time can be improved much by a simple modification of the labeling algorithm. Details in Chapter 7.)

Network Theory and Applications 2010 18

Page 19: Chapter 6 Maximum Flows: Basic Ideas

Drawbacks of the Labeling Algorithm:The running time may depend on U actually.

May augment s-a-b-t and s-b-a-t alternatively 106 times.May not terminate if arc capacities are irrationalLose label information at each iterationImprovements in Chapter 7.

Network Theory and Applications 2010 19

s

b

a

t1

106 106

106 106

Page 20: Chapter 6 Maximum Flows: Basic Ideas

6.6 Combinatorial Implications of Max-Flow Min-Cut Thm

Network Connectivity:

alternative s-t path in case of some arcs (nodes) failure in communication network?

How many arc disjoint (node disjoint) s-t paths? Thm 6.7) (Menger’s Thm)

The maximum number of arc disjoint paths from s to t equals the minimum number of arcs whose removal from the network disconnects all paths from s to t.

Pf) Set the capacity of each arc as equal to 1 and solve max flow problem. Solution gives arc disjoint paths. Any s-t cut has value |(S, S)| and removal of the cut arcs disconnects s and t. From max-flow min-cut theorem, max number of arc disjoint paths equals the minimum number of cut arcs.

Network Theory and Applications 2010 20

Page 21: Chapter 6 Maximum Flows: Basic Ideas

Thm 6.8) (Menger’s Thm)

maximum number of node disjoint s-t paths = minimum number of s-t vertex cut.

Pf) Construct G’ using node splitting

node i in G → node i’, i’’, and arc (i’, i’’) with capacity 1(except s, t)

incoming arcs to node i → incoming arcs to i’

outgoing arcs from node i → outgoing arcs from i’’

(i, j)A → set capacity of original arcs at Flow of v units in G’ gives v arc disjoint paths and

v arc disjoint paths in G’ v node disjoint paths in G

Also any finite capacity s-t cut in G’ has only node-splitting arcs

Therefore, any s-t cut in G’ with capacity k corresponds to a set of k nodes whose removal from G destroys all paths from node s to node t.

By max-flow min-cut theorem, max number of node-disjoint s-t paths in G = minimum number of s-t vertex cut in G.

For undirected network, can replace each edge by two directed arcs with opposite direction. Then the results still hold for undirected case.

Network Theory and Applications 2010 21

Page 22: Chapter 6 Maximum Flows: Basic Ideas

Matchings and Covers:

Directed bipartite network G = (N1N2, A)

(Also can consider undirected case)

Matching: subset A’A such that no two arcs in A’ are incident to the same node (i.e. they do not have any common endpoint).

Node cover: subset N’N = N1N2 such that every arc in A is incident to

one of the nodes in N’.

(For undirected general graph) For any matching M and any cover C, each edge in M has an end in C and the corresponding nodes in C are all distinct.

=> |M| |C| (primal-dual relation)

Network Theory and Applications 2010 22

Page 23: Chapter 6 Maximum Flows: Basic Ideas

2’

5’

Network Theory and Applications 2010 23

2

3

4

1

5

2’

3’

4’

1’

5’

2

3

4

1

5

3’

4’

1’

Page 24: Chapter 6 Maximum Flows: Basic Ideas

Thm 6.9. (König-Egerváry Theorem, 1931)

In a bipartite network G, the maximum cardinality of any matching equals the minimum cardinality of any node cover of G.

Pf) Add a source node s and an arc (s, i) for each iN1. Similarly, add a sink

node t and an arc (j, t) for each jN2 (called artificial arcs).

Set the capacity of each artificial arc equal to 1 and the capacity of each original arc equal to .

Then s-t flow of value v in G’. matching of size v in G.

Next show that any node cover H of G defines an s-t cut of capacity |H| in G’.

Given a node cover H, construct a set of arcs Q as follows:

For each iH, if iN1, add (s,i) to Q, and if iN2, add (i, t) to Q.

Since H is a node cover, any s-t path contains one arc in Q, hence Q is a cut with capacity |H|

Conversely, suppose Q is a s-t cut of capacity k in G’. Q consists of artificial arcs only since original arcs have infinite capacity.

Network Theory and Applications 2010 24

Page 25: Chapter 6 Maximum Flows: Basic Ideas

(continued)

If (s,i)Q or (i, t)Q, we add node i to H. Now each original arc (i, j) defines a path s-i-j-t in G’. Since Q is an s-t cut, either (s, i)Q or (j, t)Q or both.

Hence iH or jH or both. Consequently, H is a node cover.

By the max-flow min-cut theorem, both values are equal. So maximum cardinality of any matching equals the minimum cardinality of any node cover of G.

Network Theory and Applications 2010 25

Page 26: Chapter 6 Maximum Flows: Basic Ideas

Network Theory and Applications 2010 26

2’

5’

2

3

4

1

5

3’

4’

1’

s t

1 1

Page 27: Chapter 6 Maximum Flows: Basic Ideas

View points as LP:

IP formulation of max cardinality matching (undirected)

max 1x

s.t. Ax 1 A: nodearc incidence matrix

x 0 and integer

(each constraint has the form i(i) xi 1, where (i) is the set of edges

incident to node i.) Matrix A is called totally unimodular if the determinant of any square

submatrix of A is 0 or 1. If A is totally unimodular, a basic feasible solution to the LP is integer valued (Use Cramer’s rule. If rhs is integer valued)

If G is bipartite, it can be shown that A is totally unimodular which implies that there exits an integer optimal solution to the LP relaxation of the matching problem. Hence we can solve it as LP instead of IP.

Network Theory and Applications 2010 27

Page 28: Chapter 6 Maximum Flows: Basic Ideas

The dual of the LP is:

D) min 1y

s.t. y’A 1

y 0

Integer version of this problem is to find a minimum node cover of G. Since the transpose of a totally unimodular matrix is totally unimodular, we can solve it as LP too. From strong duality of LP, König-Egerváry Theorem follows.

Network Theory and Applications 2010 28

Page 29: Chapter 6 Maximum Flows: Basic Ideas

Related results on graphs G = (V, E) (undirected): node packing (stable set): set of nodes such that no two nodes in the set is

joined by an edge in G. ((G): independence number of G)

node cover: set of nodes such that every edge in G is incident to at least one node in the set. (cover the edges by nodes) ((G): covering number)

edge packing (matching) (’(G): edge independence number)

edge covering: set of edges such that every node is incident to at least one edge in the set. (cover the nodes by edges) (’(G): edge covering number)

Prop) (G) + (G) = |V|

Pf) SV is a node packing V\S is a node covering.

Network Theory and Applications 2010 29

Page 30: Chapter 6 Maximum Flows: Basic Ideas

Prop) ’(G) + ’(G) = |V|

Pf) Let M be a maximum cardinality matching, and let C be a minimum cardinality covering of nodes by edges.

Given M, let U be the set of nodes of degree zero relative to M. Thus |U| = |V| - 2|M|. Since we obtain a cover by adding |U| edges to M, we have

|C| |M| + |U| = |M| + |V| - 2|M| = |V| - |M|. |M| + |C| |V|.

Given C, let M’ be a maximum cardinality matching in (V, C), and let U’ be the set of nodes of degree zero relative to M’ in (V, C). Then

|C| = |M’| + |U’| = |M’| + |V| - 2|M’| = |V| - |M’|

and |M| |M’| = |V| - |C| |M| + |C| |V|.

Hence |M| + |C| = |V|.

Network Theory and Applications 2010 30

Page 31: Chapter 6 Maximum Flows: Basic Ideas

Optimal Closure in a Directed Graph:

Situation: If we want to choose project v, then we must choose project w also. We want to choose the set of projects which gives maximum profit

Model as a problem on a directed graph. Use directed arc (v, w) if project w precedes project v. Find the maximum benefit set C V such that (C) = . (closure of G)

Example: open pit mining problem.

Partition the volume to be considered for excavation into small 3-dimensional blocks.

Block v produces profit of bv (profit of ore in v – cost of excavating v )

If we need to excavate block w to excavate block v, we include arc (v, w) in G.

Want to find a closed set in G (no outgoing arc from the set) which maximizes profit.

Network Theory and Applications 2010 31

Page 32: Chapter 6 Maximum Flows: Basic Ideas

Convert to min-cut problem (max-flow problem)

Divide the nodes into two sets A and B.

vA if bv 0 and v B if bv < 0.

Add a source r and a sink s to the graph and add arcs (r, v) for each v A and arcs (v, s) for each v B.

Capacity on the arcs are: u(r, v)= bv for each vA and u(v, s)= - bv for each v B.

The upper bounds on the original arcs are infinite. A set C of nodes is closed if and only if the cut C {r} has finite capacity. If the capacity of C {r} is finite, then it equals

Network Theory and Applications 2010 32

( )

{ } { ( ) ( )}

rv vs v vv A C v B C v A C v B C

v v v v v vv A C v A C v A C v B C v A v C

u u b b

b b b b b b

Since v A bv is a constant, minimizing the capacity of C {r}

amounts to maximizing vC bv .

Page 33: Chapter 6 Maximum Flows: Basic Ideas

Network Theory and Applications 2010 33

(Example)

4

-1

2

-3

-13

2 -7

4

1

2 3

13

27

s

rC

( )

{ } { ( ) ( )}

rv vs v vv A C v B C v A C v B C

v v v v v vv A C v A C v A C v B C v A v C

u u b b

b b b b b b

Page 34: Chapter 6 Maximum Flows: Basic Ideas

6.7 Flows with Lower Bounds

Maximize v

subject to

{j: (i, j)A} xij - {j: (j, i)A} xji = v, for i = s

= 0, for all i N\{s, t}

= -v, for i = t

lij xij uij for each (i, j)A

2 Stages

(1) Find an initial feasible flow or prove that the problem is infeasible.

(2) Establish a maximum flow.

Network Theory and Applications 2010 34

Page 35: Chapter 6 Maximum Flows: Basic Ideas

(2) Determining a Maximum Flow:

Set the residual capacity as rij = (uij – xij) + (xji – lji)

Work on the residual capacities as before.

Retrieving actual flows:

Use change of variables.

For all arcs (i, j), let uij’ = uij – lij, rij’ = rij, and xij’ = xij – lij.

The residual capacity of arc (i, j) is rij = (uij – xij) + (xji – lji) = (uij’ – xij’) + xji’

= rij’. Similarly, rji’ = uji’ – xji’ + xij’.

We have xij’ = max (uij’ – rij’, 0) (and xji’ = max (rij’ – uij’, 0) if (j, i) exists)

xij = lij + max (uij – rij – lij, 0)

xji = lji + max (uji – rji – lji, 0)

Network Theory and Applications 2010 35

Page 36: Chapter 6 Maximum Flows: Basic Ideas

Proving that the algorithm is correct:

Define the capacity of an s-t cut [S, S] as

u[S, S] = (i, j)(S, S) uij - (i, j)(S, S) lij. (6.7)

(maximum amount of flow that can be sent out of the node set S.)

From (6.3), have v = (i, j)(S, S) xij - (i, j)(S, S) xij . (6.8)

Using xij uij and lij xij, have

v (i, j)(S, S) uij - (i, j)(S, S) lij = u[S, S]. (6.9)

At termination of the algorithm, obtain an s-t cut with rij = 0 for (i, j)(S, S).

Since rij = (uij – xij) + (xji – lji) 0, have xij = uij for (i, j)(S, S) and xij = lij for

(i, j)(S, S). Substituting in (6.8), v = u[S, S] = (i, j)(S, S) uij - (i, j)(S, S) lij.

From (6.9), [S, S] is a min-cut and x is a max-flow.

Network Theory and Applications 2010 36

Page 37: Chapter 6 Maximum Flows: Basic Ideas

(1) Establishing a Feasible Flow:

Add arc (t, s) with infinite capacity and consider the feasible circulation problem.

{j: (i, j)A} xij - {j: (j, i)A} xji = 0, for all i N

lij xij uij for all (i, j)A

Replace the variables with xij = xij’ + lij, then

{j: (i, j)A} xij’ - {j: (j, i)A} xji’ = b(i), for all i N

0 xij’ uij - lij for all (i, j)A

( b(i) = {j: (j, i)A} lji - {j: (i, j)A} lij. Note that iN b(i) = 0)

Feasible flow problem in Application 6.1.

Network Theory and Applications 2010 37

Page 38: Chapter 6 Maximum Flows: Basic Ideas

Characterizing a Feasible flow:

Necessary and sufficient conditions that a circulation problem has a feasible solution. ( (i, j)(S, S) lij (i, j)(S, S) uij )

(Necessity) Let SN. By summing the mass balance constraints of the nodes in S, we obtain (i, j)(S, S) xij - (i, j)(S, S) xij = 0.

Using xij uij in the first term and xij lij in the second term, we find that

(i, j)(S, S) lij (i, j)(S, S) uij.

(Sufficiency) Use algorithmic proof.

Start with a circulation that satisfies the mass balance and capacity constraints, but might violate some of the lower bound constraints. Algorithm either finds a feasible circulation or identifies the set S N that violates the condition.

An arc (i, j) is called infeasible if xij < lij, and called feasible if lij xij.

Algorithm selects an infeasible arc (p, q) and try to make it feasible by increasing the flow on this arc. → find q-p flow augmenting path and augment flow.

Network Theory and Applications 2010 38

Page 39: Chapter 6 Maximum Flows: Basic Ideas

Initially label q. Starting from a labeled node, for forward arcs, label the head of the arc if xij < uij. For backward arcs, label the tail node if xij > lij. If p

labeled, augment flow.

If algorithm fails, let S be the set of labeled nodes.

Then, for (i, j)(S, S), xij = uij, and for (i, j)(S, S), xij lij. Arc (p, q) is in

(S, S) and xpq < lpq.

From the mass balance constraints, we have (i, j)(S, S) xij - (i, j)(S, S) xij = 0.

Hence (i, j)(S, S) uij < (i, j)(S, S) lij, which is a contradiction to our assumption.

So the augmentation must be successful until there exists no infeasible arc.

Thm 6.11) (Hoffman’s Circulation Theorem)

A circulation problem with nonnegative lower bounds on arc flows is feasible if and only if for every set S of nodes

(i, j)(S, S) lij (i, j)(S, S) uij

Network Theory and Applications 2010 39

Page 40: Chapter 6 Maximum Flows: Basic Ideas

Note that the proof of Theorem 6.11 provides a one pass algorithm to solve a circulation problem, starting with the zero flow.

Thm 6.12) The feasibility flow problem stated in (6.2) has a feasible solution if and only if for every subset SN, b(S) –u[S, S] 0, where b(S) = iS b(i).

Network Theory and Applications 2010 40