Upload
cesar-arturo-granados
View
298
Download
0
Embed Size (px)
Citation preview
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 2/69
Maximum Flow and Minimum Cut
•
Max flow and min cut. –
Two very rich algorithmic problems.
–
Cornerstone problems in combinatorial optimization.
–
Beautiful mathematical duality.
•
Nontrivial applications / reductions. –
Data mining.
–
Project selection.
–
Airline scheduling.
–
Image segmentation.
–
Network connectivity.
–
Network reliability.
–
Distributed computing.
–
Security of statistical data.
–
Network intrusion detection.
–
Multi-camera scene reconstruction.
– Many many more . . .
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 3/69
Minimum Cut Problem
•
Flow network.
– Abstraction for material flowing through the edges. –
G = (V, E) = directed graph, no parallel edges.
–
Two distinguished nodes: s = source, t = sink.
– c(e) = capacity of edge e.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 4/69
Cuts
•
Def.
An s-t
cut
is a partition (A, B) of V with s in A and t in
B.
•
Def.
The capacity
of a cut (A, B) is:
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 5/69
Cuts
•
Def.
An s-t
cut
is a partition (A, B) of V with s in A and t in
B.
•
Def.
The capacity
of a cut (A, B) is:
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 6/69
Minimum Cut Problem
•
Min s-t
cut problem.
Find an s-t
cut of minimum
capacity.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 7/69
Flows
•
Def . An s-t
flow
is a function that satisfies:
– For each e in E: 0 ≤ f(e) ≤ c(e) (capacity) –
For each v in V-{s,t}: (conservation)
• Def . The value of a flow f is:
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 10/69
Maximum Flow Problem
•
Max flow problem. Find s-t
flow of maximum
value.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 11/69
Flows and Cuts
•
Flow value lemma. Let f be any flow, and let (A,
B) be any s-t cut. Then, the net flow sent acrossthe cut is equal to the amount leaving s.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 15/69
Flows and Cuts
•
Flow value lemma. Let f be any flow, and let (A, B) be
any s-t
cut. Then,
• Pf .
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 16/69
Flows and Cuts
•
Weak duality. Let f be any flow, and let (A, B) be
any s-t cut. Then the value of the flow is at mostthe capacity of the cut.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 17/69
Flows and Cuts
•
Weak duality. Let f be any flow. Then, for any s-t
cut (A, B) we have v(f)≤ cap(A, B).
• Pf .
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 18/69
Certificate of Optimality
•
Corollary. Let f be any flow, and let (A, B) be any
cut. If v(f) = cap(A, B), then f is a max flow and(A, B) is a min cut.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 19/69
Towards a Max Flow Algorithm
•
Greedy algorithm.
–
Start with f(e) = 0 for all edge e in 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.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 20/69
Towards a Max Flow Algorithm
•
Greedy algorithm.
–
Start with f(e) = 0 for all edge e in 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.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 21/69
Residual Graph
•
Original edge: e = (u, v) in E.
– Flow f(e), capacity c(e).• Residual edge.
–
"Undo" flow sent.
–
e = (u, v) and eR
= (v, u).
–
Residual capacity:
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 22/69
Ford-Fulkerson Algorithm
•
Residual graph: Gf
= (V, Ef
).
– Residual edges with positive residualcapacity.
–
E
f = {e : f(e) < c(e)} U {eR
: c(e) > 0}.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 23/69
Augmenting Path Algorithm
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 24/69
Max-Flow Min-Cut Theorem
• Augmenting path theorem. Flow f is a max flowiff there are no augmenting paths.
• Max-flow min-cut theorem. [Ford-Fulkerson1956]
The value of the max flow is equal to the
value of the min cut.• Proof strategy. We prove both simultaneously byshowing:
– (i) There exists a cut (A, B) such that v(f) = cap(A, B). –
(ii) Flow f is a max flow.
–
(iii) There is no augmenting path relative to f.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 25/69
Max-Flow Min-Cut Theorem
• (i) => (ii) This was the corollary to weak dualitylemma.
• (ii) => (iii) We show contrapositive. –
Let f be a flow. If there exists an augmenting path,then we can improve f by sending flow along path.
• (iii) => (i) –
Let f be a flow with no augmenting paths.
– Let A be set of vertices reachable from s in residualgraph.
–
By definition of A, s in A.
–
By definition of A, t not in A.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 26/69
Running Time
•
Assumption. All capacities are integers
between 1 and C.• Invariant. Every flow value f(e) and every
residual capacities cf (e) remains an integer throughout the algorithm.
•
Theorem. The algorithm terminates in at
most v(f*) ≤ nC iterations.
•
Pf . Each augmentation increase value by
at least 1.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 27/69
Running Time
•
Integrality theorem. If all capacities are
integers, then there exists a max flow f for which every flow value f(e) is an integer.
• Pf . Since algorithm terminates, theoremfollows from invariant
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 28/69
Ford-Fulkerson: Exponential
Number of Augmentations•
Q. Is generic Ford-Fulkerson algorithm polynomial in
input size?
–
m, n, and log C
•
A. No. If max capacity is C, then algorithm can take C
iterations.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 29/69
Choosing Good Augmenting Paths
• Use care when selecting augmenting paths. –
Some choices lead to exponential algorithms.
–
Clever choices lead to polynomial algorithms.
–
If capacities
are irrational, algorithm not guaranteed to
terminate!
• Goal: choose augmenting paths so that: –
Can find augmenting paths efficiently.
–
Few iterations.
• Choose augmenting paths with: [Edmonds-Karp1972, Dinitz 1970] –
Max bottleneck capacity.
–
Sufficiently large bottleneck capacity.
–
Fewest number of edges.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 30/69
Capacity Scaling
•
Intuition.
Choosing path with highest bottleneck capacity
increases flow by max possible amount.
–
Don't worry about finding exact highest bottleneck path.
–
Maintain scaling parameter Δ.
–
Let Gf
( Δ) be the subgraph
of the residual graph consisting of
only arcs with capacity at least Δ.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 32/69
Capacity Scaling: Correctness
• Assumption. All edge capacities are integersbetween 1 and C.
• Integrality invariant. All flow and residualcapacity values are integral.
• Correctness. If the algorithm terminates, then f isa max flow.
•
Pf.
– By integrality invariant, when Δ = 1 => Gf
( Δ) = Gf
.
–
Upon termination of Δ
= 1 phase, there are no
augmenting paths.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 33/69
Capacity Scaling: Running Time
•
Lemma 1. The outer while loop repeats 1 + ceiling(log2C) times.
• Pf . Initially C≤Δ<2C. Δ decreases by a factor of 2 eachiteration.
•
Lemma 2. Let f be the flow at the end of a Δ-scalingphase. Then the value of the maximum flow is at most
v(f) + m Δ.•
Lemma 3. There are at most 2m augmentations per scaling phase. –
Let f be the flow at the end of the previous scaling phase.
–
L2 => v(f*) ≤
v(f) + m (2 Δ).
–
Each augmentation in a '-phase increases v(f) by at least '. !
•
Theorem. The scaling max-flow algorithm finds a max
flow in O(m log C) augmentations. It can beimplemented to run in O(m2 log C)
time.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 34/69
Capacity Scaling: Running Time
• Lemma 2. Let f be the flow at the end of a Δ- scaling phase. Then the value of the maximumflow is at most v(f) + m Δ.
• Pf. (almost identical to proof of max-flow min-cuttheorem) –
We show that at the end of a Δ-phase, there exists acut (A, B) such that cap(A, B) ≤
v(f) + m Δ.
–
Choose A to be the set of nodes reachable from s in
Gf
( Δ).
–
By definition of A, s in A.
–
By definition of f, t not in A.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 35/69
Capacity Scaling: Running Time
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 36/69
Bipartite Matching
• Matching.
– Input: undirected graph G = (V, E). –
M sub set of E is a matching
if each node appears in
at most edge in M.
– Max matching: find a max cardinality matching.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 37/69
Bipartite Matching
• Bipartite matching.
– Input: undirected, bipartite graph G = (L U R, E). –
M sub set of E is a matching
if each node appears in
at most edge in M.
– Max matching: find a max cardinality matching.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 38/69
Bipartite Matching
• Bipartite matching.
– Input: undirected, bipartite graph G = (L U R, E). –
M sub set of E is a matching
if each node appears in
at most edge in M.
– Max matching: find a max cardinality matching.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 39/69
Bipartite Matching
•
Max flow formulation.
– Create digraph G' = (L U R U {s, t}, E' ). – Direct all edges from L to R, and assign
infinite (or unit) capacity.
– Add source s, and unit capacity edges from s
to each node in L.
– Add sink t, and unit capacity edges from eachnode in R to t.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 41/69
Bipartite Matching: Proof of
Correctness•
Theorem. Max cardinality matching in G = value of max
flow in G'.
•
Pf . ≤
–
Given max matching M of cardinality k.
–
Consider flow f that sends 1 unit along each of k paths.
–
f is a flow, and has cardinality k.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 42/69
Bipartite Matching: Proof of
Correctness•
Theorem. Max cardinality matching in G = value of max
flow in G'.
•
Pf. ≥
–
Let f be a max flow in G' of value k.
–
Integrality theorem => k is integral and can assume f(e) is 0-1.
–
Consider M = set of edges from L to R with f(e) = 1.
•
each node in L and R participates in at most one edge in M
•
|M| = k: consider cut (L U s, R U t)
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 43/69
Perfect Matching
• Def . A matching M sub set of E is perfect if each
node appears in exactly one edge in M.• Q. When does a bipartite graph have a perfect
matching?
• Structure of bipartite graphs with perfectmatchings.
–
Clearly we must have |L| = |R|.
–
What other conditions are necessary?
–
What conditions are sufficient?
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 44/69
Perfect Matching
•
Notation. Let S be a subset of nodes, and let N(S)
be the
set of nodes adjacent to nodes in S.
•
Observation. If a bipartite graph G = (L U R, E), has a
perfect matching, then |N(S)| ≥
|S| for all subsets S of L.
•
Pf . Each node in S has to be matched to a different node
in N(S).
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 45/69
Marriage Theorem
• Marriage Theorem. [Frobenius 1917, Hall 1935] Let G = (L U R, E) be a bipartite graph with |L| =|R|. Then, G has a perfect matching iff |N(S)| ≥ |S| for all subsets S of L.
• Pf . => This was the previous observation.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 46/69
Marriage Theorem
• Pf. <= Suppose G does not have a perfectmatching. –
Formulate as a max flow problem and let (A, B) bemin cut in G'.
–
By max-flow min-cut, cap(A, B) < | L |.
–
Define L A
= L ∩
A, LB
= L ∩
B , R A
= R ∩
A.
–
N(L A
) can be forced to be a subset of R A without
changing
cap(A, B) .
– cap(A, B) = | LB
| + | R A
|.
–
|N(L A
)| ≤
| R A
| = cap(A, B) -
| LB
| < | L | -
| LB
| = | L A
|.
–
Choose S = L A
.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 48/69
Disjoint Paths
•
Disjoint path problem. Given a digraph G = (V, E) and
two nodes s and t, find the max number of edge-disjoint
s-t
paths.
•
Def . Two paths are edge-disjoint
if they have no edge in
common.
•
Ex: communication networks.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 49/69
Disjoint Paths
•
Disjoint path problem. Given a digraph G = (V, E) and
two nodes s and t, find the max number of edge-disjoint
s-t
paths.
•
Def . Two paths are edge-disjoint
if they have no edge in
common.
•
Ex: communication networks.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 50/69
Edge Disjoint Paths
•
Max flow formulation: assign unit capacity to every edge.
•
Theorem. Max number edge-disjoint s-t
paths equals
max flow value.
•
Pf. ≤
–
Suppose there are k edge-disjoint paths P1
, . . . , Pk
.
–
Set f(e) = 1 if e participates in some path Pi
; else set f(e) = 0.
–
Since paths are edge-disjoint, f is a flow of value k.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 51/69
Edge Disjoint Paths
• Theorem. Max number edge-disjoint s-t paths
equals max flow value.• Pf. ≥
–
Suppose max flow value is k.
– Integrality theorem => there exists a 0-1 flow f of value k.
–
Consider edge (s, u) with f(s, u) = 1.
•
by conservation, there exists an edge (u, v) with f(u, v) = 1
•
continue until reach t, always choosing a new edge
–
Produces k edge-disjoint paths
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 52/69
Network Connectivity
• Network connectivity. Given a digraph G = (V, E)
and two nodes s and t, find min number of edgeswhose removal disconnects t from s.
•
Def . A set of edges F subset of E disconnects t
from s if all s-t paths uses at least on edge in F.
Ed Di j i t P th d N t k
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 53/69
Edge Disjoint Paths and Network
Connectivity•
Theorem. [Menger
1927]
The max number of edge-
disjoint s-t
paths is equal to the min number of edges
whose removal disconnects t from s.•
Pf. ≤ –
Suppose the removal of F subset of E disconnects t from s, and|F| = k.
–
All s-t
paths use at least one edge of F. Hence, the number of
edge disjoint paths is at most k.
Ed Di j i t P th d N t k
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 54/69
Edge Disjoint Paths and Network
Connectivity• Pf. ≥
– Suppose max number of edge-disjoint paths is k. –
Then max flow value is k.
–
Max-flow min-cut => cut (A, B) of capacity k.
– Let F be set of edges going from A to B. –
|F| = k and disconnects t from s.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 55/69
Circulation with Demands
•
Circulation with demands.
–
Directed graph G = (V, E).
–
Edge capacities c(e), e in E.
–
Node supply and demands d(v), v in V.
•
demand if d(v) > 0; supply if d(v) < 0; transshipment if d(v) = 0
• Def . A circulation is a function that satisfies: –
For each e in E: 0 ≤
f(e) ≤
c(e) (capacity)
–
For each v in V: (conservation)
• Circulation problem: given (V, E, c, d), does
there exist a circulation?
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 56/69
Circulation with Demands
• Necessary condition: sum of supplies = sum of
demands.
• Pf. Sum conservation constraints for every
demand node v.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 57/69
Circulation with Demands
•
Max flow formulation.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 58/69
Circulation with Demands
•
Max flow formulation.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 59/69
Circulation with Demands
•
Max flow formulation.
– Add new source s and sink t. – For each v with d(v) < 0, add edge (s, v) with
capacity d(v).
– For each v with d(v) > 0, add edge (v, t) with
capacity d(v).
– Claim: G has circulation iff G' has max flow of value D.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 60/69
Circulation with Demands
•
Integrality theorem.
If all capacities and demands are
integers, and there exists a circulation, then there exists
one that is integer-valued.•
Pf.
Follows from max flow formulation and integrality
theorem for max flow.
• Characterization. Given (V, E, c, d), there does not existsa circulation iff
there exists a node partition (A, B) such
that
–
demand by nodes in B exceeds supply of nodes in B
plus max capacity of edges going from A to B
•
Pf idea. Look at min cut in G'.
Circulation with Demands and
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 61/69
Circulation with Demands and
Lower Bounds•
Feasible circulation.
–
Directed graph G = (V, E).
–
Edge capacities c(e) and lower bounds l(e), e in E.
–
Node supply and demands d(v), v in V.
•
Def . A circulation
is a function that satisfies:
–
For each e in E: l(e) ≤
f(e) ≤
c(e) (capacity)
–
For each v in V: (conservation)
• Circulation problem with lower bounds. Given (V, E, l, c,d), does there exists a circulation?
Circulation with Demands and
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 62/69
Circulation with Demands and
Lower Bounds• Idea. Model lower bounds with demands.
– Send l(e) units of flow along edge e.
– Update demands of both endpoints.
Circulation with Demands and
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 63/69
Circulation with Demands and
Lower Bounds• Theorem. There exists a circulation in G iff
there exists a circulation in G'. If alldemands, capacities, and lower bounds inG are integers, then there is a circulation
in G that is integer-valued.• Pf sketch. f(e) is a circulation in G iff f'(e) =
f(e) -
l(e) is a circulation in G'.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 64/69
Image Segmentation
• Image segmentation.
– Central problem in image processing. – Divide image into coherent regions.
• Ex: Three people standing in front of complex background scene.
–
Identify each person as a coherent object.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 65/69
Image Segmentation
• Foreground / backgroundsegmentation. –
Label each pixel in picture as belongingto foreground or background.
–
V = set of pixels, E = pairs of
neighboring pixels. –
ai
≥
0 is likelihood pixel i in foreground.
–
bi
≥
0 is likelihood pixel i in background.
– pij
≥ 0 is separation penalty for labeling
one of i and j as foreground, and theother as background.
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 66/69
Image Segmentation
• Goals.
– Accuracy: if ai
> bi
in isolation, prefer to label i inforeground.
–
Smoothness: if many neighbors of i are labeled
foreground, we should be inclined to label i as
foreground.
–
Find partition (A, B) that maximizes:
•
A: foreground, B: background
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 67/69
Image Segmentation
•
Formulate as min cut problem.
–
Maximization.
–
No source or sink.
–
Undirected graph.
•
Turn into minimization problem.
–
Maximizing:
– is equivalent to minimizing:
–
or alternatively:
7/27/2019 7 Network Flow
http://slidepdf.com/reader/full/7-network-flow 68/69
Image Segmentation
•
Formulate as min cut problem.
–
G' = (V', E').
–
Add source to correspond to foreground; addsink to correspond to background
–
Use two anti-parallel edges instead of
undirected edge.