- By
**oded** - Follow User

- 266 Views
- Uploaded on

Download Presentation
## A New Approach to the Maximum-Flow Problem

**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

OutlineOutline

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
- 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

- Special case of submodular function minimization
- Special case of linear programming
- Integer edge capacities permit integer maximum flows (constructive proof)

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))

Outline

- Background
- Definitions
- Push-Relabel Algorithm
- Correctness / Termination Proofs
- Implementation

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)

- 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)

- 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

Outline

- Background
- Definitions
- Push-Relabel Algorithm
- Correctness / Termination Proofs
- Implementation

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 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

- 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(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(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

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)

- Background
- Definitions
- Push-Relabel Algorithm
- Correctness / Termination Proofs
- Implementation

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)

- 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 (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

- 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)

- 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 (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 (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 (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

Termination

- Theorem 3.11 The algorithm terminates in O(n2m)

Total time =

# nonsaturating pushes

+ #saturating pushes

+ #relabeling operations

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

- Background
- Definitions
- Push-Relabel Algorithm
- Correctness / Termination Proofs
- 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(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 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(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

- 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

- 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

Download Presentation

Connecting to Server..