SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
The Binary Blocking Flow Algorithm

              Andrew V. Goldberg
       Microsoft Research – Silicon Valley
     www.research.microsoft.com/∼goldberg/
Theory vs. Practice




In theory, there is no difference between theory
and practice.




Binary Blocking Flows              Andrew V. Goldberg 1
Problem Definition

  • Input: Digraph G = (V, A), s, t ∈ V , u : A → [1, . . . , U ].
  • n = |V | and m = |A|.
  • Similarity assumption [Gabow 85]: log U = O(log n)
    For modern machines log U, log n ≤ 64.
        ˜
  • The O () bound ignores constants, log n, log U .
  • Flow f : A → [0, . . . U ] obeys capacity constraints and con-
    servation constraints.
  • Flow value |f | is the total flow into t.
  • Cut is a partitioning V = S ∪ T : s ∈ S, t ∈ T .
  • Cut capacity u(S, T ) =      v∈S,w∈T u(v, w).

Maximum flow problem: Find a maximum flow.
Minimum cut problem (dual): Find a minimum cut.

Binary Blocking Flows                                  Andrew V. Goldberg 2
Applications of Flows




  • Classical OR applications, e.g., open pit mining, logistics.
  • Recent applications in computer vision, e.g., image segmen-
    tation and stereo vision.
  • Recent web applications like document classification.
  • AI application.




Binary Blocking Flows                            Andrew V. Goldberg 3
AI Application




                            bi       c ij




                             Bulls          Cows

                        Artificial Insemination.


Binary Blocking Flows                              Andrew V. Goldberg 4
Outline




  • History.
  • The blocking flow method.
  • The binary blocking flow algorithm.
  • Open problem: making the algorithm practical.
  • Open problem: extending the result to minimum-cost flows.




Binary Blocking Flows                         Andrew V. Goldberg 5
Time Bounds
 year    discoverer(s)          bound                           note
 1951    Dantzig                O(n2mU )                     ˜
                                                             O n2mU
 1955    Ford & Fulkerson       O(m2U )                       ˜
                                                             O m2U
 1970    Dinitz                 O(n2m)                        ˜
                                                              O n2m
 1972    Edmonds & Karp         O(m2 log U )                   ˜
                                                              O m2
 1973    Dinitz                 O(nm log U )                   ˜
                                                              O (nm)
 1974    Karzanov               O(n3)
 1977    Cherkassky             O(n2m1/2)
 1980    Galil & Naamad         O(nm log2 n)
 1983    Sleator & Tarjan       O(nm log n)
 1986    Goldberg & Tarjan      O(nm log(n2/m))
 1987    Ahuja & Orlin          O(nm + n2 log U )
                                            √
 1987    Ahuja et al.           O(nm log(n log U /m))
 1989    Cheriyan & Hagerup     E(nm + n2 log2 n)
 1990    Cheriyan et al.        O(n3/ log n)
 1990    Alon                   O(nm + n8/3 log n)
 1992    King et al.            O(nm + n2+ǫ)
 1993    Phillips & Westbrook   O(nm(logm/n n + log2+ǫ n))
 1994    King et al.            O(nm logm/(n log n) n)
 1997    Goldberg & Rao         O(m3/2 log(n2/m) log U )      ˜
                                                             O m3/2
                                O(n2/3m log(n2/m) log U )    ˜
                                                             O n2/3m

blocking flow and push-relabel algorithms.

Binary Blocking Flows                                    Andrew V. Goldberg 6
Augmenting Path Algorithm

  • Residual capacity uf (a) is u(a) − f (a) if a ∈ A and f (aR ) if
    a ∈ A.
  • Residual graph Gf = (V, Af ) is induced by arcs with positive
    residual capacity.
  • Augmenting path is an s-t path in Gf .
f is optimal iff there is no augmenting path.
Flow augmentation: Given an augmenting path Γ, increase f
on all arcs on Γ by the minimum residual capacity of arcs on Γ.
Saturates at least one arc on Γ.

Augmenting path algorithm: While there is an augmenting
path, find one and augment.
Runs in O(m2U ) time.

Unit lengths: ∀a ∈ Af let ℓ(a) = 1.
Augmenting along a shortest path yields a polynomial-time al-
gorithm.

Binary Blocking Flows                              Andrew V. Goldberg 7
Blocking Flows

f in G is blocking if every s-t path in G is saturated.




  • The admissible graph G contains all arcs of Gf on s-t shortest
    paths.
  • G is acyclic.
  • O(m log(n2/m)) algorithm to find a blocking flow in an acyclic
    graph [Goldberg & Tarjan 90].

