www.monash.edu.au 1 COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material has been reproduced and communicated to you by or on behalf of Monash University pursuant to Part VB of the Copyright Act 1968 (the Act). The material in this communication may be subject to copyright under the Act. Any further reproduction or communication of this material by you may be the subject of copyright protection under the Act. Do not remove this notice.
30
Embed
Www.monash.edu.au 1 COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material has been reproduced and communicated to you by or on behalf.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
www.monash.edu.au
1
COMMONWEALTH OF AUSTRALIA
Copyright Regulations 1969
WARNING
This material has been reproduced and communicated to you by or on behalf of Monash University pursuant to
Part VB of the Copyright Act 1968 (the Act). The material in this communication may be subject to copyright under
the Act. Any further reproduction or communication of this material by you may be the subject of copyright protection under the Act. Do not remove this notice.
www.monash.edu.au
FIT2004
Algorithms & Data Structures L15: Flow Problems
Prepared by: Bernd Meyer April 2007
www.monash.edu.au
3
Maximum Flow and Minimum Cut
• Max flow and min cut.– MaxFlow: determine the maximum possible flow from a
source node a to a sink node b in some capacity-limited transport network
– Min cut is dual to max flow.– Fundamental problems in combinatorial optimization.
• Many other problems reduce to max flow– scheduling (airlines, trains etc.)– transportation problems– matching problems– network routing– etc.
www.monash.edu.au
4
• single commodity transport network.• directed graph G = (V, E), no parallel edges.• s = source, t = sink.• c(e) = capacity of edge e.
Flow Networks
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15 4
4capacity
source sink
www.monash.edu.au
5
• An s-t cut is a partition (A, B) of V with s A and t B. Its capacity is:
Cuts
Capacity = 10 + 5 + 15 = 30
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15 4
4
A
€
cap( A, B) = c(e)e out of A
∑
www.monash.edu.au
6
• An s-t cut is a partition (A, B) of V with s A and t B. Its capacity is:
Cuts
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15 4
4
A
€
cap( A, B) = c(e)e out of A
∑
Capacity = 9 + 15 + 8 + 30 = 62
www.monash.edu.au
7
• Find an s-t cut of minimum capacity.
Minimum Cut Problem
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4 A
Capacity = 10 + 8 + 10 = 28
www.monash.edu.au
8
• An s-t flow is a function that satisfies:– (capacity) For each e E:
– (conservation) For each v V – {s, t}:
• The value of a flow f is:
Flows
Value = 4
€
f (e)e in to v
∑ = f (e)e out of v
∑
€
0 ≤ f (e) ≤ c(e)
€
v( f ) = f (e) e out of s
∑ .
4
0
0
0
0 0
0 4 4
00
0
0
capacityflow
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15 4
4 0
4
www.monash.edu.au
9
• An s-t flow is a function that satisfies:– (capacity) For each e E:
– (conservation) For each v V – {s, t}:
• The value of a flow f is:
Flows
Value = 24
€
f (e)e in to v
∑ = f (e)e out of v
∑
€
0 ≤ f (e) ≤ c(e)
€
v( f ) = f (e) e out of s
∑ .
10
6
6
11
1 10
3 8 8
00
0
11
capacityflow
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4 0
4
www.monash.edu.au
10
• Find s-t flow of maximum value.
Maximum Flow Problem
10
9
9
14
4 10
4 8 9
1
0 0
0
14
capacity
flow
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4 0
Value = 28
www.monash.edu.au
11
• Flow value lemma. Let f be any flow, let (A, B) be any s-t cut. The net flow across the cut is equal to the amount leaving s.
Flows and Cuts
10 6 6
11
1 10
3 8 8
0
0
0
11
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4 0
Value = 24
€
f (e)e out of A
∑ − f (e)e in to A
∑ = v( f )
4
A
www.monash.edu.au
12
• Flow value lemma. Let f be any flow, let (A, B) be any s-t cut. The net flow across the cut is equal to the amount leaving s.
Flows and Cuts
10
6
6
11
1 10
3 8 8
0
0
0
11
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4 0
Value = 24
€
f (e)e out of A
∑ − f (e)e in to A
∑ = v( f )
4
A
www.monash.edu.au
13
• Flow value lemma. Let f be any flow, let (A, B) be any s-t cut. The net flow across the cut is equal to the amount leaving s.
Flows and Cuts
10
6
6
11
1 10
3 8 8
0
0
0
11
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4 0
Value = 24
€
f (e)e out of A
∑ − f (e)e in to A
∑ = v( f )
4
A
www.monash.edu.au
14
Flows and Cuts
• Weak duality. Let f be any flow, and let (A, B) be any s-t cut. The value of the flow is at most the capacity of the cut.
Cut capacity = 30 Flow value 30
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4
Capacity = 30
A
www.monash.edu.au
15
Certificate of Optimality
• Corollary. Let f be any flow, let (A, B) be any s-t cut. If v(f) = cap(A, B), then f is a max flow and (A, B) is a min cut.
Value of flow = 28Cut capacity = 28 Flow value 28
10
9
9
14
4 10
4 8 9
1
0 0
0
14
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10 15 4
4 0A
www.monash.edu.au
16
Towards a Max Flow Algorithm
• Greedy algorithm.– Start with f(e) = 0 for all edge e E.
– Find an s-t path P where each edge has f(e) < c(e).
– Augment flow along path P.
– Repeat until you get stuck.s
1
2
t
10
10
0 0
0 0
0
20
20
30
Flow value = 0
www.monash.edu.au
17
Towards a Max Flow Algorithm
• Greedy algorithm.– Start with f(e) = 0 for all edge e E.
– Find an s-t path P where each edge has f(e) < c(e).
– Augment flow along path P.
– Repeat until you get stuck.s
1
2
t
10
10
20 0
0 20
20
20
20
30
Flow value = 20
www.monash.edu.au
18
Towards a Max Flow Algorithm
greedy = 20
s
1
2
t
20 10
10 20
30
20 0
0
20
20
opt = 30
s
1
2
t
20 10
10 20
30
20 10
10
10
20
This is only a local optimum!
www.monash.edu.au
19
Residual Graph
• Original edge: e = (u, v) E.– Flow f(e), capacity c(e).
• Residual edge.– "Undo" flow sent.– e = (u, v) and eR = (v, u).– Residual capacity:
• Residual graph: Gf = (V, Ef ).– Residual edges with positive