a new approach to the maximum flow problem n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
A New Approach to the Maximum-Flow Problem PowerPoint Presentation
Download Presentation
A New Approach to the Maximum-Flow Problem

Loading in 2 Seconds...

play fullscreen
1 / 48

A New Approach to the Maximum-Flow Problem - PowerPoint PPT Presentation


  • 265 Views
  • Uploaded on

A New Approach to the Maximum-Flow Problem. Andrew V. Goldberg, Robert E. Tarjan Presented by Andrew Guillory. Outline. Background Definitions Push-Relabel Algorithm Correctness / Termination Proofs Implementation. Maximum Flow Problem. Classic problem in operations research

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'A New Approach to the Maximum-Flow Problem' - oded


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
a new approach to the maximum flow problem

A New Approach to the Maximum-Flow Problem

Andrew V. Goldberg, Robert E. Tarjan

Presented by Andrew Guillory

outline
Outline
  • Background
  • Definitions
  • Push-Relabel Algorithm
  • Correctness / Termination Proofs
  • Implementation
maximum flow problem
Maximum Flow Problem
  • Classic problem in operations research
  • Many problems reduce to max flow
    • Maximum cardinality bipartite matching
    • Maximum number of edge disjoint paths
    • Minimum cut (Max-Flow Min-Cut Theorem)
  • Machine learning applications
    • Structured Prediction, Dual Extragradient and Bregman Projections (Taskar, Lacoste-Julien, Jordan JMLR 2006)
    • Local Search for Balanced Submodular Clusterings (Narasimhan, Bilmes, IJCAI 2007)
relation to optimization
Relation to Optimization
  • Special case of submodular function minimization
  • Special case of linear programming
  • Integer edge capacities permit integer maximum flows (constructive proof)
history of algorithms
History of Algorithms
  • Augmenting Paths based algorithms
    • Ford-Fulkerson (1962) O(mU)
    • Edmonds-Karp (1969) O(nm3)
    • … O(n3) O(nmlog(n)) O(nmlog(U))
  • Push-Relabel based algorithms
    • Goldberg (1985) O(n3)
    • Goldberg and Tarjan (1986) O(nmlog(n2/m))
    • Ahuja and Orlin O(nm + n2log(U))
outline1
Outline
  • Background
  • Definitions
  • Push-Relabel Algorithm
  • Correctness / Termination Proofs
  • Implementation
definitions
Definitions
  • Graph G = (V, E)
    • |V| = n
    • |E| = m
  • G is a flow network if it has
    • source s and sink t
    • capacity c(v,w) for each edge (v,w) in E
    • c(v,w) = 0 for (v,w) not in E
definitions continued
Definitions (continued)
  • A flow f on G is a real value function on vertex pairs
    • f(v,w) <= c(v,w) for all (v,w)
    • f(v,w) = -f(w,v)
    • ∑uf(u,v) = 0 for all v in V - {s,t}
  • Value of a flow |f| is ∑vf(v,t)
  • Maximum flow is a flow of maximum value
definitions continued again
Definitions (continued again)
  • A preflow f on G is a real value function on vertex pairs
    • f(v,w) <= c(v,w) for all (v,w)
    • f(v,w) = -f(w,v)
    • ∑uf(u,v) >= 0 for all v in V - {s}
  • Flow excess e(v) = ∑uf(u,v)
  • Intuition: flow into a vertex can exceed flow out
outline2
Outline
  • Background
  • Definitions
  • Push-Relabel Algorithm
  • Correctness / Termination Proofs
  • Implementation
intuition
Intuition
  • Starting with a preflow, push excess flow closer towards sink
  • If excess flow cannot reach sink, push it backwards to source
  • Eventually, preflow becomes a flow and in fact the maximum flow
residual graph
Residual Graph
  • Residual capacity rf(v, w) of a vertex pair is c(v, w) – f(v, w)
  • If v has positive excess and (v,w) has residual capacity, can push

δ = min(e(v), rf(v, w)) flow from v to w

  • Edge (v,w) is saturated if rf(v, w) = 0
  • Residual graph Gf = (V, Ef) where Ef is the set of residual edges (v,w) with rf(v, w) > 0
labeling
Labeling
  • A valid labeling is a function d from vertices to nonnegative integers
    • d(s) = n
    • d(t) = 0
    • d(v) <= d(w) + 1 for every residual edge
  • If d(v) < n, d(v) is a lower bound on distance to sink
  • If d(v) >= n, d(v) - n is a lower bound on distance to source
push operation
Push Operation

Push(v,w)

Precondition: v is active (e(v) > 0) and

rf(v, w) > 0 and d(v) = d(w) + 1

Action: Push δ = min(e(v), rf(v, w))

from v to w

f(v,w) = f(v,w) + δ; f(w,v) = f(w,v) – δ;

e(v) = e(v) - δ; e(w) = e(w) + δ;

relabel operation
Relabel Operation

Relabel(v)

Precondition: v is active (e(v) > 0) and

rf(v, w) > 0 implies d(v) <= d(w)

Action: d(v) = min{d(w) + 1 | (v,w) in Ef}

generic push relabel algorithm
Generic Push-Relabel Algorithm

Starting from an initial preflow

<<loop>>

While there is an active vertex

Chose an active vertex v

Apply Push(v,w) for some w or Relabel(v)

example
Example

0/1

0/3

0/2

S

T

Flow Network

example1
Example

0/1

0

0

3/3

0/2

4

0

S

T

Initial preflow / labeling

example2
Example

0/1

0

0

3/3

0/2

4

0

S

T

Select an active vertex

example3
Example

0/1

1

0

3/3

0/2

4

0

S

T

Relabel active vertex

example4
Example

0/1

1

0

3/3

0/2

