Download presentation
Presentation is loading. Please wait.
Published byDaisy Evans Modified over 9 years ago
1
s Maximum Flow by Incremental Breadth First Search Sagi Hed Tel Aviv University Haim Kaplan Tel Aviv University Renato F. Werneck Microsoft Research Andrew V. Goldberg Microsoft Research Robert E. Tarjan Princeton University & HP Labs
2
Maximum Flow Input: directed graph G=(V,E), vertices s, t є V and capacity assignment c(e) for e є E Output: flow function f satisfying - conservation: for every v≠s,t Σ (u,v)єE f(u,v) = Σ (v,u)єE f(v,u) capacity:for every ef(e) ≤ c(e) with maximal |f|=sum of flow out of s (into t) Well studied problem Equivalent to the Minimum s-t Cut problem Solution methods: Augmenting Path (and blocking flow), Network Simplex, Push-Relabel
3
Maximum Flow in Computer Vision Graphs have specific structure Regular low degree grids Arc capacities: different models for grid arcs and s-t arcs
4
BK Boykov and Kolmogorov developed an algorithm (BK) which is the fastest in practice on the vision instances [Boykov, Kolmogorov 04] Used as the standard min-cut algorithm in computer vision Usually outperforms Push-Relabel implementation by considerable factors Problem: BK has no known polynomial time guarantee… Best bound is O(mnF) for integral capacities (F is the maximal flow value) Indeed on some instances, BK performs poorly and is outperformed by Push-Relabel implementation
5
Our Contribution IBFS We develop the IBFS algorithm – Incremental Breadth First Search Has many similarities to BK However, performs shortest path or nearly shortest path augmentations Competative in practice to BK Usually outperforms BK by small factors Has a polynomial worst case time guarantee O(mn 2 )
6
Augmenting Path Algorithms Augmenting path algorithms constantly maintain a flow function f, f constantly increases. When the algorithm terminates f is maximal Augmentation: add (maximal) X to flow along an s-t path Residual graph: G f = (V,E f ) E f = {(u,v) | (u,v) є E V f(u,v) 0} Extend f and c to f(v,u)=-f(u,v) and c(v,u)=0 for (u,v) є E Ford & Falkerson: augmentations in G f give maximal flow s
7
BK Overview Maintain trees S, T in the residual graph Iterate 3 phases: Growth, Augmentation, Adoption Growth: grow S and T bi-directionally s t ST s
8
BK Overview Augmentation: when the trees meet, we augment flow Adoption: after an augmentation, we try to reconnect “orphaned” sub-trees s t ST s
9
IBFS Overview We maintain S, T as BFS trees with heights ≈ D s, D t Augment on shortest or nearly shortest paths (+1) s t ST s shortest+1 shortest
10
IBFS Overview Adoption / how to rebuild the trees: If subtree reconnects at the same level, we’re done s t ST DsDs DtDt s
11
IBFS Overview Otherwise: Relabel: set label to lowest potential parent + 1 Make children into orphan sub-trees s t ST s
12
IBFS Overview BFS trees => worst case bound O(mn 2 ) (must also maintain a current arc) s s t ST
13
IBFS vs. BK Maintaining BFS trees => more work rebuilding the trees after each augmentation Shortest augmenting paths => less work in each augmentation Shortest augmenting paths lead to less augmentations => growth steps We get rid of the parent traversal step s
14
IBFS Experiments Ran on computer vision instances public benchmark [http://vision.csd.uwo.ca/maxflow-data/] our own creation [http://www.cs.tau.ac.il/~sagihed/ibfs/]http://vision.csd.uwo.ca/maxflow-data/http://www.cs.tau.ac.il/~sagihed/ibfs/ BK implementation available publicly [http://vision.csd.uwo.ca/code/]http://vision.csd.uwo.ca/code/ We compare to a modified version of BK, with the same low level optimizations as our own (≈ 20% faster) IBFS outperforms BK on all but two instances: 2 different capacity versions of the instance “bone” Factors are mostly modest. For few they are large. s
15
IBFS Experiments OTOrphansGrowthPushes SpeedupInstance BK IBFSBKIBFSBKIBFS 38.47.787.87.76.7160.016.93digged 126.543.9601.725.47.3353.2108.41.11hessi1a 43.713.3129.610.26.3122.233.01.24house 83.327.3348.317.36.8153.053.51.07anthra 23.06.830.18.8;6.810.92.81.17bone_subx100 66.513.656.012.36.923.27.52.15liver100 39.59.546.310.76.612.74.51.76babyface100 7.05.135.68.16.92.00.50.79bone100 0.60.40.66.2 0.50.31.23bunny-med 61.213.092.49.46.874.020.41.54camel-med 250.520.7121.612.18.7337.222.76.16gargoyle-med 8.113.518.011.28.86.23.31.39kz2-venus s Operation Counts (per vertex)
16
s
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.