Presentation is loading. Please wait.

Presentation is loading. Please wait.

Approximate Undirected Maximum Flows in O(m polylog(n)) Time

Similar presentations


Presentation on theme: "Approximate Undirected Maximum Flows in O(m polylog(n)) Time"— Presentation transcript:

1 Approximate Undirected Maximum Flows in O(m polylog(n)) Time
Richard Peng M.I.T. 1

2 Outline Problem Previous works Numerical algorithms
Putting things together What’s next?

3 Maximum flow Problem Find the maximum number of disjoint s-t paths s
Applications: Routing Scheduling t Assume throughout talk: unweighted, undirected graphs n vertices, m edges

4 Maxflow-Mincut Dual: separate s and t by removing fewest edges s
Applications: Partitioning Clustering t Formulation: label vertices with 0-1 based on side of cut, can relax to reals

5 ‘Prototype’ Flow Algorithm (Ford-Fulkerson `56)
While exists s-t path route it adjust graph s t s May also ‘fix’ earlier flow via residual graph t

6 Difficulties captured
Highly connected: route up to n paths Long paths: a step may involve n vertices Each ‘easy’ on their own Goal: handle both and do better than many steps × long paths = n2

7 Related to Routines with outer/inner loops
Optimization / numerical analysis Simplex method Do better than many steps × long paths = n2 encapsulates many difficulties in efficiency

8 Study of Flow Algorithms Led to
Augmenting paths [Ford-Fulkerson `55] Notion of polynomial time [Edmonds `65] Blocking flows [Edmonds-Karp `75, Dinic `73] Dynamic tree data structures [Galil-Naamad `80] Dual / scaling algorithms [Gabow `83, algorithms, Goldberg-Tarjan `88, Goldberg-Rao `99] Faster solvers for graph Laplacians [Vaidya `89]

9 Outline Problem Previous works Numerical algorithms
Putting things together What’s next?

10 Algorithms for Flows 2008: pseudo-flows 1970s: Blocking flows
1980: dynamic trees 2010: algebraic methods 1956: augmenting paths 1986: dual algorithms

11 Primal Methods s t Picking fewer paths s t Pick ‘shorter’ paths
[FF `56]: pick paths, O(mn) in unit capacitated graphs, O(m|F|) in general graphs s t Picking fewer paths [EK `73]: shortest path, O(m2n) for general graphs Planar: div-conquer, route to separators, O(mloglogn) ~ O(mlog3n) depending on variant s t Pick ‘shorter’ paths [Dinic `73][HK `75]: blocking flows, O(m3/2) in unit capacitated graphs [GN `80][ST `83]: dynamic trees O(mnlogn) in general graphs

12 Limit of this Approach? s
[HK `75]: if we can route f units of flow in a unit-capacity graph, the shortest augmenting path has length at most m / f t s If we can find (approximate) shortest paths dynamically: Σf=1m(m / f) = O(mlogn) = t

13 Dual Methods s t Intermediate states do not need to be flows:
[GT `86]: push-relabel [Hochbaum `08]: pseudoflows s t s Running time: O(mnlogn) on general graphs t

14 Limitation s Flow decomposition barrier: any representation of the flow as paths can have size Ω(n2) t [GR `99]: can use scaling methods in conjunction with primal methods to get O(m3/2logU), where U is max capacity Scaling: numerically adjust edge capacities [Orlin `12]: O(nm) using [GR `99] as a subroutine

15 Outline Problem Previous works Numerical algorithms
Connecting the dots What’s next?

16 Numerical Flow ALgorithms
‘Average’ together flows to get low AVERAGE congestion [GK `97]: O(mlognε-2) paths gives (1 – ε)-approx [DS `08]: O(m1/2logcnlogU) electrical flows gives exact [CKMST `11] O(m4/3ε-2) electrical flows gives (1 – ε)- approx in undirected graphs Aside: can find electrical flows in O(mlog1/2nlogU) time

17 General idea s s t s t t f(i) has low average congestion:
Σe w(i)e f(i)e ≤ Σe w(i)e Weaker condition: |f(i) | ≤ 1 ok for any w If |f(i) | ≤ ρ, (1 +ε) congestion in O(ρlognε-2) steps For exact, need to also bound |f(i) |2

18 Numerical Maxflow Algorithms
[Sherman `13] [KLOS `14]: given operator that α-approximates maxflow for ANY demand d, can compute (1 +ε)-approx maxflow in O(α2lognε-2) calls Formally: cut/flow approximator [Madry `10] [KLOS `13]: construction of R with α = O(mθ) in O(m1+θ) time

19 operator? t s Tree: unique s-t path, maxflow = demand / bottleneck edge -2 3 Multiple demands: flows along each edge determined via linear mapping, computable in O(n) 1 -2 Note: not allowing partial fulfillment of vertex demands

20 Tree for any graph? [Racke `01]: ANY undirected graph can embed to and from a (Steiner) tree TG with distortion O(logcn) G embeds into H: maxflow on G ≥ maxflow on H Change in flow value ≤ distortion (congestion) [Racke-Shah-Taubig `14]: can embed G to/ from Steiner tree TG with distortion O(logcn) by solving maxflows whose total size is O(mlogcn)

21 Building Trees Complete graph / well connected: star
[LR `89]: not well-connected: exists sparse cut [KRV `06, OSVV `07]: approximate sparsest cuts using O(logn) approximate max flows