Blocking flow method:[Dinitz 70]
Repeatedly augment f by a blocking flow in Gf .


Binary Blocking Flows                             Andrew V. Goldberg 8
Blocking Flows: Analysis



Main lemma: Each iteration increases the s to t distance in Gf .
Proof: Let d be the shortest path distance function (to t).
Augmentation changes G.
  • Saturated arcs deleted, distances do not decrease.
  • For new arcs (v, w), d(v) < d(w), distances do not decrease.
  • For the new G and old d, every s-t path contains an arc (v, w)
    with d(v) ≤ d(w) by the definition of the blocking flow.
  • The s-t distance increases.

Theorem: The blocking flow algorithm can be implemented to
run in O(nm log(n2/m)) time.



Binary Blocking Flows                            Andrew V. Goldberg 9
Decomposition Barrier



  • A flow can be decomposed into O(m) paths of length O(n).
  • The total length of augmenting paths can be Ω(nm).
  • Without data structures, the blocking flow algorithm takes
    Ω(nm) time.
  • But data structures allow changing flow on many arcs in one
    operation.

Can we beat the Ω(nm) barrier?

For unit capacities, the blocking flow algorithm runs in O(min(m1/2, n2/3)
time [Karzanov 73] [Even & Tarjan 74].




Binary Blocking Flows                           Andrew V. Goldberg 10
Unit Capacities



Theorem: For unit capacities, the blocking flow algorithm ter-
                   √
minates less than 2 m iterations.
Proof:
          √                    √
 • After m iterations, d(s) > m.
  • Consider cuts ({d(v) > i}, {d(v) ≤ i}).
  • A residual arc crosses at most one such cut.
                                               √
  • One of the cuts’ residual capacity is below m.
               √
  • Less than m additional iterations.

A slightly different argument gives an O(n2/3) bound.




Binary Blocking Flows                         Andrew V. Goldberg 11
Binary Length Function

Algorithm intuition [Goldberg & Rao 1997]:
  • Capacity-based lengths:
    ℓ(a) = 1 if 0 < uf (a) < 2∆, ℓ(a) = 0 otherwise.
  • Maintain residual flow bound F , update when improves by at
    least a factor of 2.
                √
  • Set ∆ = F/ m.
  • Find a flow of value ∆ or a blocking flow; augment.
            √
  • After O( m) ∆-augmentations F decreases.
           √                                      √
  • After 4 m blocking flow augmentations, d(s) ≥ 2 m.
  • One of the cuts ({d(v) > i}, {d(v) ≤ i}) has no 0-length arcs
                √
    and at most m/4 length one arcs.
            √
  • After O( m) blocking flows F decreases.

Why stop blocking flow computation at ∆ value?

Binary Blocking Flows                           Andrew V. Goldberg 12
Zero Length Arcs

Pros:
  • Seem necessary for the result to work.
  • Large arcs do not go from high to low vertex layers.
  • Small cut when d(s) << n.

Cons:
  • G need not be acyclic.
  • Increasing flow in G may create new admissible arcs: d(v) =
    d(w), increasing f (v, w) may increases uf (w, v) to 2∆.
  • The new arcs are created only if an arc length is reduced to
    zero.

These problems can be resolved.

Binary Blocking Flows                          Andrew V. Goldberg 13
Problem: Admissible Cycles


The admissible graph G is induced by arcs (v, w) ∈ Gf : d(v) =
d(w) + ℓ(v, w).
  • G can have only cycles of zero-length arcs between vertices
    with the same d.
  • These arcs have capacities of at least 2∆.
                                           ′
  • Contract SCCs of G to obtain acyclic G .
  • ∆ flow can be routed in such a strongly connected graph in
    linear time [Erlebach & Hagerup 02, Haeupler & Tarjan 07].
  • Stop a blocking flow computation if the current flow has
    value ∆.
                            ′
  • After finding a flow in G , extend it to a flow in G.
                        ′
  • A blocking flow in G is a blocking flow in G.

Binary Blocking Flows                            Andrew V. Goldberg 14
Problem: Arc Length Decrease




                    1                         1

         ∆               ∆            ∆

2                 ∆ 2∆           2         2∆ ∆
                             0                                 0
         ∆               ∆                            ∆

                    1                         1


An arc length can decrease from one to zero and s-t distance
may not increase.




Binary Blocking Flows                       Andrew V. Goldberg 15
Special Arcs



When can length decrease on (v, w) happen and hurt?
 1. ∆ ≤ uf (v, w) < 2∆
 2. d(v) = d(w)
     ◦ d(v) > d(w): f (v, w)R not increases, ℓ(v, w) not decreases.
     ◦ d(v) < d(w): decreasing ℓ(v, w) does not hurt.
 3. (optional) uf (v, w)R ≥ 2∆

Special arc: Satisfies (1), (2) and optionally (3).

Can reduce special arc length to zero: d does not change, residual
capacity large.




Binary Blocking Flows                            Andrew V. Goldberg 16
Main Loop


  • Assign arc lengths, compute distances to t.
  • Reduce special arc length to zero.
                                           ′
  • Contract SCCs in G to obtain G .
                                                   ′
  • Find a ∆-flow or a blocking flow in G .
  • Extend to a flow in G, augment.
                         1                              1

             ∆                 ∆               ∆               ∆

    2                   ∆ 2∆           2               ∆ 2∆
                                   0                                   0
             ∆                 ∆               ∆               ∆

                         1                              1



Binary Blocking Flows                                   Andrew V. Goldberg 17
Main Theorem




Theorem: While F stays the same, d is monotone.            In the
blocking flow case, d(s) increases.


Proof: Similar to the regular blocking flow algorithm except for
special arcs.




Binary Blocking Flows                         Andrew V. Goldberg 18
Analysis

  √
O( m log(mU )) iteration bound is easy. To do better:
  • While ∆ ≥ U no zero-length arcs, d(s) monotone.
            √                    √
  • After O( m) iterations F ≤ mU .
       √
  • O( m) iterations reduces F by a factor of two.
         √                         √
  • In O( m log U ) iterations F ≤ m.
  • Integral flow, an iteration decreases F .
       √
  • O( m log U ) iterations total.
  • An iteration is dominated by a blocking flow.
  • A slight variation gives an O(n2/3 log U ) iteration bound.

Theorem: The algorithm runs in O(min(m1/2, n2/3)m log(U ) log(n2/m))
time.

Binary Blocking Flows                            Andrew V. Goldberg 19
Practicality


Non-unit lengths are a natural idea with a solid theoretical justi-
fication, but...
  • [Hagerup et al 1998]: The binary blocking flow algorithm
    implementation is more robust that the standard blocking
    flow algorithm.
  • So far, nobody was able to use length functions to get a
    more robust implementation than good push-relabel imple-
    mentations (we tried!).
  • Theoretical obstacle – flow can move around cycles.
  • Global re-computation of distances and contraction of the
    SCCs is expensive.

Open problem: Are non-unit length functions practical?


Binary Blocking Flows                            Andrew V. Goldberg 20
Push–Relabel Method


Push–relabel algorithms [Goldberg & Tarjan 1986] are more prac-
tical than blocking flow algorithms. Uses unit lengths.
  • Preflow f [Karzanov 1974]: v = s may have flow excess
    ef (v), but not deficit.
  • Distance labeling gives lower bounds on distance to t in Gf .
    Formally d : V → N , d(t) = 0, ∀(v, w) ∈ Gf , d(v) ≤ d(w) + 1.
  • Initially d(v) = 1 for v = s, t, d(s) = n, arcs out of s are
    saturated.
  • Apply push and relabel operations until none applies.
  • Algorithm terminates with a min-cut.         Converting preflow
    into flow is fast.
  • Admissible arc: (v, w) ∈ Af : d(v) > d(w).


Binary Blocking Flows                              Andrew V. Goldberg 21
Push–Relabel (cont.)




  • Algorithm updates f and d using push and relabel operations.
  • push(v, w): ef (v) > 0, (v, w) admissible.
    Increase f (v, w) by at most min(uf (v, w), ef (v)).
  • relabel(v): d(v) < n, no arc (v, w) is admissible.
    Increase d(v) by 1 or the maximum possible value.
  • Selection rules: Pick the next vertex to process, e.g., FIFO
    on vertices with excess, highest-labeled vertex with excess.

The binary lengths function does not give improved bounds.




Binary Blocking Flows                              Andrew V. Goldberg 22
Augment–Relabel Algorithm

Intuitively, push-relabel with DFS operation ordering.

FindPath(v)
{
  if (v == t) return(true);
  while (there is an admissible arc (v,w)) {
    if (FindPath(w) {
      v->current = (v,w); return(true);
    }
  }
  relabel(v); return(false);
}

The algorithm repeatedly calls FindPath(s) and augments along
the current arc path from s to t until d(s) ≥ n.
Can use binary lengths to get the improved bounds.
Does not work well in practice.

Binary Blocking Flows                          Andrew V. Goldberg 23
Min-Cost Flows


Problem definition: Additional cost per unit of flow c(a); find
maximum flow of minimum cost.


Min-cost flow algorithms:
  • For unit lengths, max-flow + cost-scaling = min-cost flow
    with log(nC) slowdown, where C is the maximum arc length.
  • In particular, get an O(nm log(n2/m) log(nC)) algorithm.
  • For unit capacities, [Gabow & Tarjan 87] give an
    O(min(n2/3m1/2)m log(nC)) algorithm.

Open problem: For min-cost flows with integral data, is there
an O(min(n2/3m1/2)m log(nC) log U ) algorithm?
...or a more modest O n1−ǫm algorithm for ǫ > 0?
                    ˜


Binary Blocking Flows                         Andrew V. Goldberg 24
Conclusions




  • Bounds for unit and arbitrary integral capacity maximum
    flows are close.
  • Strongly polynomial bounds are still ω(nm).
  • Non-unit length functions are natural and theoretically justi-
    fied, but not practical yet.
  • For minimum-cost flow, bounds for unit and arbitrary integral
    capacities are far.




Binary Blocking Flows                           Andrew V. Goldberg 25

Weitere ähnliche Inhalte

Was ist angesagt?

[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's AlgorithmChih-Hsuan Kuo
 
『劣モジュラ最適化と機械学習』 4章
『劣モジュラ最適化と機械学習』 4章『劣モジュラ最適化と機械学習』 4章
『劣モジュラ最適化と機械学習』 4章ayato shimada
 
劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節Hakky St
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
Chokudai Contest 001
Chokudai Contest 001Chokudai Contest 001
Chokudai Contest 001AtCoder Inc.
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端Takuya Akiba
 
道路網における経路探索のための前処理データ構造
道路網における経路探索のための前処理データ構造道路網における経路探索のための前処理データ構造
道路網における経路探索のための前処理データ構造Atsushi Koike
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War IIISlide_N
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemBo Li
 
Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3Guerrilla
 
Memory safety in rust
Memory safety in rustMemory safety in rust
Memory safety in rustJawahar
 
goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?mori takuma
 
Multi-scalar multiplication: state of the art and new ideas
Multi-scalar multiplication: state of the art and new ideasMulti-scalar multiplication: state of the art and new ideas
Multi-scalar multiplication: state of the art and new ideasGus Gutoski
 
Siggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeSiggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeUmbra
 
Adversarial search
Adversarial searchAdversarial search
Adversarial searchDheerendra k
 

Was ist angesagt? (20)

[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm
 
『劣モジュラ最適化と機械学習』 4章
『劣モジュラ最適化と機械学習』 4章『劣モジュラ最適化と機械学習』 4章
『劣モジュラ最適化と機械学習』 4章
 
劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節
 
PFI Seminar 2010/02/18
PFI Seminar 2010/02/18PFI Seminar 2010/02/18
PFI Seminar 2010/02/18
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Chokudai Contest 001
Chokudai Contest 001Chokudai Contest 001
Chokudai Contest 001
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
 
道路網における経路探索のための前処理データ構造
道路網における経路探索のための前処理データ構造道路網における経路探索のための前処理データ構造
道路網における経路探索のための前処理データ構造
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War III
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering System
 
Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3
 
Memory safety in rust
Memory safety in rustMemory safety in rust
Memory safety in rust
 
goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?
 
Multi-scalar multiplication: state of the art and new ideas
Multi-scalar multiplication: state of the art and new ideasMulti-scalar multiplication: state of the art and new ideas
Multi-scalar multiplication: state of the art and new ideas
 
暗認本読書会12
暗認本読書会12暗認本読書会12
暗認本読書会12
 
凸包
凸包凸包
凸包
 
双対性
双対性双対性
双対性
 
Siggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeSiggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan Wake
 
Adversarial search
Adversarial searchAdversarial search
Adversarial search
 

Ähnlich wie Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem

35 dijkstras alg
35 dijkstras alg35 dijkstras alg
35 dijkstras algdouglaslyon
 
Wk 12 fr bode plot nyquist may 9 2016
Wk 12 fr bode plot nyquist   may 9 2016Wk 12 fr bode plot nyquist   may 9 2016
Wk 12 fr bode plot nyquist may 9 2016Charlton Inao
 
Connected roman domination in graphs
Connected roman domination in graphsConnected roman domination in graphs
Connected roman domination in graphseSAT Journals
 
hydro chapter_4_b_pipe_network_by louy Al hami
hydro  chapter_4_b_pipe_network_by louy Al hami hydro  chapter_4_b_pipe_network_by louy Al hami
hydro chapter_4_b_pipe_network_by louy Al hami Louy Alhamy
 
A Fast Implicit Gaussian Curvature Filter
A Fast Implicit Gaussian Curvature FilterA Fast Implicit Gaussian Curvature Filter
A Fast Implicit Gaussian Curvature FilterYuanhao Gong
 
Transmission Lines Part 2 (TL Formulas).pptx
Transmission Lines Part 2 (TL Formulas).pptxTransmission Lines Part 2 (TL Formulas).pptx
Transmission Lines Part 2 (TL Formulas).pptxPawanKumar391848
 
Cu06997 lecture 6_flow in pipes 1_2013
Cu06997 lecture 6_flow in pipes 1_2013Cu06997 lecture 6_flow in pipes 1_2013
Cu06997 lecture 6_flow in pipes 1_2013Henk Massink
 
E6 GUT Model and the Higgs boson search
E6 GUT Model and the Higgs boson searchE6 GUT Model and the Higgs boson search
E6 GUT Model and the Higgs boson searchkneemo
 
Cu06997 lecture 7_culvert_2013
Cu06997 lecture 7_culvert_2013Cu06997 lecture 7_culvert_2013
Cu06997 lecture 7_culvert_2013Henk Massink
 
2.6 all pairsshortestpath
2.6 all pairsshortestpath2.6 all pairsshortestpath
2.6 all pairsshortestpathKrish_ver2
 

Ähnlich wie Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem (20)

Shortest Path in Graph
Shortest Path in GraphShortest Path in Graph
Shortest Path in Graph
 
Laminar turbulent
Laminar turbulentLaminar turbulent
Laminar turbulent
 
Arvind ipawm
Arvind ipawmArvind ipawm
Arvind ipawm
 
1stSymposiumTALK_Closed_Conduit-Paul_Ghamry
1stSymposiumTALK_Closed_Conduit-Paul_Ghamry1stSymposiumTALK_Closed_Conduit-Paul_Ghamry
1stSymposiumTALK_Closed_Conduit-Paul_Ghamry
 
35 dijkstras alg
35 dijkstras alg35 dijkstras alg
35 dijkstras alg
 
Kaplan turbines
Kaplan turbinesKaplan turbines
Kaplan turbines
 
Wk 12 fr bode plot nyquist may 9 2016
Wk 12 fr bode plot nyquist   may 9 2016Wk 12 fr bode plot nyquist   may 9 2016
Wk 12 fr bode plot nyquist may 9 2016
 
Connected roman domination in graphs
Connected roman domination in graphsConnected roman domination in graphs
Connected roman domination in graphs
 
04 greedyalgorithmsii
04 greedyalgorithmsii04 greedyalgorithmsii
04 greedyalgorithmsii
 
hydro chapter_4_b_pipe_network_by louy Al hami
hydro  chapter_4_b_pipe_network_by louy Al hami hydro  chapter_4_b_pipe_network_by louy Al hami
hydro chapter_4_b_pipe_network_by louy Al hami
 
A Fast Implicit Gaussian Curvature Filter
A Fast Implicit Gaussian Curvature FilterA Fast Implicit Gaussian Curvature Filter
A Fast Implicit Gaussian Curvature Filter
 
Pres yf v2
Pres yf v2Pres yf v2
Pres yf v2
 
Transmission Lines Part 2 (TL Formulas).pptx
Transmission Lines Part 2 (TL Formulas).pptxTransmission Lines Part 2 (TL Formulas).pptx
Transmission Lines Part 2 (TL Formulas).pptx
 
Hydraulic losses in pipe
Hydraulic losses in pipeHydraulic losses in pipe
Hydraulic losses in pipe
 
Cu06997 lecture 6_flow in pipes 1_2013
Cu06997 lecture 6_flow in pipes 1_2013Cu06997 lecture 6_flow in pipes 1_2013
Cu06997 lecture 6_flow in pipes 1_2013
 
E6 GUT Model and the Higgs boson search
E6 GUT Model and the Higgs boson searchE6 GUT Model and the Higgs boson search
E6 GUT Model and the Higgs boson search
 
Cu06997 lecture 7_culvert_2013
Cu06997 lecture 7_culvert_2013Cu06997 lecture 7_culvert_2013
Cu06997 lecture 7_culvert_2013
 
Spsp fw
Spsp fwSpsp fw
Spsp fw
 
2.6 all pairsshortestpath
2.6 all pairsshortestpath2.6 all pairsshortestpath
2.6 all pairsshortestpath
 
Basic E&Mcalculations for a coal mining project
Basic E&Mcalculations for a coal mining projectBasic E&Mcalculations for a coal mining project
Basic E&Mcalculations for a coal mining project
 

Mehr von Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Mehr von Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

Kürzlich hochgeladen

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Kürzlich hochgeladen (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem

  • 1. The Binary Blocking Flow Algorithm Andrew V. Goldberg Microsoft Research – Silicon Valley www.research.microsoft.com/∼goldberg/
  • 2. Theory vs. Practice In theory, there is no difference between theory and practice. Binary Blocking Flows Andrew V. Goldberg 1
  • 3. Problem Definition • Input: Digraph G = (V, A), s, t ∈ V , u : A → [1, . . . , U ]. • n = |V | and m = |A|. • Similarity assumption [Gabow 85]: log U = O(log n) For modern machines log U, log n ≤ 64. ˜ • The O () bound ignores constants, log n, log U . • Flow f : A → [0, . . . U ] obeys capacity constraints and con- servation constraints. • Flow value |f | is the total flow into t. • Cut is a partitioning V = S ∪ T : s ∈ S, t ∈ T . • Cut capacity u(S, T ) = v∈S,w∈T u(v, w). Maximum flow problem: Find a maximum flow. Minimum cut problem (dual): Find a minimum cut. Binary Blocking Flows Andrew V. Goldberg 2
  • 4. Applications of Flows • Classical OR applications, e.g., open pit mining, logistics. • Recent applications in computer vision, e.g., image segmen- tation and stereo vision. • Recent web applications like document classification. • AI application. Binary Blocking Flows Andrew V. Goldberg 3
  • 5. AI Application bi c ij Bulls Cows Artificial Insemination. Binary Blocking Flows Andrew V. Goldberg 4
  • 6. Outline • History. • The blocking flow method. • The binary blocking flow algorithm. • Open problem: making the algorithm practical. • Open problem: extending the result to minimum-cost flows. Binary Blocking Flows Andrew V. Goldberg 5
  • 7. Time Bounds year discoverer(s) bound note 1951 Dantzig O(n2mU ) ˜ O n2mU 1955 Ford & Fulkerson O(m2U ) ˜ O m2U 1970 Dinitz O(n2m) ˜ O n2m 1972 Edmonds & Karp O(m2 log U ) ˜ O m2 1973 Dinitz O(nm log U ) ˜ O (nm) 1974 Karzanov O(n3) 1977 Cherkassky O(n2m1/2) 1980 Galil & Naamad O(nm log2 n) 1983 Sleator & Tarjan O(nm log n) 1986 Goldberg & Tarjan O(nm log(n2/m)) 1987 Ahuja & Orlin O(nm + n2 log U ) √ 1987 Ahuja et al. O(nm log(n log U /m)) 1989 Cheriyan & Hagerup E(nm + n2 log2 n) 1990 Cheriyan et al. O(n3/ log n) 1990 Alon O(nm + n8/3 log n) 1992 King et al. O(nm + n2+ǫ) 1993 Phillips & Westbrook O(nm(logm/n n + log2+ǫ n)) 1994 King et al. O(nm logm/(n log n) n) 1997 Goldberg & Rao O(m3/2 log(n2/m) log U ) ˜ O m3/2 O(n2/3m log(n2/m) log U ) ˜ O n2/3m blocking flow and push-relabel algorithms. Binary Blocking Flows Andrew V. Goldberg 6
  • 8. Augmenting Path Algorithm • Residual capacity uf (a) is u(a) − f (a) if a ∈ A and f (aR ) if a ∈ A. • Residual graph Gf = (V, Af ) is induced by arcs with positive residual capacity. • Augmenting path is an s-t path in Gf . f is optimal iff there is no augmenting path. Flow augmentation: Given an augmenting path Γ, increase f on all arcs on Γ by the minimum residual capacity of arcs on Γ. Saturates at least one arc on Γ. Augmenting path algorithm: While there is an augmenting path, find one and augment. Runs in O(m2U ) time. Unit lengths: ∀a ∈ Af let ℓ(a) = 1. Augmenting along a shortest path yields a polynomial-time al- gorithm. Binary Blocking Flows Andrew V. Goldberg 7
  • 9. Blocking Flows f in G is blocking if every s-t path in G is saturated. • The admissible graph G contains all arcs of Gf on s-t shortest paths. • G is acyclic. • O(m log(n2/m)) algorithm to find a blocking flow in an acyclic graph [Goldberg & Tarjan 90]. Blocking flow method:[Dinitz 70] Repeatedly augment f by a blocking flow in Gf . Binary Blocking Flows Andrew V. Goldberg 8
  • 10. Blocking Flows: Analysis Main lemma: Each iteration increases the s to t distance in Gf . Proof: Let d be the shortest path distance function (to t). Augmentation changes G. • Saturated arcs deleted, distances do not decrease. • For new arcs (v, w), d(v) < d(w), distances do not decrease. • For the new G and old d, every s-t path contains an arc (v, w) with d(v) ≤ d(w) by the definition of the blocking flow. • The s-t distance increases. Theorem: The blocking flow algorithm can be implemented to run in O(nm log(n2/m)) time. Binary Blocking Flows Andrew V. Goldberg 9
  • 11. Decomposition Barrier • A flow can be decomposed into O(m) paths of length O(n). • The total length of augmenting paths can be Ω(nm). • Without data structures, the blocking flow algorithm takes Ω(nm) time. • But data structures allow changing flow on many arcs in one operation. Can we beat the Ω(nm) barrier? For unit capacities, the blocking flow algorithm runs in O(min(m1/2, n2/3) time [Karzanov 73] [Even & Tarjan 74]. Binary Blocking Flows Andrew V. Goldberg 10
  • 12. Unit Capacities Theorem: For unit capacities, the blocking flow algorithm ter- √ minates less than 2 m iterations. Proof: √ √ • After m iterations, d(s) > m. • Consider cuts ({d(v) > i}, {d(v) ≤ i}). • A residual arc crosses at most one such cut. √ • One of the cuts’ residual capacity is below m. √ • Less than m additional iterations. A slightly different argument gives an O(n2/3) bound. Binary Blocking Flows Andrew V. Goldberg 11
  • 13. Binary Length Function Algorithm intuition [Goldberg & Rao 1997]: • Capacity-based lengths: ℓ(a) = 1 if 0 < uf (a) < 2∆, ℓ(a) = 0 otherwise. • Maintain residual flow bound F , update when improves by at least a factor of 2. √ • Set ∆ = F/ m. • Find a flow of value ∆ or a blocking flow; augment. √ • After O( m) ∆-augmentations F decreases. √ √ • After 4 m blocking flow augmentations, d(s) ≥ 2 m. • One of the cuts ({d(v) > i}, {d(v) ≤ i}) has no 0-length arcs √ and at most m/4 length one arcs. √ • After O( m) blocking flows F decreases. Why stop blocking flow computation at ∆ value? Binary Blocking Flows Andrew V. Goldberg 12
  • 14. Zero Length Arcs Pros: • Seem necessary for the result to work. • Large arcs do not go from high to low vertex layers. • Small cut when d(s) << n. Cons: • G need not be acyclic. • Increasing flow in G may create new admissible arcs: d(v) = d(w), increasing f (v, w) may increases uf (w, v) to 2∆. • The new arcs are created only if an arc length is reduced to zero. These problems can be resolved. Binary Blocking Flows Andrew V. Goldberg 13
  • 15. Problem: Admissible Cycles The admissible graph G is induced by arcs (v, w) ∈ Gf : d(v) = d(w) + ℓ(v, w). • G can have only cycles of zero-length arcs between vertices with the same d. • These arcs have capacities of at least 2∆. ′ • Contract SCCs of G to obtain acyclic G . • ∆ flow can be routed in such a strongly connected graph in linear time [Erlebach & Hagerup 02, Haeupler & Tarjan 07]. • Stop a blocking flow computation if the current flow has value ∆. ′ • After finding a flow in G , extend it to a flow in G. ′ • A blocking flow in G is a blocking flow in G. Binary Blocking Flows Andrew V. Goldberg 14
  • 16. Problem: Arc Length Decrease 1 1 ∆ ∆ ∆ 2 ∆ 2∆ 2 2∆ ∆ 0 0 ∆ ∆ ∆ 1 1 An arc length can decrease from one to zero and s-t distance may not increase. Binary Blocking Flows Andrew V. Goldberg 15
  • 17. Special Arcs When can length decrease on (v, w) happen and hurt? 1. ∆ ≤ uf (v, w) < 2∆ 2. d(v) = d(w) ◦ d(v) > d(w): f (v, w)R not increases, ℓ(v, w) not decreases. ◦ d(v) < d(w): decreasing ℓ(v, w) does not hurt. 3. (optional) uf (v, w)R ≥ 2∆ Special arc: Satisfies (1), (2) and optionally (3). Can reduce special arc length to zero: d does not change, residual capacity large. Binary Blocking Flows Andrew V. Goldberg 16
  • 18. Main Loop • Assign arc lengths, compute distances to t. • Reduce special arc length to zero. ′ • Contract SCCs in G to obtain G . ′ • Find a ∆-flow or a blocking flow in G . • Extend to a flow in G, augment. 1 1 ∆ ∆ ∆ ∆ 2 ∆ 2∆ 2 ∆ 2∆ 0 0 ∆ ∆ ∆ ∆ 1 1 Binary Blocking Flows Andrew V. Goldberg 17
  • 19. Main Theorem Theorem: While F stays the same, d is monotone. In the blocking flow case, d(s) increases. Proof: Similar to the regular blocking flow algorithm except for special arcs. Binary Blocking Flows Andrew V. Goldberg 18
  • 20. Analysis √ O( m log(mU )) iteration bound is easy. To do better: • While ∆ ≥ U no zero-length arcs, d(s) monotone. √ √ • After O( m) iterations F ≤ mU . √ • O( m) iterations reduces F by a factor of two. √ √ • In O( m log U ) iterations F ≤ m. • Integral flow, an iteration decreases F . √ • O( m log U ) iterations total. • An iteration is dominated by a blocking flow. • A slight variation gives an O(n2/3 log U ) iteration bound. Theorem: The algorithm runs in O(min(m1/2, n2/3)m log(U ) log(n2/m)) time. Binary Blocking Flows Andrew V. Goldberg 19
  • 21. Practicality Non-unit lengths are a natural idea with a solid theoretical justi- fication, but... • [Hagerup et al 1998]: The binary blocking flow algorithm implementation is more robust that the standard blocking flow algorithm. • So far, nobody was able to use length functions to get a more robust implementation than good push-relabel imple- mentations (we tried!). • Theoretical obstacle – flow can move around cycles. • Global re-computation of distances and contraction of the SCCs is expensive. Open problem: Are non-unit length functions practical? Binary Blocking Flows Andrew V. Goldberg 20
  • 22. Push–Relabel Method Push–relabel algorithms [Goldberg & Tarjan 1986] are more prac- tical than blocking flow algorithms. Uses unit lengths. • Preflow f [Karzanov 1974]: v = s may have flow excess ef (v), but not deficit. • Distance labeling gives lower bounds on distance to t in Gf . Formally d : V → N , d(t) = 0, ∀(v, w) ∈ Gf , d(v) ≤ d(w) + 1. • Initially d(v) = 1 for v = s, t, d(s) = n, arcs out of s are saturated. • Apply push and relabel operations until none applies. • Algorithm terminates with a min-cut. Converting preflow into flow is fast. • Admissible arc: (v, w) ∈ Af : d(v) > d(w). Binary Blocking Flows Andrew V. Goldberg 21
  • 23. Push–Relabel (cont.) • Algorithm updates f and d using push and relabel operations. • push(v, w): ef (v) > 0, (v, w) admissible. Increase f (v, w) by at most min(uf (v, w), ef (v)). • relabel(v): d(v) < n, no arc (v, w) is admissible. Increase d(v) by 1 or the maximum possible value. • Selection rules: Pick the next vertex to process, e.g., FIFO on vertices with excess, highest-labeled vertex with excess. The binary lengths function does not give improved bounds. Binary Blocking Flows Andrew V. Goldberg 22
  • 24. Augment–Relabel Algorithm Intuitively, push-relabel with DFS operation ordering. FindPath(v) { if (v == t) return(true); while (there is an admissible arc (v,w)) { if (FindPath(w) { v->current = (v,w); return(true); } } relabel(v); return(false); } The algorithm repeatedly calls FindPath(s) and augments along the current arc path from s to t until d(s) ≥ n. Can use binary lengths to get the improved bounds. Does not work well in practice. Binary Blocking Flows Andrew V. Goldberg 23
  • 25. Min-Cost Flows Problem definition: Additional cost per unit of flow c(a); find maximum flow of minimum cost. Min-cost flow algorithms: • For unit lengths, max-flow + cost-scaling = min-cost flow with log(nC) slowdown, where C is the maximum arc length. • In particular, get an O(nm log(n2/m) log(nC)) algorithm. • For unit capacities, [Gabow & Tarjan 87] give an O(min(n2/3m1/2)m log(nC)) algorithm. Open problem: For min-cost flows with integral data, is there an O(min(n2/3m1/2)m log(nC) log U ) algorithm? ...or a more modest O n1−ǫm algorithm for ǫ > 0? ˜ Binary Blocking Flows Andrew V. Goldberg 24
  • 26. Conclusions • Bounds for unit and arbitrary integral capacity maximum flows are close. • Strongly polynomial bounds are still ω(nm). • Non-unit length functions are natural and theoretically justi- fied, but not practical yet. • For minimum-cost flow, bounds for unit and arbitrary integral capacities are far. Binary Blocking Flows Andrew V. Goldberg 25