200 likes | 372 Views
Maximum Flow by Incremental Breadth First Search. Andrew V. Goldberg Microsoft Research. Sagi Hed Tel Aviv University. Haim Kaplan Tel Aviv University. s. Renato F. Werneck Microsoft Research. Robert E. Tarjan Princeton University & HP Labs. Maximum Flow.
E N D
Maximum Flow byIncrementalBreadth First Search Andrew V. Goldberg Microsoft Research Sagi Hed Tel Aviv University Haim Kaplan Tel Aviv University s Renato F. Werneck Microsoft Research Robert E. Tarjan Princeton University & HP Labs
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 e f(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
Maximum Flowin Computer Vision • Graphs have specific structure • Regular low degree grids • Arc capacities: different models for grid arcs and s-t arcs
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
Our ContributionIBFS • 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 BKUsually outperforms BK by small factors • Has a polynomial worst case time guaranteeO(mn2)
Augmenting Path Algorithms • Augmenting path algorithms constantly maintain a flow function f, fconstantly increases. • When the algorithm terminates f is maximal • Augmentation: add (maximal) Xto flow along an s-t path • Residual graph: Gf = (V,Ef)Ef = {(u,v) | (u,v) є E V f(u,v) < c(u,v)} U {(v,u) | (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 Gf give maximal flow s
BK Overview • Maintain trees S, T in the residual graph • Iterate 3 phases: Growth, Augmentation, Adoption • Growth: grow S and T bi-directionally t s s S T
BK Overview • Augmentation: when the trees meet, we augment flow • Adoption: after an augmentation, we try to reconnect “orphaned” sub-trees s s t S T
IBFS Overview • We maintain S, T as BFS trees with heights ≈ Ds , Dt • Augment on shortest or nearly shortest paths (+1) s s shortest+1 t shortest S T
IBFS Overview • Adoption / how to rebuild the trees:If subtree reconnects at the same level, we’re done t s s S T Ds Dt
IBFS Overview • Otherwise: • Relabel: set label to lowest potential parent + 1 • Make children into orphan sub-trees s s t S T
IBFS Overview • BFS trees => worst case bound O(mn2)(must also maintain a current arc) t s s S T
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
IBFS Experiments • Ran on computer vision instancespublic benchmark [http://vision.csd.uwo.ca/maxflow-data/]our own creation [http://www.cs.tau.ac.il/~sagihed/ibfs/] • BK implementation available publicly [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
IBFS Experiments • Operation Counts(per vertex) s