4

0

S

T

Select an active vertex

example5
Example

1/1

1

0

3/3

0/2

4

0

S

T

Push excess from active vertex

example6
Example

1/1

1

0

3/3

0/2

4

0

S

T

Select an active vertex

example7
Example

1/1

1

1

3/3

0/2

4

0

S

T

Relabel active vertex

example8
Example

1/1

1

1

3/3

0/2

4

0

S

T

Select an active vertex

example9
Example

1/1

1

1

3/3

1/2

4

0

S

T

Push excess from active vertex

example10
Example

1/1

1

1

3/3

1/2

4

0

S

T

Select an active vertex

example11
Example

1/1

5

1

3/3

1/2

4

0

S

T

Relabel active vertex

example12
Example

1/1

5

1

3/3

1/2

4

0

S

T

Select an active vertex

example13
Example

1/1

5

1

1/3

1/2

4

0

S

T

Push excess from vertex

example14
Example

1/1

5

1

1/3

1/2

4

0

S

T

Maximum flow

outline3
Outline
  • Background
  • Definitions
  • Push-Relabel Algorithm
  • Correctness / Termination Proofs
  • Implementation
correctness
Correctness
  • Lemma 2.1 If f is a preflow, d is a valid labeling, and v is active, either push or relabel is applicable to v
  • Lemma 3.1 The algorithm maintains a valid labeling d
  • Theorem 3.2 A flow is maximum iff there is no path from s to t in Gf (Ford and Fulkerson [7])
correctness continued
Correctness (continued)
  • Lemma 3.3 If f is a preflow and d is a valid labeling for f, there is no path from s to t in Gf
    • Proof by contradiction
    • Path s, v0, v1, …, vl, t implies that

d(s) <= d(v0) + 1 <= d(v1) + 2 <= …

<= d(t) + l < n

    • Which contradicts d(s) = n
correctness continued1
Correctness (continued)
  • Theorem 3.4 If the algorithm terminates with a valid labeling, the preflow is a maximum flow
    • If the algorithm terminates, all vertices have zero excess (preflow is a flow)
    • By Lemma 3.3 the sink is not reachable from the source
    • By Theorem 3.2 the flow is maximum
termination
Termination
  • Lemma 3.5 If f is a preflow and v is an active vertex then the source is reachable from v in Gf
  • Lemma 3.6 A vertex’s label never decreases
termination continued
Termination (continued)
  • Lemma 3.7 At any time the label of any vertex is at most 2n – 1
    • Only active vertex labels are changed
    • Active vertices can reach s
    • Path v, v0, v1, …, vl, s implies that

d(v) <= d(v0) + 1 <= d(v1) + 2 <= …

<= d(s) + l <= n + n - 1

termination continued1
Termination (continued)
  • Lemma 3.8 There are at most 2n2 labeling operations
    • Only the labels corresponding to V-{s,t} may be relabeled
    • Each of these n – 2 labels can only increase
    • At most (2n – 1) (n – 2) relabelings
termination continued2
Termination (continued)
  • Lemma 3.9 The number of saturating pushes is at most 2nm
    • For any pair (v,w) d(w) must increase by 2 between saturating pushes from v to w
    • Similarly d(v) must increase by 2 between pushes from w to v
    • d(v) + d(w) >= 1 on the first saturating push
    • d(v) + d(w) <= 4n - 3 on the last
    • At most 2n - 1 saturating pushes per edge
termination continued3
Termination (continued)
  • Lemma 3.10 The number of nonsaturating pushes is at most 4n2m
    • Φ = ∑v d(v) where v is active
    • Each nonsaturating push causes Φ to decrease by at least 1
    • The total increase in Φ from saturating pushes is

(2n – 1) 2nm

    • The total increase in Φ from relabeling is

(2n – 1)(n – 2)

    • Φ is 0 initially and Φ at termination
termination1
Termination
  • Theorem 3.11 The algorithm terminates in O(n2m)

Total time =

# nonsaturating pushes

+ #saturating pushes

+ #relabeling operations

4n2m + 2nm + 2n2 =O(n2m)

outline4
Outline
  • Background
  • Definitions
  • Push-Relabel Algorithm
  • Correctness / Termination Proofs
  • Implementation
implementation
Implementation
  • At each step select an active vertex and apply either Push or Relabel
  • Problem: Determining which operation to perform and in the case of Push finding a residual edge
  • Solution: For each vertex maintain a list of edges which touch that vertex and a current edge
push relabel operation
Push/Relabel Operation

Push/Relabel(v)

Precondition: v is active

Action:

If Push(v,w) is applicable to current edge (v,w) then Push(v,w)

Else if (v,w) is not the last edge advance current edge

Else reset the current edge and Relabel(v)

push relabel operation1
Push/Relabel Operation
  • Lemma 4.1 The push/relabel operation does a relabeling only when relabeling is applicable
  • Theorem 4.2 The push/relabel implementation runs in O(nm) time plus O(1) time per nonsaturating push operation
o n 3 bound
O(n3) bound
  • We can select vertices in arbitrary order
  • Certain vertex selection strategies give O(n3) bounds
    • First-in, first-out method (proved in paper)
    • Maximum distance method (proved here)
    • Wave method
maximum distance method
Maximum distance method
  • At each step, select the active vertex with maximum distance d(v)
  • Theorem The maximum distance method performs at most 4n3 nonsaturating pushes
  • Corollary The maximum distance method runs in time O(n3) using the push/relabel implementation
proof
Proof
  • Consider D = maxx d(x) where x is active
  • D only increases because of relabeling
  • D increases at most 2n2 times
  • D starts at 0 and ends nonnegative
  • D changes at most 4n2 times
  • There is at most one nonsaturating push per node per value of D