introduction to algorithms...introduction to algorithms 6.046j/18.401j lecture 20 network flow i •...

31
Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I Flow networks Maximum-flow problem Flow notation Properties of flow Cuts Residual networks Augmenting paths Prof. Charles E. Leiserson

Upload: others

Post on 06-Oct-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Introduction to Algorithms6.046J/18.401J

LECTURE 20Network Flow I• Flow networks• Maximum-flow problem • Flow notation• Properties of flow • Cuts • Residual networks • Augmenting paths

Prof. Charles E. Leiserson

Page 2: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Flow networksDefinition. A flow network is a directed graphG = (V, E) with two distinguished vertices: a source s and a sink t. Each edge (u, v) ∈ E has a nonnegative capacity c(u, v). If (u, v) ∉ E, then c(u, v) = 0.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.2

Page 3: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Flow networksDefinition. A flow network is a directed graphG = (V, E) with two distinguished vertices: a source s and a sink t. Each edge (u, v) ∈ E has a nonnegative capacity c(u, v). If (u, v) ∉ E, then c(u, v) = 0.

Example:

ss tt

3 2

3

3 2

2 3

31

2

1

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.3

Page 4: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Flow networks

Definition. A positive flow on G is a function p : V × V → R satisfying the following: • Capacity constraint: For all u, v ∈ V,

0 ≤ p(u, v) ≤ c(u, v). • Flow conservation: For all u ∈ V – {s, t},