22 Using these decompositions?
[Sherman `13] [KLOS `14]: given operator that α-approximates maxflow for ANY demand d, can compute (1 +ε)-approx maxflow in O(α2lognε-2) calls Maxflow [Racke-Shah-Taubig `14] operator withα=O(logcn) via maxflows on graphs of total size O(mlogcn) Approximator O(mlogcnε-2) time? Maxflow Maxflow Chicken and egg problem Approximator Approximator

23 Outline Problem Previous works Numerical algorithms
Putting things together What’s next?

24 The big picture One of approximate maxflow/mincut routine and O(logcn)-quality flow/cut approximating trees gives the other in O(mlogcn) time

25 Picture from [Li-Miller-P `13]
A’ τ' sketch, covariance matrix, leverage scores with error k gives all three with high accuracy in O(m + kdω+α ) time

26 Approach As A [CLMPPS`15]: simpler version based on uniform sampling
Connections to Nystrom’s method Create smaller approximation Recurse on it Use approximator for it on original problem with (slightly) higher iteration count

27 Approach Gs G Create smaller approximation
` Gs G Create smaller approximation Build cut/flow approximator on it recursively Use (fixed size) approximator for the original graph with slight increase in iteration count Connections to Nystrom’s method

28 Size Reduction ` ` Ultra-sparsifier: for any k, can find H ≈k G that’s tree + O(mlogcn/k) edges ≈: spectral, implies cut e.g. [Koutis-Miller-P `10]: pick good tree, sample off-tree edges by their ‘stretch’ H equivalent to graph of size O(mlogcn/k)

29 Reduction: Rake H: tree + m’ edges Can trim leaves (rake):
Flow on edge to leaf determined by its demand Can show: remaining graph is a collection of O(m’) paths

30 ≈O(1) Reduction: Compress Remaining case: path of degree 2 vertices e
Let e be edge bottleneck edge ≈O(1) Can show: moving e to end of paths gives graph that’s O(1)-embeddable e Can rake the rest

31 Algorithmic Solution [P`14]: build approximator on the smaller graph
Maxflow Absorb additional (small) error via more calls to approximator Recurse on instances with smaller total size, total cost: O(mlogcn)

32 Pseudocode K  O(logcn) RecursiveApproxMaxflow(G)
H  ultra-sparsify(G, k) Gs  rake-compress(H) Rs  approximator(Gs) (via recursive calls) R  extend(G, Rs) f  approximatorFlow(G, R) return f

33 Runtime Analysis α=O(k) New size = O(mlogcn/k)
Maxflow α=O(k) New size = O(mlogcn/k) Modified recurrence: T(m) = T(mlog2cn/k) + O(mk2logn) O(logcn) size overhead Set k  O(log2cn): T(m) = T(m/2) + O(mlog4c+1n) = O(mlog4c+1n)

34 Outline Problem Previous works Numerical algorithms
Putting things together What’s next?

35 Approximate Maxflow α-quality flow/cut approximator  (1 +ε)-approx maxflow in O(α2lognε-2) calls Any gains from having a tree? Complementary slackness between approx flow/cuts?

36 Flows = Linear systems? ` Multigrid/Gaussian elimination based flow algorithms? Optimizing mixed L1/L2/L∞ or grouped L2 objectives?

37 Directed / Exact Generalization of sparsification to directed instances? Solving directed maxflow using undirected instances Extend these ideas to second order methods?

38 (Note version) of manuscript at: http://arxiv.org/abs/1411.7631
Thank You! Questions? (Note version) of manuscript at:


Download ppt "Approximate Undirected Maximum Flows in O(m polylog(n)) Time"

Similar presentations


Ads by Google