Professional Documents
Culture Documents
07 Network Flow I
07 Network Flow I
N ETWORK F LOW I
capacity
9
4 15 15 10
10
s 5 8 10 t
15
4 6 15 10
16
3
Minimum-cut problem
Def. Its capacity is the sum of the capacities of the edges from A to B.
cap(A, B) = c(e)
e A
10
s 5 t
15
capacity = 10 + 5 + 15 = 30
4
Minimum-cut problem
Def. Its capacity is the sum of the capacities of the edges from A to B.
cap(A, B) = c(e)
e A
10
s 8 t
16
capacity = 10 + 8 + 16 = 34
5
Minimum-cut problem
Def. Its capacity is the sum of the capacities of the edges from A to B.
cap(A, B) = c(e)
e A
10
s 8 t
10
capacity = 10 + 8 + 10 = 28
6
Network flow: quiz 1
A. 11 (20 + 25 − 8 − 11 − 9 − 6)
B. 34 (8 + 11 + 9 + 6)
C. 45 (20 + 25)
D. 79 (20 + 25 + 8 + 11 + 9 + 6)
capacity
s 20 8 10
6 12 8 11 9 8
6
1 16 25 t
7
Maximum-flow problem
flow capacity
inflow at v = 5 + 5 + 0 = 10
5/9 outflow at v = 10 + 0 = 10
5 5
10 0/4 /1 0 / 15 /
10
/ 5
10
s 5/5 5/8 v 10 / 10 t
10
/ 0 0 / 15 10
15 0/4 /6 /
10
10 / 16
8
Maximum-flow problem
5/9
5 5
10 0/4 /1 0 / 15 /
10
/ 5
10
s 5/5 5/8 10 / 10 t
10
/ 0 0 / 15 10
15 0/4 /6 /
10
value = 5 + 10 + 10 = 25
10 / 16
9
Maximum-flow problem
8/9
2 8
10 0/4 /1 0 / 15 /
10
/ 5
10
s 5/5 8/8 10 / 10 t
13
/ 3 0 / 15 10
15 0/4 /6 /
10
value = 10 + 5 + 13 = 28
13 / 16
10
7. N ETWORK F LOW I
Greedy algorithm.
・Start with f (e) = 0 for each 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.
flow capacity
flow network G and flow f
0/4
0
0 /
10 0/2 /8 0/6 10
/
0 value of flow
s 0 / 10 0/9 0 / 10 t 0
12
Toward a max-flow algorithm
Greedy algorithm.
・Start with f (e) = 0 for each 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.
0/4
0
0 /
10 0/2 /8 0/6 10
/
0
s 0 / 10 0/9 0 / 10 t 0
13
Toward a max-flow algorithm
Greedy algorithm.
・Start with f (e) = 0 for each 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.
0/4
8
— 0
0 /
8 10 0/2 /8 0/6 10
/
0
—
8
s 0 / 10 0/9 —
0 / 10 t 0 +8=8
14
Toward a max-flow algorithm
Greedy algorithm.
・Start with f (e) = 0 for each 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.
0/4
0
8 /
10 10 2 —
0/2 /8 0/6 10
/
8
—
2 10
s 0 / 10 —
0/9 —8 / 10 t 8 + 2 = 10
15
Toward a max-flow algorithm
Greedy algorithm.
・Start with f (e) = 0 for each 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.
0/4
6
—
0
10 2/2 8
/8 6 —
0/6 /
/ 10
10
6 8
s —
0 / 10 —
2/9 10 / 10 t 10 + 6 = 16
16
Toward a max-flow algorithm
Greedy algorithm.
・Start with f (e) = 0 for each 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.
0/4
6
10 2/2 8
/8 6/6 /
/ 10
10
s 6 / 10 8/9 10 / 10 t 16
17
Toward a max-flow algorithm
Greedy algorithm.
・Start with f (e) = 0 for each 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.
3/4
9
10 0/2 7
/8 6/6 /
/ 10
10
s 9 / 10 9/9 10 / 10 t 19
18
Why the greedy algorithm fails
flow network G
v 2 t
2 1 2
s 2 w
flow capacity
u 11 v
c(e) f (e) e E
cf (e) = 6
f (e) e E
reverse edge
AUGMENT( f, c, P)
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
21
Network flow: quiz 2
A. A→F→G→H
B. A→B→C→D →H
C. A→F→B→G→H
D. A→F→B→G→ C→D→H
residual capacity
5
A 9 B 8 C 6 D
source
5 7 8 7 4 5 6 8 5
E 5 F 2 G 3 H
5 target 22
Ford–Fulkerson algorithm
FORD–FULKERSON(G)
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
_
RETURN f.
23
7. N ETWORK F LOW I
Flow value lemma. Let f be any flow and let (A, B) be any cut. Then,
the value of the flow f equals the net flow across the cut (A, B).
5/9
5 5
10 0/4 /1 0 / 15 /
10
/ 5
10
10
/ 0 0 / 15 10
15 0/4 /6 /
10
10 / 16
25
Relationship between flows and cuts
Flow value lemma. Let f be any flow and let (A, B) be any cut. Then,
the value of the flow f equals the net flow across the cut (A, B).
5/9
5 5
10 0/4 /1 0 / 15 /
10
/ 5
10
10
/ 0 0 / 15 10
15 0/4 /6 /
10
10 / 16
26
Relationship between flows and cuts
Flow value lemma. Let f be any flow and let (A, B) be any cut. Then,
the value of the flow f equals the net flow across the cut (A, B).
5/9
edges from B to A
5 5
10 0/4 /1 0 / 15 /
10
/ 5
10
10
/ 0 0 / 15 10
15 0/4 /6 /
10
10 / 16
27
Network flow: quiz 3
A. 11 (20 + 25 − 8 − 11 − 9 − 6)
B. 26 (20 + 22 − 8 − 4 − 4)
C. 42 (20 + 22)
D. 45 (20 + 25)
flow capacity
s 20 / 20 8/8 4 / 10
5 4
1/6 / 8/8 / 4/9 6 4/8
12 11 /
0
1/1 14 / 16 22 / 25 t
28
Relationship between flows and cuts
Flow value lemma. Let f be any flow and let (A, B) be any cut. Then,
the value of the flow f equals the net flow across the cut (A, B).
29
Relationship between flows and cuts
Weak duality. Let f be any flow and (A, B) be any cut. Then, val( f ) ≤ cap(A, B).
Pf.
val(f ) = f (e) f (e)
e A e A
f (e)
flow value
lemma e A
c(e)
e A
= cap(A, B) ▪
8/9
2 8
/1 /
10 0/4 5 0 / 15 10
/ 10
10
s 5/5 7/8 9 / 10 t s 5 t
12
2
/
15 0/4 /6 0 / 15 10 15
/
10
12 / 16
weak duality
Pf.
・For any flow f ʹ: val( f ʹ) ≤ cap(A, B) = val( f ).
・For any cut (Aʹ, Bʹ): cap(Aʹ, Bʹ) ≥ val( f ) = cap(A, B). ▪
weak duality
8/9
2 8
/1 /
10 0/4 5 0 / 15 10
/ 10
10
s 5/5 8/8 10 / 10 t s 8 t
13
3
/
15 0/4 /6 0 / 15 10
/ 10
10
13 / 16
strong duality
Summary--This note discusses the problem of maximizing the from one terminal to the other in the original network
rate of flow from one terminal to another, through a network which
consists of a number of branches, each of which has a !imited capa- passes through at least one branch in the cut-set. In the
city. The main result is a theorem: The maximum possible flow from network above, some examples of cut-sets are (d, e, f),
left to right through a network is equal to the minimum value among and (b, c, e, g, h), (d, g, h, i) . By a simple cut-set we will
all simple cut-sets. This theorem is applied to solve a more general
problem, in which a number of input nodes and a number of output mean a cut-set such that if any branch is omitted it is no
nodes are used. longer a cut-set. Thus (d, e, f) and (b, c, e, g, h) are simple
cut-sets while (d, g, h, ;) is not. When a simple cut-set is
ONSIDER a two-terminal network such as that deleted from a connected two-terminal network, the net-
of Fig. 1. The branches of the network might work falls into exactly two parts, a left part containing the
c represent communication channels, or, more left terminal and a right part containing the right terminal. 32
generally, any conveying system of limited capacity as, We assign a value to a simple cut-set by taking the sum of
for example, a railroad system, a power feeding system,
Max-flow min-cut theorem
Pf. The following three conditions are equivalent for any flow f :
i. There exists a cut (A, B) such that cap(A, B) = val( f ).
ii. f is a max flow.
if Ford–Fulkerson terminates,
iii. There is no augmenting path with respect to f. then f is max flow
[ i ⇒ ii ]
・This is the weak duality corollary. ▪
33
Max-flow min-cut theorem
Pf. The following three conditions are equivalent for any flow f :
i. There exists a cut (A, B) such that cap(A, B) = val( f ).
ii. f is a max flow.
iii. There is no augmenting path with respect to f.
34
Max-flow min-cut theorem
[ iii ⇒ i ]
・Let f be a flow with no augmenting paths.
・Let A = set of nodes reachable from s in residual network G f.
・By definition of A: s ∈ A.
・By definition of flow f: t ∉ A. edge e = (v, w) with v ∈ B, w ∈ A
must have f(e) = 0
original flow network G
val(f ) = f (e) f (e)
A B
e A e A
flow value
lemma = c(e) 0 t
<latexit sha1_base64="ZTUKVGmMjB/WcCE6Tg9AU4sscGI=">AAACWXicbVDBThsxEPUupaRpKQGOvViNKtEDYRchgVRVAnHhSCWSIGWjyOvMgoXXXtnjKtFqP6NfwxU+AvEzeJMcmoQn2Xp6b8bjeWkhhcUoegnCjQ+bH7can5qfv2x/3Wnt7vWsdoZDl2upzW3KLEihoIsCJdwWBlieSuinD5e13/8LxgqtbnBawDBnd0pkgjP00qh19Jsmv2hiXT4qgSYIEyypdkh1Rit6UVF+AD/rksP6ipqjVjvqRDPQdRIvSJsscD3aDfaSseYuB4VcMmsHcVTgsGQGBZdQNRNnoWD8gd3BwFPFcrDDcrZZRX94ZUwzbfxRSGfq/x0ly62d5qmvzBne21WvFt/zBg6zs2EpVOEQFJ8PypykqGkdEx0LAxzl1BPGjfB/pfyeGcbRh7k0ZfZ2AXxpk3LilOB6DCuqxAkaVvkU49XM1knvuBNHnfjPSfv8bJFng3wj38kBickpOSdX5Jp0CSf/yCN5Is/BaxiEjbA5Lw2DRc8+WUK4/wZJQ7Me</latexit>
e A
= cap(A, B) s
35
Computing a minimum cut from a maximum flow
Theorem. Given any max flow f , can compute a min cut (A, B) in O(m) time.
Pf. Let A = set of nodes reachable from s in residual network G f . ▪
8
13
10 15 2
4
2
A s 5 8 10 t
15
2 3 1 6
10
13
16
36
7. N ETWORK F LOW I
38
Ford–Fulkerson: exponential example
C
C
・s→w→v→t
v 1 w
C
t
39
Network flow: quiz 4
A. Rational numbers. Let D denote the product (or lcm) of the denominators.
Then, every edge flow f (e) and every residual capacity cf (e)
B. Real numbers. is a multiple of 1 / D.
C. Both A and B.
D. Neither A nor B.
40
Choosing good augmenting paths
41
Choosing good augmenting paths
JACK EDMONDS
RICHARD M. K A R P
ABSTRACT. This paper presents new algorithms for t h e m a x i m u m flow problem, the Hitchcock
t r a n s p o r t a t i o n problem, and t h e general m i n i m u m - c o s t flow problem. U p p e r bounds on the
numbers of steps in these algorithms are derived, and are shown to compale favorably with
upper bounds on t h e numbers of steps required by earlier algorithms.
First, the paper states the m a x i m u m flow problem, gives the F o r d - F u l k e r s o n labeling method
for its solution, and points out t h a t an improper choice of flow a u g m e n t i n g p a t h s can lead to
s s
0
0
10
10
11
11
2
2
0
0
12
12
17
17
2
2
t t
Gf Gf (Δ), Δ = 100 43
Capacity-scaling algorithm
CAPACITY-SCALING(G)
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
WHILE (Δ ≥ 1)
G f (Δ) ← Δ-residual network of G with respect to flow f .
WHILE (there exists an s↝t path P in G f (Δ))
f ← AUGMENT( f, c, P).
Update G f (Δ). Δ-scaling phase
Δ ← Δ / 2.
RETURN f.
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
44
Capacity-scaling algorithm: proof of correctness
Integrality invariant. Throughout the algorithm, every edge flow f (e) and
residual capacity cf (e) is an integer.
Pf. Same as for generic Ford–Fulkerson. ▪
45
Capacity-scaling algorithm: analysis of running time
c(e) s
e A e A e A
cap(A, B) m
edge e = (v, w) with v ∈ A, w ∈ B
must have f(e) > c(e) – Δ
47
7. N ETWORK F LOW I
SHORTEST-AUGMENTING-PATH(G)
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
FOREACH e ∈ E : f (e) ← 0.
G f ← residual network of G with respect to flow f.
WHILE (there exists an s↝t path in G f )
P ← BREADTH-FIRST-SEARCH(G f ).
f ← AUGMENT( f, c, P).
Update G f.
RETURN f.
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
49
Shortest augmenting path: overview of analysis
50
Shortest augmenting path: analysis
Def. Given a digraph G = (V, E) with source s, its level graph is defined by:
・ℓ(v) = number of edges in shortest s↝v path.
・LG = (V, EG) is the subgraph of G that contains only those edges (v, w) ∈ E
with ℓ(w) = ℓ(v) + 1.
graph G
s t
level graph LG
s t
ℓ= 0 ℓ= 1 ℓ= 2 ℓ= 3 51
Network flow: quiz 5
A. D→F.
B. E→F.
C. Both A and B.
D. Neither A nor B.
1 3
B D
source A C E F sink
0 1 2 3
52
Shortest augmenting path: analysis
Def. Given a digraph G = (V, E) with source s, its level graph is defined by:
・ℓ(v) = number of edges in shortest s↝v path.
・LG = (V, EG) is the subgraph of G that contains only those edges (v, w) ∈ E
with ℓ(w) = ℓ(v) + 1.
level graph LG
s t
ℓ= 0 ℓ= 1 ℓ= 2 ℓ= 3 53
Shortest augmenting path: analysis
level graph LG
s t
ℓ= 0 ℓ= 1 ℓ= 2 ℓ= 3
s t
54
Shortest augmenting path: analysis
level graph LG
s t
ℓ= 0 ℓ= 1 ℓ= 2 ℓ= 3
s t
55
Shortest augmenting path: review of analysis
56
Shortest augmenting path: improving the running time
The most significant application is (2); an O(mn log n)-time algorithm is obtained to find a
maximum flow in a network of n vertices and m edges, beating by a factor of log n the fastest
algorithm previously known for sparse graphs.
1. INTR~DIJCTI~N 57
7. N ETWORK F LOW I
s t
level graph LG
59
Dinitz’ algorithm
advance
s t
level graph LG
60
Dinitz’ algorithm
augment
remove from level graph
edges with bottleneck capacity
s t
level graph LG
61
Dinitz’ algorithm
advance
s t
level graph LG
62
Dinitz’ algorithm
retreat
s t
level graph LG
63
Dinitz’ algorithm
advance
s t
level graph LG
64
Dinitz’ algorithm
augment
s t
level graph LG
65
Dinitz’ algorithm
advance
s t
level graph LG
66
Dinitz’ algorithm
retreat
s t
level graph LG
67
Dinitz’ algorithm
retreat
s t
level graph LG
68
Dinitz’ algorithm
end of phase
s t
level graph LG
69
Dinitz’ algorithm (as refined by Even and Itai)
INITIALIZE(G, f ) ADVANCE(v)
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
LG ← level-graph of G f. IF (v = t)
P ← ∅. AUGMENT(P).
GOTO ADVANCE(s). Remove saturated edges from LG.
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
P ← ∅.
GOTO ADVANCE(s).
RETREAT(v)
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
70
Network flow: quiz 6
A. Depth-first search.
B. Breadth-first search.
C. Both A and B.
D. Neither A nor B.
1 3
B D
source A C E F sink
0 1 2 3
71
Dinitz’ algorithm: analysis
72
Augmenting-path algorithms: summary
augmenting-path algorithms with m edges, n nodes, and integer capacities between 1 and C
73
Maximum-flow algorithms: theory highlights
20xx
max-flow algorithms with m edges, n nodes, and integer capacities between 1 and C 74
Maximum-flow algorithms: practice
ANDREW V. GOLDBERG
Massachusetts Institute of Technology, Cambridge, Massachusetts
AND
ROBERT E. TARJAN
Princeton University, Princeton, New Jersey, and AT&T Bell Laboratories, Murray Hill, New Jersey
Abstract. All previously known efftcient maximum-flow algorithms work by finding augmenting paths,
either one path at a time (as in the original Ford and Fulkerson algorithm) or all shortest-length
augmenting paths at once (using the layered network approach of Dinic). An alternative method based
on the preflow concept of Karzanov is introduced. A preflow is like a flow, except that the total amount
flowing into a vertex is allowed to exceed the total amount flowing out. The method maintains a preflow
in the original network and pushes local flow excess toward the sink along what are estimated to be
shortest paths. The algorithm and its analysis are simple and intuitive, yet the algorithm runs as fast as
any other known method on dense.graphs, achieving an O(n)) time bound on an n-vertex graph. By
incorporating the dynamic tree data structure of Sleator and Tarjan, we obtain a version of the algorithm
running in O(nm log(n’/m)) time on an n-vertex, m-edge graph. This is as fast as any known method
for any graph density and faster on graphs of moderate density. The algorithm also admits efticient
distributed and parallel implementations. A parallel implementation running in O(n’log n) time using
n processors and O(m) space is obtained. This time bound matches that of the Shiloach-Vishkin
algorithm, which also uses n processors but requires O(n’) space.
Categories and Subject Descriptors: F.2.2 [Analysis of Algorithms and Problem Complexity]: Non-
numerical Algorithms and Problems; G.2.2 [Discrete Mathematics]: Graph Theory-graph algorithms; 75
Maximum-flow algorithms: practice
On I m p l e m e n t i n g P u s h - R e l a b e l M e t h o d
for the M a x i m u m Flow P r o b l e m EUROPEAN
JOURNAL
OF OPERATIONAL
Boris V. Cherkassky 1 and Andrew V. Goldberg 2 RESEARCH
ELSEVIER European Journal of Operational Research 97 (1997) 509-542
1 Central Institute for Economics and Mathematics,
Krasikova St. 32, 117418, Moscow, Russia
cher@eemi.msk.su
2 Computer Science Department, Stanford University Theory and Methodology
Stanford, CA 94305, USA
goldberg~cs. stanford, edu Computational investigations of maximum flow algorithms
Ravindra K . A h u j a a, M u r a l i K o d i a l a m b, A j a y K . M i s h r a c, J a m e s B . O r l i n d,.
A b s t r a c t . We study efficient implementations of the push-relabel method
Department t~'lndustrial and Management Engineering. Indian Institute of Technology. Kanpur, 208 016, India
for the maximum flow problem. The resulting codes are faster than the a
1 Introduction Abstract
The rnaximum flow problem is a classical combinatorial problem that comes up The maximum flow algorithm is distinguished by the long line of successive contributions researchers have made in
in a wide variety of applications. In this paper we study implementations of the obtaining algorithms with incrementally better worst-case complexity. Some, but not all, of these theoretical improvements
have produced improvements in practice. The purpose of this paper is to test some of the major algorithmic ideas developed
push-rdabel [13, 17] method for the problem. in the recent years and to assess their utility on the empirical front. However, our study differs from previous studies in
The basic methods for the maximum flow problem include the network sim- several ways. Whereas previous studies focus primarily on CPU time analysis, our analysis goes further and provides 76
plex method of Dantzig [6, 7], the augmenting path method of Ford and F~lker- detailed insight into algorithmic behavior. It not only observes how algorithms behave but also tries to explain why
Maximum-flow algorithms: practice
In IEEE Transactions on PAMI, Vol. 26, No. 9, pp. 1124-1137, Sept. 2004 p.1
After [15, 31, 19, 8, 25, 5] minimum cut/maximum flow algorithms on graphs emerged as Tanmay Verma IIIT-Delhi
an increasingly useful tool for exact or approximate energy minimization in low-level vision. tanmay08054@iiitd.ac.in Delhi, India
The combinatorial optimization literature provides many min-cut/max-flow algorithms with
Dhruv Batra TTI-Chicago
dbatra@ttic.edu Chicago, USA
different polynomial time complexity. Their practical efficiency, however, has to date been
studied mainly outside the scope of computer vision. The goal of this paper is to provide an
new algorithm that we have recently developed. The algorithms we study include both Algorithms for finding the maximum amount of flow possible in a network (or max-
Goldberg-Tarjan style “push-relabel” methods and algorithms based on Ford-Fulkerson flow) play a central role in computer vision problems. We present an empirical compari-
son of different max-flow algorithms on modern problems. Our problem instances arise
style “augmenting paths”. We benchmark these algorithms on a number of typical graphs
from energy minimization problems in Object Category Segmentation, Image Deconvo-
in the contexts of image restoration, stereo, and segmentation. In many cases our new lution, Super Resolution, Texture Restoration, Character Completion and 3D Segmen-
algorithm works several times faster than any of the other methods making near real-time tation. We compare 14 different implementations and find that the most popularly used
implementation of Kolmogorov [5] is no longer the fastest algorithm available, especially
performance possible. An implementation of our max-flow/min-cut algorithm is available
for dense graphs.
upon request for research purposes.
78
Maximum-flow algorithms: Google
79
7. N ETWORK F LOW I
Key words. Dinic’s algorithm, maximum flow, connectivity, vertex connectivity, edge connec-
tivity
81
1. Network flow. Let be a finite V is the set of
Simple unit-capacity networks
1 1
82
Simple unit-capacity networks
Shortest-augmenting-path algorithm.
・Normal augmentation: length of shortest path does not change.
・Special augmentation: length of shortest path strictly increases.
Theorem. [Even–Tarjan 1975] In simple unit-capacity networks,
Dinitz’ algorithm computes a maximum flow in O(m n1/2) time.
Pf.
・Lemma 1. Each phase of normal augmentations takes O(m) time.
・Lemma 2. After n1/2 phases, val( f ) ≥ val( f *) – n1/2.
・Lemma 3. After ≤ n1/2 additional augmentations, flow is optimal. ▪
83
Simple unit-capacity networks
s t
level graph LG
84
Simple unit-capacity networks
advance
s t
level graph LG
85
Simple unit-capacity networks
s t
level graph LG
86
Simple unit-capacity networks
advance
s t
level graph LG
87
Simple unit-capacity networks
retreat
s t
level graph LG
88
Simple unit-capacity networks
advance
s t
level graph LG
89
Simple unit-capacity networks
augment
s t
level graph LG
90
Simple unit-capacity networks
s t
level graph LG
91
Simple unit-capacity networks: analysis
92
Network flow: quiz 8
B. O(m3/2).
C. O(m n).
93
Simple unit-capacity networks: analysis
s t
V1 Vh Vn1/2
94
Simple unit-capacity networks: analysis
s t
V1 Vh Vn1/2
95
Simple unit-capacity networks: review
96