Top Banner
Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed by Prof. Haim Kaplan
80

Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

Dec 21, 2015

Download

Documents

Welcome message from author
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
Page 1: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

Beyond the flow decomposition barrier

Authors: A. V. Goldberg and Satish Rao (1997)

Presented by Yana BranzburgAdvanced Algorithms Seminar

Instructed by Prof. Haim KaplanTel Aviv University, June 2007

Page 2: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

3

Introduction

Maximum flow problem Use the concept of distance Distance is defined by arc length Methods so far use unit length

function Goldberg&Rao use adaptive binary

length function: length threshold is set relative to an estimate of residual flow

Page 3: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

4

Ω(mn) barrier Ω(mn) - a natural barrier for maximum

flow algorithms that output explicit flow decomposition (the

total path length is Θ(mn) in the worst case) that augment flow one path at the time, for

each augmenting path, one arc at the time Although the barrier does not apply to

algorithms that use preflows or data structures like dynamic trees, no one beats it

Page 4: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

5

Ω(mn) barrier (cont.)

Page 5: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

6

Beyond the Ω(mn) barrier Dinic’s algorithm for unit-capacity

networks

Goldberg-Rao algorithm for general networks

)},(min{ 3/22/1 mnmO

)log)log(},(min{2

3/22/1 Um

nmnmO

Page 6: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

7

Background flow network:

G = (V, E) source s, sink t capacity function u: E {1, …, U}

flow function f: E {1, …, U} f(a) ≤ u(a) conservation constraint

flow value is

0),(),(},,{),( ),(

wv vuvufwvftsVj

),(

),(tv

tvff

Page 7: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

8

Background (cont.) residual capacity uf (v,w) = u(v,w) –

f(v,w) + f(w,v) Arc (v,w) is a residual arc if uf (v,w) > 0 residual flow is the difference between

optimal flow f* and current flow f In blocking flow every directed path s-t

contains an arc with residual capacity 0 Without loss of generality assume:

G has no parallel arcs if arc (v,w) is in G, but (w,v) is not, add (w,v)

to G, define u(w,v)=0 either f(v,w) = 0 or f(w,v) = 0

Page 8: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

Dinic’s algorithm for unit-capacity networks

Page 9: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

10

Dinic’s algorithm for unit capacity networks A unit capacity network is one in which

all arc have unit capacities Algorithm of two phases:

Find augmenting paths, until distance between s and t is

Augment the found flow to an optimal flow

}2,min{ 3/22/1 nm

Page 10: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

11

Dinic’s algorithm for unit capacity networks (cont.) Algorithm Dinic

while ds ≤ α (ds stands for length of the shortest path from s to t)

Find blocking flow in admissible network Compute residual network

while there is an s-t path in the residual network

Find an s-t path P Augment one unit of flow along P Compute residual network

Page 11: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

12

Dinic’s algorithm for unit capacity networks - Analysis

Phase I: Find a blocking flow:

Find a s-t path Route one unit of flow Delete all arcs of the path (all saturated) Repeat until there is no s-t path

Each arc is looked only once, hence O(m)

Thus the first phase total takes O(αm)

Page 12: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

13

Dinic’s algorithm for unit capacity networks – Analysis (cont.)

Phase II: Blocking flow increases the distance

between s and t by at least one Let the vertices be partitioned into

levels

Thus, at the end of phase I, there are at least α levels

svk dkkdVvV ,...,0,|

Page 13: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

14

Dinic’s algorithm for unit capacity networks – Analysis (cont.)

Lemma 1: At the end of phase I, the maximum flow in the residual network is at most α

Proof. Case 1: α = m½

At least m½ levels and m arcs there is a pair of adjacent levels Vk and Vk+1 which have at most m½ arcs between them

The cut has capacity at most m½ maximum residual flow is m½

),(0 1 k

i

d

ki iis VV

Page 14: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

15

Dinic’s algorithm for unit capacity networks – Analysis (cont.)

Proof. Case 2: α = 2n ⅔

There exists a pair of adjacent levels Vk and Vk+1 , each of which has at most n ⅓ nodes

Assume the contrary: at least half levels must contain more than n ⅓ nodes

Then the total number of nodes more than α/2*n ⅓ ≥ n, which is a contradiction

Thus the cut has capacity at most n ⅔ ≤ α

),(0 1 k

i

d

ki iis VV

Page 15: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

16

Dinic’s algorithm for unit capacity networks – Analysis (cont.)

Each iteration of phase II routes one unit of additional flow

Since after phase I the maximum flow in the residual network ≤ α, the maximum number of iterations in phase II is bounded by α

One iteration of phase II is O(m) Thus, the second phase takes total O(αm) Hence, Dinic’s algorithm for unit capacity

networks solves the maximum flow problem in time)},(min{ 3/22/1 mnmO

Page 16: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

Goldberg-Rao algorithm

Page 17: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

18

Length Functions length function ℓ : E R+

distance labeling d : V R+ with respect to a length function ℓ if:

d(t) = 0 for every (v,w) in E : d(v) ≤ d(w) + ℓ(v,w)

admissible arc (v,w) is a residual arc where d(v) > d(w) or d(v) = d(w) and ℓ(v,w) = 0

In case of binary length function, admissible arc satisfies d(v) = d(w) + ℓ(v,w)

distance function dℓ(v) : distance from v to t under ℓ

dℓ(v) is a distance labeling

Page 18: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

19

Length Functions (cont.)

Claim 2: dℓ is the biggest distance labeling Proof (assume the contrary):

d(v) >dℓ(v) for some v w is the last node on a shortest v-t path Γ

that satisfies d(w) >dℓ(w) x follows w (w ≠t, hence x exists) dℓ(w) < d(w) ≤ ℓ(w,x) +d(x) ≤ ℓ(w,x) +dℓ(x) v-w concatenated with w-t is shorter than Γ Contradiction to selection of Γ

Page 19: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

20

Volume of Network A residual arc a has

“width” uf(a) length ℓ(a) volume volf,ℓ(a) = uf(a) ℓ(a)

network volume Volf,ℓ = Σauf(a) ℓ(a) The residual flow value is upper bounded

by Volf,ℓ ∕dℓ(s) (since any path from s to t has length at least dℓ(s) > 0)

To get a tighter bound, keep Volf,ℓ small by choosing a binary length function that is zero for large residual capacity arcs

Page 20: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

21

Binary Blocking Flow Algorithm - Idea Ensure the algorithms terminates after

not too many augmentations by showing that every iteration increases dℓ(s) - but we have zero arcs?! Contract strongly connected components

(nodes) formed by zero-length arcs Bound the augmenting flow in a node by Δ to

be able to reroute the flow in a restored node

Possible not to find a blocking flow can not guarantee increase of dℓ(s)

Choose Δ that insures small number of non-blocking augmentations

Page 21: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

23

Stopping Condition of the Algorithm

Define F - an upper bound on the residual flow value

Update F every time our estimate improves

Stop when F < 1 (integral capacities)

Initial estimate is F = Σ(s,w)u(s,w) ≤ nU

Page 22: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

24

The Skeleton of Goldberg-Rao algorithm while F ≥ 1 do

Compute Δ while the residual capacity > F /2

Compute length function ℓ, distance function dℓ

Find admissible graph A(f, ℓ, dℓ) Contract strongly connected components of A Find a flow of value Δ or a blocking flow Augment the current flow, extend it to original

graph and recompute the residual graph Update F

upd

ate

st

ep

phase

Page 23: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

25

Estimate a residual capacity A residual capacity uf(S,T) of an s-t cut

can serve as an upper bound canonical cut (Sk ,Tk) :

(Sk ,Tk) is an s-t cut Initially (S,T) =({s },V \{s }) is the

current cut Find a canonical cut with the smallest

residual capacity When the capacity of the found cut ≤

F /2, update F to this capacity value

)(,...,1,\,)(| sdkSVTkvdVvS lkklk

Page 24: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

26

Estimate a residual capacity (cont.) Claim 3: The minimum capacity

canonical cut can be found in O(m) time Proof:

Every arc may cross at most one canonical cut (its length at most 1)

For k =1,…,dℓ(s), initialize uf(Sk,Tk) =0 For every arc (v,w) : if dℓ(v) > dℓ(w), increase

uf(Sk,Tk) by uf(v,w), k = dℓ(v) Find minimum among all uf(Sk,Tk) Denote the minimum capacity canonical cut

),( TS

Page 25: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

27

Binary length function

A first estimate of a length function:

* this length function will have to be modified for reasons that will come up during time analysis

Given ℓ, next we show how to handle the contraction of zero arcs

otherwise

auifal

f

,1

2)(,0)(

Page 26: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

28

Extending the flow inside contracted components Claim 4: Given a flow of value at

most Δ, we can correct it to a flow of the same value in the original graph in O(m) time

Proof (for one component): Choose an arbitrary vertex as a root Form an in-tree and an out-tree

in-tree: a rooted tree with a path from each node to the root

out-tree: a rooted tree with a path from the root to each node

Page 27: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

29

Extending the flow inside contracted components (cont.) Proof (cont.):

For each vertex compute its flow balance: sum of flow entering minus sum of flow leaving the vertex

Route the positive balances to the root using the in-tree

Route the resulting flow excess from the room to negative balances via out-tree

At most Δ flow is routed to and from the root using one arc, which residual capacity is at least 2Δ

Page 28: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

30

Example:

0.5Δ

R

out treein tree

Extending the flow inside contracted components (cont.)

0.5Δ

0.75Δ

0.25Δ

+0.5Δ

+0.5Δ

-0.75 Δ

-0.25 Δ

0.5Δ Δ

Δ

Δ

Δ

+Δ +Δ

+0.25Δ

Page 29: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

31

Time bounds Reminder: choice of Δ must insure small

number of non blocking augmentations Denote Let Thus, number of non blocking

augmentations of value Δ is at most α in each phase

How many blocking augmentations per phase there are? Need to show that O(α)

F},min{ 3/22/1 nm

Page 30: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

32

Bound of number of blocking augmentations Lemma 5: For a 0-1 length function on the

residual graph:

where M is the maximum residual capacity of a length one arc

Proof: Every arc crosses at most one of the canonical cuts,

for such an arc, ℓ(a) =1 Total capacity of length one arcs ≤ mM, there are

dℓ(s) canonical cuts Thus, minimum capacity canonical cut ≤ mM / dℓ(s)

Msd

mTSu

lf )(

),(

Page 31: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

33

Bound of number of blocking augmentations (cont.)

For dense graphs, the following Lemma gives better bounds

Lemma 6: For a 0-1 length function on the residual graph:

Proof: Let Since , there are at most dℓ(s)/2 values of k

where |Vk | > 2n /dℓ(s) Thus, at least values of k have |Vk | ≤ 2n /dℓ(s) By the pigeonhole principle, there is j such that

|Vj | ≤ 2n /dℓ(s) and |Vj+1 | ≤ 2n /dℓ(s) Since all arcs from Vj+1 to Vj have length 1, Lemma 6

holds

)(,...,0,)(| sdkkvdVvV llk

Msd

nTSu

lf

2

)(

2),(

nVsd

k kl

)(

0

12/)( sdl

Page 32: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

34

Bound of number of blocking augmentations (cont.) Lemma 7: In every iteration of a

blocking flow, dℓ(s) increases by at least 1 (prove later)

Lemma 8: There are at most O(α) blocking flow augmentations in a phase

Proof: Case 1: α = m½

Using Lemma 7: after 4m½ blocking flow update steps dℓ(s) ≥ 4m½

M ≤ 2Δ. Thus, together with Lemma 5:24

22)()(

),(F

m

F

m

m

sd

mM

sd

mTSu

llf

Page 33: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

35

Bound of number of blocking augmentations (cont.) Proof. Case 2: α = n ⅔

Using Lemma 7: after 4n ⅔ blocking flow update steps dℓ(s) ≥ 4n ⅔

M ≤ 2Δ. Thus, together with Lemma 6:

Conclusion: Each phase of the algorithm terminates in O(α) update steps

24

222

)(

2

)(

2),(

3/2

2

3/2

22F

n

F

n

n

sd

nM

sd

nTSu

llf

Page 34: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

36

Finding a flow in one update step We use Goldberg&Tarjan algorithm

for computing a blocking flow X in each update step in O(m ּlog(n2/m)) time

If X > Δ, return extra flow to s in O(m) time: Place X – Δ units of excess at t Process vertices in reverse topological

order For current vertex reduce flow on the

incoming arcs to eliminate its excess

Page 35: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

37

Time Bounds Summary Theorem 9: The maximum flow problem

can be solved in O(αּmּlog(n2/m)ּlogU) time

Proof: Δ>U : all arcs are length one Each update step finds a blocking flow

and increases dℓ(s) by at least one After α steps dℓ(s) ≥α F ≤αU After O(α) steps F =α Δ ≤αU Δ≤U Total time till Δ =U is O(αּmּlog(n2/m))

F =uf(S,T) ≤ mM /dℓ(s) ≤ mM /α =

αM ≤ αU

Page 36: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

38

Time Bounds Summary (cont.)

Proof (cont.): 1≤Δ≤U : Number of phases is

O(logU), since each phase decreases twice

Total time for these phases is O(αּmּlog(n2/m)ּlogU)

When Δ=1, F ≤α, the algorithm ends in O(α) update steps

F

Page 37: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

39

Proof of Lemma 7

In every iteration of a blocking flow, dℓ(s) increases by at least 1

Denote: ℓ and dℓ - initial length and distance

functions ℓ’ and dℓ’ - after finding a blocking flow

and recomputing the residual graph f and f’ - the flows before and after

augmentation respectively

Need to prove: dℓ(s) < dℓ’ (s)

Page 38: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

40

Proof of Lemma 7 (cont.) Claim 10: dℓ is a distance labeling

with respect to ℓ’ Proof:

By definition: dℓ(v) ≤ dℓ(w) + ℓ(v,w) Need to show: dℓ(v) ≤ dℓ(w) + ℓ’(v,w) If dℓ(v) ≤ dℓ(w) – trivial dℓ(v) >dℓ(w) (w,v) is not admissible

(for admissible arc dℓ(w)=dℓ(v)+ℓ(w,v)) uf’ (v,w) ≤ uf(v,w) ℓ’(v,w) ≥ ℓ(v,w)

Page 39: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

41

Proof of Lemma 7 (cont.)

Claim 11: dℓ(s) ≤ dℓ’ (s) Proof:

By Claim 2: for any distance labeling d, d(v) ≤ dℓ(v)

By Claim 10: dℓ is a distance labeling with respect to ℓ’

dℓ(s) ≤ dℓ’ (s)

Page 40: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

42

Proof of Lemma 7 (cont.) We need to show dℓ(s) < dℓ’ (s) Let Γ be an s-t path in Gf’

By Claim 10:cost(v,w) =dℓ(w) -dℓ(v) +ℓ’(v,w) ≥0

ℓ’ (Γ) = dℓ(s) –dℓ(v1) +c(s,v1) +

dℓ(v1) –dℓ(v2) +c(v1,v2) +…+

dℓ(vk) –dℓ(t) +c(vk,t) =

dℓ(s) – dℓ(t) +c (Γ) = dℓ(s) +c (Γ)

Page 41: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

43

Proof of Lemma 7 (cont.)

dℓ’ (s) = ℓ’ (Γ) = dℓ(s) + c (Γ) Enough to show that along every s-

t path Γ in Gf’ there is an arc (v,w) satisfying c(v,w) > 0

Page 42: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

44

Proof of Lemma 7 (cont.)

We routed a blocking flow Γ contains arc (v,w) that is not in A(f, ℓ, dℓ)

dℓ(v) ≤ dℓ(w) either because: (v,w) in Gf (otherwise (v,w) would be in

A(f, ℓ, dℓ)) or (v,w) not in Gf but in Gf’ (means that (w,v)

is in A(f, ℓ, dℓ) dℓ(w) = dℓ(v) + ℓ(v,w) dℓ(w) ≥dℓ(v))

dℓ(v) >dℓ(w):

dℓ(v) ≤ dℓ(w) + ℓ(v,w)< dℓ(v) + ℓ(v,w)

ℓ(v,w) > 0 dℓ(v) = dℓ(w) + ℓ(v,w)

Page 43: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

45

Proof of Lemma 7 (cont.) Assume the contrary that

c(v,w) =dℓ(w) -dℓ(v) +ℓ’(v,w) = 0 dℓ(v) ≤dℓ(w) dℓ(w) =dℓ(v) and ℓ’(v,w) =0 Case 1 - (v,w) in Gf :

1=ℓ(v,w) >ℓ’(v,w) =0(w,v) is in A(f, ℓ, dℓ)

Case 2 - (v,w) not in Gf but in Gf’ : (w,v) is in A(f, ℓ, dℓ)

But dℓ(w) =dℓ(v) ℓ (w,v) = 0

Page 44: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

46

Bad Example

dℓ(w) =dℓ(v), ℓ(w,v) =0 and ℓ’(v,w) =0 Δ ≤ uf(v,w) < 2Δ uf(w,v) > 2Δ

uf’ (v,w) ≥ uf(v,w) + 2Δ – uf(v,w) ≥ 2Δ ℓ’(v,w) = 0

vw

≥ 2Δ- uf(v,w)

Page 45: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

47

Solution to bad example Distort the length function, so that

such bad arcs get length zero ahead

Might become an inner arc in a strongly connected component

The capacity of such arcs must be at least 2Δ in order to be able to route a flow of Δ in flow extension (remember example…)

Page 46: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

48

A correct length function ℓ

Changes due to new ℓ in Lemma 8 (p. 32): Case 1 - 6m½ blocking flow update

steps instead of 4m½

Case 2 - 5n ⅔ blocking flow update steps instead of 4n ⅔

otherwise

auifal

f

,1

3)(,0)(

Page 47: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

49

Length function ℓ* (v,w) is a special arc if:

2Δ ≤ uf(v,w) < 3Δ d(v) =d(w) uf(w,v) ≥ 3Δ

Define new length function ℓ* that: = zero on special arcs = ℓ on all other arcs

dℓ* = dℓ

The algorithm determines admissible graph A(f, ℓ*, dℓ) instead of A(f, ℓ, dℓ)

Page 48: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

50

Proof of Lemma 7 using ℓ* dℓ(w) =dℓ(v), ℓ(w,v) =0 and ℓ’(v,w) =0 ℓ(w,v) =0 uf(w,v) ≥ 3Δ ℓ’(v,w) =0 uf’ (v,w) ≥ 3Δ (w,v) is in A(f, ℓ*, dℓ) pushing a flow

(at most Δ) increased uf’ (v,w) uf(v,w) ≥ 2Δ Either (v,w) is a special arc before

augmentation or uf(v,w) ≥ 3Δ (v,w) is in A(f, ℓ*, dℓ) - contradiction

Page 49: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

51

Example

T

12

S

16

13

910

4

14

20

74

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

n = 6, m = 10 U = 20 F = 29 α = min{m½, n ⅔ } = 4 Δ = F /α = 8

Page 50: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

52

Example (cont.)2 1

1

0

12

3

2

16

13

910

4

14

20

74

1Gf :

1

1

1

1

1

11

1

1

F = 29. Δ = 8 2 1

1

0

4/12

3

2

4/16

4/13 4/14

4/20

4/4

1Af :

1

1

1

1

1

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Page 51: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

53

Example (cont.)1 2 1

2

0

8

3

3

12

9

910

4

10

16

74

1Gf ‘:

1

1

1

1

1

11

1

1

4

44

44

11

1

1

F = 29. Δ = 8(S,T) = 15

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Page 52: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

54

Example (cont.)

3

2 1

2

0

8/8

3

8/12

0/10

8/161

Af’ :1

1

1

0/7

1

0/4

1

F = 29. Δ = 8

1 2 1

2

0

8

3

3

12

9

910

4

10

16

74

1Gf ‘:

1

1

1

1

1

11

1

1

4

44

44

11

1

1while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Page 53: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

55

Example (cont.)1 4 1

2

0

12

4

3

4

9

910

4

10

8

74

1Gf ‘:

1

1

1

1

1

11

1

1

12

44

12

11

1

F = 29. Δ = 8(S,T) = 7 F = 7, Δ = 2

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Page 54: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

56

Example (cont.)

F = 7. Δ = 2

0 0 0

0

0

12

0

0

4

9

910

4

10

8

74

0Gf ‘:

0

0

0

0

0

00

0

1

12

44

12

00

0

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

0 0 0

0

0

12

0

0

4

2/9

910

4

2/10

2/8

2/7

0Af ‘:

0

0

0

0

0

00

012

44

12

00

0

Page 55: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

57

Example (cont.)0 1 0

1

0

12

1

1

4

7

910

4

8

6

54

1Gf ‘:

0

0

0

1

0

01

0

1

12

66

14

00

0

2

1

F = 7. Δ = 2(S,T) = 5

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Page 56: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

58

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Example (cont.)

F = 7. Δ = 260

0 1 0

1

0

12

1

1

4

7

910

4

8

6

54

0Gf ‘:

0

0

0

0

0

01

0

1

12

6

140

2

1

0

0 1 0

1

01

1

4

2/7

10

4

2/8

2/6

2/5

0Af ‘:

0

0

00

1

012

44

12

00

0

Page 57: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

59

80

0 1 0

1

0

12

2

1

4

5

910

4

6

4

34

1Gf ‘:

1

0

0

1

0

01

0

1

12

8

160

4

1

Example (cont.)while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

F = 7. Δ = 2(S,T) = 3 F = 3, Δ = 1

0

Page 58: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

60

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Example (cont.)

F = 3. Δ = 180

0 0 0

0

0

12

0

0

4

5

910

4

6

4

34

0Gf ‘:

0

0

0

0

0

00

0

0

12

8

160

4

0

80

0 0 0

0

0

12

0

0

4

1/5

910

4

1/6

1/4

1/3 4

0Af ‘:

0

0

0

0

0

00

0

0

12

8

160

4

0

Page 59: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

61

Example (cont.)while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

F = 3. Δ = 1(S,T) = 2

90

0 1 0

1

0

12

1

1

4

4

910

4

5

3

24

0Gf ‘:

0

0

0

0

0

01

0

0

12

9

170

5

0

0

Page 60: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

62

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Example (cont.)

F = 3. Δ = 190

0 1 0

1

0

12

1

1

4

4

910

4

5

3

24

0Gf ‘:

0

0

0

0

0

01

0

0

12

9

170

5

0

0

90

0 1 0

1

01

1

4

1/4

10

4

1/5

1/3

1/2

0Af ‘:

0

0

00

1

012

9

170

0

Page 61: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

63

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Example (cont.)

F = 3. Δ = 1(S,T) = 1 F = 1, Δ = 1

10

0

0 2 1

2

0

12

2

2

4

3

910

4

4

2

14

0Gf ‘:

0

0

0

0

0

01

1

0

12

10

180

6

0

0

Page 62: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

64

while F ≥ 1 do

Compute Δ, ℓ, dℓ

while (S,T) > F /2

Compute ℓ*

Find A(f, ℓ*, dℓ)

Contract SCC of A

Find a flow f*

f’ = f + f*

Extend f* to G

Recompute ℓ,dℓ,Gf’

Update F

Example (cont.)

F = 1. Δ = 110

0

0 2 1

2

0

12

2

2

4

3

910

4

4

2

14

0Gf ‘:

0

0

0

0

0

01

1

0

12

10

180

6

0

0

10

0

0 2 1

2

02

2

4

1/3

10

4

1/4

1/2

1/1

0Af ‘:

0

0

00

1

012

10

180

0

Page 63: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

65

Example (cont.)

T

12/12

S

12/16

11/13

0/90/10 0/4

11/14

19/20

7/7

4/4

Final flow:

Page 64: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

66

Concluding Remarks These results can be extended to a wide

class of length functions (not binary) to obtain same time bounds

Open issues: Can the flow decomposition bound be

improved upon by a strongly polynomial algorithm? For example, O(αm(logn)O(1))

Can these results be extended to obtain better bounds for the minimum-cost flow problem?

Page 65: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

Appendix

Unless you had enough

Page 66: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

68

Computing dℓ in linear time We use Dial’s algorithm (1969):

Init: Compute GT

Mark t as “reached but not scanned”, Dist[t]=0

Mark rest of the nodes as “not reached”, Dist[v]=INF, v ≠t

Step 1: Choose a “reached but not scanned”

node v with minimal Dist If no such node – compute G back and

FINISH, else go to Step 2

Page 67: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

69

Dial’s algorithm (cont.)

Step 2: For each (v,w) :

if Dist(w ) > Dist(v ) + ℓ(v,w), then Mark w as “reached but not scanned” Dist(w ) = Dist(v ) + ℓ(v,w) Add (v,w) to the output Remove all arcs (u,w) from the output, u ≠ w

Mark v as “reached and scanned” Go to Step 1

Page 68: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

70

Dial’s algorithm Example

a b

d

ts

c

node

status

Dist

t RnS 0

s nR INF

a nR INF

b nR INF

c nR INF

d nR INF

G

GT

0

10

00

0

1

1

1

a b

d

ts

c0

10

00

0

1

1

1

1

1

Page 69: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

71

Dial’s algorithm Example (cont.)

node

status

Dist

t RnS 0

s nR INF

a nR INF

b nR INF

c nR INF

d nR INF

Dist(b) > Dist(t) + ℓ(t,b)

a b

d

ts

c0

10

00

0

1

1

1

0RnS

1

distance

nodes

0

1

b

Page 70: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

72

Dial’s algorithm Example (cont.)

node

status

Dist

t RnS 0

s nR INF

a nR INF

b RnS 0

c nR INF

d nR INF

Dist(d) > Dist(t) + ℓ(t,d)

a b

d

ts

c0

10

00

0

1

1

1

1RnS

RS1

distance

nodes

0 b

1d

Page 71: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

73

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s nR INF

a nR INF

b RnS 0

c nR INF

d RnS 1

Dist(a) > Dist(b) + ℓ(b,a)1Rn

S

a b

d

ts

c0

10

00

0

1

1

11

distance

nodes

0 b

1 da

Page 72: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

74

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s nR INF

a RnS 1

b RnS 0

c nR INF

d RnS 1

Dist(d) > Dist(b) + ℓ(b,d)

0

a b

d

ts

c0

10

00

0

1

1

11

distance

nodes

0

1 d a

d

RS

Page 73: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

75

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s nR INF

a RnS 1

b RS 0

c nR INF

d RnS 0

Dist(c) > Dist(d) + ℓ(d,c)

0

a b

d

ts

c0

10

00

0

1

1

11

distance

nodes

0 d

1 a

cRnSRS

Page 74: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

76

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s nR INF

a RnS 1

b RS 0

c RnS 0

d RS 0

Dist(s) > Dist(c) + ℓ(c,s)

1

a b

d

ts

c0

10

00

0

1

1

11

distance

nodes

0 c

1 as

RnS

Page 75: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

77

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s RnS 1

a RnS 1

b RS 0

c RnS 0

d RS 0

Dist(a) > Dist(c) + ℓ(c,a)0

a b

d

ts

c0

10

00

0

1

1

11

distance

nodes

0

1 a s

aRS

Page 76: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

78

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s RnS 1

a RnS 0

b RS 0

c RS 0

d RS 0

Dist(s) > Dist(a) + ℓ(a,s)

0

a b

d

ts

c0

10

00

0

1

1

11

distance

nodes

0 a

1 s

s

RS

Page 77: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

79

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s RnS 0

a RS 0

b RS 0

c RS 0

d RS 0

Dist(s) > Dist(a) + ℓ(a,s)

a b

d

ts

c0

10

00

0

1

1

11

distance

nodes

0 s

1

RS

Page 78: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

80

Dial’s algorithm Example (cont.)

node

status

Dist

t RS 0

s RS 0

a RS 0

b RS 0

c RS 0

d RS 0

a b

d

ts

c0

10

00

0

1

1

11

Final result:

Page 79: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

81

Dial’s algorithm Running Time

Build GT – O(n+m) Each arc is examined once – O(m) By keeping bins for possible

distances, perform Step 1 in linear time – O(nU)

Total – O(m + nU)

Page 80: Beyond the flow decomposition barrier Authors: A. V. Goldberg and Satish Rao (1997) Presented by Yana Branzburg Advanced Algorithms Seminar Instructed.

82

References “Beyond the Flow Decomposition

Barrier”, A.V. Goldberg, Satish Rao “A Brief History Of Max-Flow”, R.

Khandekar, K.Talwar “The maximum flow problem”, I.

Hudson “Shortest-path forest with

topological ordering”, R.B. Dial