∑ v u p ) − ∑ u v p ) = 0.( , ( ,v∈V v∈V

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.4

Page 5: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Flow networks

Definition. A positive flow on G is a function p : V × V → R satisfying the following: • Capacity constraint: For all u, v ∈ V,

0 ≤ p(u, v) ≤ c(u, v). • Flow conservation: For all u ∈ V – {s, t},

∑ v u p ) − ∑ u v p ) = 0.( , ( , v∈V v∈V

The value of a flow is the net flow out of the source:

∑ v s p ) − ∑ s v p ) .( , ( , v∈V v∈V

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.5

Page 6: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

A flow on a networkpositive capacityflow

1:1

2:2 1:3 2:3

ss 0:1 1:3 2:3 1:2 tt

2:2 1:22:3

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.6

Page 7: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

A flow on a networkpositive capacityflow

1:1

2:2 1:3 2:3

ss 0:1 1:3 2:3 1:2 tt

2:2 u 2:3 1:2

Flow conservation (like Kirchoff’s current law):• Flow into u is 2 + 1 = 3. • Flow out of u is 0 + 1 + 2 = 3. The value of this flow is 1 – 0 + 2 = 3.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.7

Page 8: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

The maximum-flow problem

Maximum-flow problem: Given a flow network G, find a flow of maximum value on G.

2:2 2:3 2:3

ss 0:1 0:3 2:3 1:2 tt1:1

2:22:2 3:3

The value of the maximum flow is 4.© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.8

Page 9: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Flow cancellationWithout loss of generality, positive flow goes either from u to v, or from v to u, but not both.

vv

uu

2:3

vv

uu

1:31:2 0:2 Net flow from u to v in both cases is 1.

The capacity constraint and flow conservation are preserved by this transformation. INTUITION: View flow as a rate, not a quantity.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.9

Page 10: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

A notational simplification

IDEA: Work with the net flow between two vertices, rather than with the positive flow.Definition. A (net) flow on G is a function f : V × V → R satisfying the following: • Capacity constraint: For all u, v ∈ V,

f (u, v) ≤ c(u, v). • Flow conservation: For all u ∈ V – {s, t},

,∑ f ( v u ) = 0. v∈V

• Skew symmetry: For all u, v ∈ V, f (u, v) = –f (v, u).

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.10

Page 11: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

A notational simplification

IDEA: Work with the net flow between two vertices, rather than with the positive flow.Definition. A (net) flow on G is a function f : V × V → R satisfying the following: •

f (u, v) ≤ c(u, v).Flow conservation: For all u ∈ V – {s, t},

, v∈V ∑ f ( v u ) = 0.

Skew symmetry: For all u, v ∈ V, f (u, v) = –f (v, u).

Capacity constraint: For all u, v ∈ V,

One summation instead of two.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.11

Page 12: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Equivalence of definitionsTheorem. The two definitions are equivalent.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.12

Page 13: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Equivalence of definitionsTheorem. The two definitions are equivalent. Proof. (⇒) Let f (u, v) = p(u, v) – p(v, u). • Capacity constraint: Since p(u, v) ≤ c(u, v) and

p(v, u) ≥ 0, we have f (u, v) ≤ c(u, v).• Flow conservation:

∑ f ( v u ) =∑( v u p ) − u v p )), ( , ( , v∈V v∈V

=∑ v u p ) −∑ u v p )( , ( , v∈V v∈V

• Skew symmetry:f (u, v) = p(u, v) – p(v, u)

= – (p(v, u) – p(u, v)) = – f (v, u).

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.13

Page 14: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Proof (continued)(⇐) Let

f (u, v) if f(u, v) > 0,p(u, v) = 0 if f(u, v) ≤ 0.

• Capacity constraint: By definition, p(u, v) ≥ 0. Since f (u, v) ≤ c(u, v), it follows that p(u, v) ≤ c(u, v).

• Flow conservation: If f (u, v) > 0, then p(u, v) – p(v, u) = f (u, v). If f (u, v) ≤ 0, then p(u, v) – p(v, u) = – f (v, u) = f (u, v) by skew symmetry. Therefore,

∑ v u p ) −∑ u v p ) =∑ f ( v u ).( , ( , , v∈V v∈V v∈V

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.14

Page 15: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Notation

Definition. The value of a flow f, denoted by | f |, is given by

f = ∑ f ( v s ), V v ∈

,= f ( V s ) .Implicit summation notation: A set used in an arithmetic formula represents a sum over the elements of the set. • Example — flow conservation:

f (u, V) = 0 for all u ∈ V – {s, t}.© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.15

Page 16: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Simple properties of flow

Lemma. • f (X, X) = 0, • f (X, Y) = – f (Y, X), • f (X∪Y, Z) = f (X, Z) + f (Y, Z) if X∩Y = ∅.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.16

Page 17: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Simple properties of flow

Lemma. • f (X, X) = 0, • f (X, Y) = – f (Y, X), • f (X∪Y, Z) = f (X, Z) + f (Y, Z) if X∩Y = ∅.

Theorem. | f | = f (V, t).Proof.

| f | = f (s, V) = f (V, V) – f (V–s, V) Omit braces. = f (V, V–s) = f (V, t) + f (V, V–s–t) = f (V, t).

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.17

Page 18: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Flow into the sink

2:2 2:3 2:3

ss 0:1 0:3 1:3 0:2 tt1:1

2:22:2 3:3

| f | = f (s, V) = 4 f (V, t) = 4

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.18

Page 19: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

CutsDefinition. A cut (S, T) of a flow network G = (V, E) is a partition of V such that s ∈ S and t ∈ T. If f is a flow on G, then the flow across the cut is f (S, T).

2:2 2:3 2:3 ∈ S

ss 0:1 0:3 1:3 0:2 tt ∈ T1:1

2:22:2 3:3

f (S, T) = (2 + 2) + (– 2 + 1 – 1 + 2) = 4

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.19

Page 20: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Another characterization of flow value

Lemma. For any flow f and any cut (S, T), we have | f | = f (S, T).

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.20

Page 21: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Another characterization of flow value

Lemma. For any flow f and any cut (S, T), we have | f | = f (S, T). Proof. f (S, T) = f (S, V) – f (S, S)

= f (S, V) = f (s, V) + f (S–s, V) = f (s, V) = | f |.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.21

Page 22: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Capacity of a cutDefinition. The capacity of a cut (S, T) is c(S, T).

2:2 2:3 2:3 ∈ S

ss 0:1 0:3 1:3 0:2 tt ∈ T1:1

2:22:2 3:3

c(S, T) = (3 + 2) + (1 + 2 + 3) = 11

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.22

Page 23: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Upper bound on the maximumflow value

Theorem. The value of any flow is bounded above by the capacity of any cut.

.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.23

Page 24: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Upper bound on the maximumflow value

Theorem. The value of any flow is bounded above by the capacity of any cut.

f = T S f )( ,Proof. ,= ∑∑ f ( v u )

S vu∈ ∈T ≤ ∑∑ v u c )( ,

S vu∈ ∈T ( ,= T S c ) .

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.24

Page 25: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Residual networkDefinition. Let f be a flow on G = (V, E). The residual network Gf (V, Ef ) is the graph with strictly positive residual capacities

cf (u, v) = c(u, v) – f (u, v) > 0. Edges in Ef admit more flow.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.25

Page 26: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Residual networkDefinition. Let f be a flow on G = (V, E). The residual network Gf (V, Ef ) is the graph with strictly positive residual capacities

cf (u, v) = c(u, v) – f (u, v) > 0. Edges in Ef admit more flow.

uu vv

0:1

G: uu vv

4

Gf :

Example:

3:5 2

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.26

Page 27: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Residual networkDefinition. Let f be a flow on G = (V, E). The residual network Gf (V, Ef ) is the graph with strictly positive residual capacities

cf (u, v) = c(u, v) – f (u, v) > 0. Edges in Ef admit more flow.

uu vv

0:1

3:5

G: uu vv

4

2

Gf :

Example:

Lemma. | Ef | ≤ 2| E |. © 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.27

Page 28: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Augmenting pathsDefinition. Any path from s to t in Gf is an aug­menting path in G with respect to f. The flow value can be increased along an augmentingpath p by c f ( p) = min {c f ( v u )}.,

,( v u )∈p

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.28

Page 29: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Augmenting pathsDefinition. Any path from s to t in Gf is an aug­menting path in G with respect to f. The flow value can be increased along an augmentingpath p by c f ( p) = min {c f ( v u )}.,

,( v u )∈p

ss

3:5

G: 2:6 0:2

tt

2:5Ex.:

c5:5 2:3

f (p) = 2 2 4 7 2 3

ssGf : tt 3 2 1 2

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.29

Page 30: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Max-flow, min-cut theorem

Theorem. The following are equivalent:1. f is a maximum flow. 2. Gf contains no augmenting paths.3. | f | = c(S, T) for some cut (S, T) of G.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.30

Page 31: Introduction to Algorithms...Introduction to Algorithms 6.046J/18.401J LECTURE 20 Network Flow I • Flow networks • Maximum-flow problem • Flow notation • Properties of flow

Max-flow, min-cut theorem

Theorem. The following are equivalent:1. f is a maximum flow. 2. Gf contains no augmenting paths.3. | f | = c(S, T) for some cut (S, T) of G.

Proof (and algorithms). Next time.

© 2001–4 by Charles E. Leiserson Introduction to Algorithms November 24, 2004 L20.31