Routing in Undirected Graphs with Constant Congestion Julia

  • Slides: 58
Download presentation
Routing in Undirected Graphs with Constant Congestion Julia Chuzhoy Toyota Technological Institute at Chicago

Routing in Undirected Graphs with Constant Congestion Julia Chuzhoy Toyota Technological Institute at Chicago

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk).

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Goal: Route as many pairs as possible; minimize edge congestion.

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk).

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Goal: Route as many pairs as possible; minimize edge congestion.

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk).

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Goal: Route as many pairs as possible; minimize edge congestion. Edge congestion: 2

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk).

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Goal: Route as many pairs as possible; minimize edge congestion. n – number of graph vertices k – number of demand pairs terminals – vertices participating in the demand pairs

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk).

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Goal: Route as many pairs as possible; minimize edge congestion. • 3 pairs with congestion 2

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk).

Routing Problems Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Goal: Route as many pairs as possible; minimize edge congestion. • 3 pairs with congestion 2 • 2 pairs with congestion 1

Edge Disjoint Paths (EDP) Route maximum number of pairs on edge-disjoint paths Congestion Minimization

Edge Disjoint Paths (EDP) Route maximum number of pairs on edge-disjoint paths Congestion Minimization Route all pairs; minimize congestion

Congestion Minimization Route all pairs; minimize congestion • -approximation [Raghavan, Thompson ‘ 87] •

Congestion Minimization Route all pairs; minimize congestion • -approximation [Raghavan, Thompson ‘ 87] • -hard to approximate [Andrews, Zhang ‘ 07]

Edge Disjoint Paths (EDP) Route maximum number of pairs on edge-disjoint paths • When

Edge Disjoint Paths (EDP) Route maximum number of pairs on edge-disjoint paths • When k is constant, can be solved efficiently [Robertson, Seymour ‘ 90] • NP-hard in general [Karp ’ 72] • -approximation algorithm [Chekuri, Khanna, Shepherd ’ 06]. Best possible? – LP-relaxation: maximum multicommodity flow between the demand pairs with no congestion. – Integrality gap: [Chekuri, Khanna, Shepherd ‘ 06]

Edge Disjoint Paths (EDP) Route maximum number of pairs on edge-disjoint paths • When

Edge Disjoint Paths (EDP) Route maximum number of pairs on edge-disjoint paths • When k is constant, can be solved efficiently [Robertson, Seymour ‘ 90] • NP-hard in general [Karp ’ 72] • -approximation algorithm [Chekuri, Khanna, Shepherd ’ 06]. • When global min-cut is , there is a polylog(n) approximation [Rao, Zhou ‘ 06] • -hardness of approximation for any [Andrews, Zhang ‘ 05], [Andrews, C, Guruswami, Khanna, Talwar, Zhang ’ 10]

Special Cases Expander graphs In a strong enough constant-degree expander, any demand set on

Special Cases Expander graphs In a strong enough constant-degree expander, any demand set on vertices can be routed on edge-disjoint paths [Frieze ‘ 00] Planar graphs, Trees…

Edge Disjoint Paths (EDP) Congestion Minimization Route maximum number of pairs on edge-disjoint paths

Edge Disjoint Paths (EDP) Congestion Minimization Route maximum number of pairs on edge-disjoint paths Route all pairs; minimize congestion • -approximation • matching integrality gap • • -hardness • -approximation -hardness EDP with Congestion (EDPw. C) A factor- approximation algorithm with congestion c routes. demand pairs with congestion at most c. optimum number of pairs with no congestion allowed

EDPw. C • Congestion : constant approximation [Raghavan, Thompson ‘ 87] • -approximation with

EDPw. C • Congestion : constant approximation [Raghavan, Thompson ‘ 87] • -approximation with congestion c [Azar, Regev ’ 01], [Baveja, Srinivasan ’ 00], [Kolliopoulos, Stein ‘ 04] • polylog(n)-approximation with congestion poly(log n) [Andrews ‘ 10] Today: polylog(k)-approximation with congestion 14. • -hardness for any c [Andrews, C, Guruswami, Khanna, Talwar, Zhang ’ 10]

Edge Disjoint Paths (EDP) Congestion Minimization Route maximum number of pairs on edge-disjoint paths

Edge Disjoint Paths (EDP) Congestion Minimization Route maximum number of pairs on edge-disjoint paths Route all pairs; minimize congestion • -approximation • matching integrality gap • -hardness • • -approximation -hardness EDP with Congestion (EDPw. C) • polylog(k)-approximation with congestion 14 • -hardness with congestion c

Well-Linkedness [Robertson, Seymour], [Chekuri, Khanna, Shepherd], [Raecke]

Well-Linkedness [Robertson, Seymour], [Chekuri, Khanna, Shepherd], [Raecke]

Well-Linkedness Graph G is -well-linked for the set T of terminals, iff for any

Well-Linkedness Graph G is -well-linked for the set T of terminals, iff for any partition (A, B) of V(G),

Well-Linkedness Set S is -well-linked iff for any partition (A, B) of S, Normally

Well-Linkedness Set S is -well-linked iff for any partition (A, B) of S, Normally out(S) Any matching on the edges of out(S) can be fractionally routed inside S with congestion

Pre-Processing Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Theorem

Pre-Processing Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). Theorem [Chekuri, Khanna Shepherd ‘ 04] Can efficiently partition G into disjoint subgraphs G 1, …, w. l. o. g. Gr, such that: Can assume that G is well-linked for terminals Gi the terminals • For each inducedthe sub-problem are well-linked • Total fractional solution value for all induced sub-problems is

High-Level Plan [CKS ‘ 04] 1. Embed an expander on a subset of terminals

High-Level Plan [CKS ‘ 04] 1. Embed an expander on a subset of terminals into G. Crossbar – expander vertices – expander edges terminals paths in G 2. Route a subset of the demand pairs in the Embedding congestion: max load on any edge of G expander

Goal Embed an expander over a subset of terminals into G. • Include polylog(k)-fraction

Goal Embed an expander over a subset of terminals into G. • Include polylog(k)-fraction of the terminals • Constant congestion

Cut-Matching Game [Khandekar, Rao, Vazirani ’ 06] Cut Player: wants to build an expander

Cut-Matching Game [Khandekar, Rao, Vazirani ’ 06] Cut Player: wants to build an expander Matching Player: wants to delay its construction There is a strategy for cut player, s. t. after O(log 2 n) iterations, we get an expander!

Embedding Expander into Graph

Embedding Expander into Graph

Embedding Expander into Graph After O(log 2 k) iterations, we get an expander embedded

Embedding Expander into Graph After O(log 2 k) iterations, we get an expander embedded into G. Problem: congestion Ω(log 2 k)

Solution? Idea [Rao Zhou ‘ 06]: • Split G into graphs G 1, …,

Solution? Idea [Rao Zhou ‘ 06]: • Split G into graphs G 1, …, Gh – V(Gi)=V(G) for all i – Every edge of G belongs to at most one Gi – Each Gi well-linked for the terminals – h=O(log 2 k) • Run the cut-matching game. Use Gi to route flow in iteration i. Problem: Can only do it if min-cut in G is Ω(log 5 n) • [Andrews ‘ 10] adapted this to general graphs, with congestion poly(log n)

Getting a Constant Congestion

Getting a Constant Congestion

Starting Point Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk).

Starting Point Input: Graph G, source-sink pairs (s 1, t 1), …, (sk, tk). G is well-linked for the terminals. Goal: Route OPT/polylog(k) demand pairs with constant congestion.

Embedding an Expander into G Expander vertex connected component in G containing the terminal

Embedding an Expander into G Expander vertex connected component in G containing the terminal Expander edge path connecting some pair of vertices in the two components An edge of G may only belong to a constant number of the components/paths.

Embedding an Expander into G Routing on vertex-disjoint paths in X gives a good

Embedding an Expander into G Routing on vertex-disjoint paths in X gives a good routing in G!

Embedding an Expander into G Expander vertex connected component in G containing the terminal

Embedding an Expander into G Expander vertex connected component in G containing the terminal Expander edge path connecting some pair of vertices in the two components An edge of G may only belong to a constant number of the components/paths.

Embedding an Expander into G Families of Good Vertex Sets

Embedding an Expander into G Families of Good Vertex Sets

Good Vertex Subset S is a good vertex subset iff: • S contains no

Good Vertex Subset S is a good vertex subset iff: • S contains no terminals • S is well-linked • There are k/polylog k paths connecting out(S) to the terminals, with congestion polylog k.

Family of Good Vertex Subsets Ω(log 2 k) disjoint good vertex subsets. • Each

Family of Good Vertex Subsets Ω(log 2 k) disjoint good vertex subsets. • Each subset can send k/(polylog k) flow units to the terminals • total congestion polylog k

Rest of the proof 1. We can find a good family of subsets. 2.

Rest of the proof 1. We can find a good family of subsets. 2. Given a good family of subsets, we can embed an expander into G.

Rest of the proof 1. We can find a good family of subsets. 2.

Rest of the proof 1. We can find a good family of subsets. 2. Given a good family of subsets, we can embed an expander into G.

Want: • k/polylog k trees • every edge of G participates in a constant

Want: • k/polylog k trees • every edge of G participates in a constant number of trees • Each tree Ti spans a distinct terminal ti and a distinct edge eij in out(Sj) for each j.

Want: • k/polylog k trees • every edge of G participates in a constant

Want: • k/polylog k trees • every edge of G participates in a constant number of trees • Each tree Ti spans a distinct terminal ti and a distinct edge eij in out(Sj) for each j. • Edge eij is viewed as a copy of ti for set Sj.

Embedding an Expander

Embedding an Expander

Embedding an Expander vertex the tree spanning the terminal Expander edges: via the cut-matching

Embedding an Expander vertex the tree spanning the terminal Expander edges: via the cut-matching game of [KRV]

Embedding an Expander

Embedding an Expander

Embedding an Expander After O(log 2 k) iterations, we obtain an expander embedded into

Embedding an Expander After O(log 2 k) iterations, we obtain an expander embedded into G. …

Grouping Technique [CKS] - well-linked - selected edges • is very well-linked Any partition

Grouping Technique [CKS] - well-linked - selected edges • is very well-linked Any partition of into equal-sized subsets can be integrally routed with congestion 2. • .

Embedding an Expander After O(log 2 k) iterations, we obtain an expander embedded into

Embedding an Expander After O(log 2 k) iterations, we obtain an expander embedded into G. …

Rest of the proof 1. We can find a good family of subsets. 2.

Rest of the proof 1. We can find a good family of subsets. 2. Given a good family of subsets, we can embed an expander into G.

Rest of the proof 1. We can find a good family of subsets. 2.

Rest of the proof 1. We can find a good family of subsets. 2. Given a good family of subsets, we can embed an expander into G.

Contracted Graphs contract Only contract clusters C where • C is well-linked • Does

Contracted Graphs contract Only contract clusters C where • C is well-linked • Does not contain terminals • |out(C)|<k/polylog(k) Good contracted graph

Finding a Good Vertex Subset • Start with G. • In every iteration: –

Finding a Good Vertex Subset • Start with G. • In every iteration: – either find a good vertex subset – or find a good contracted graph with fewer edges

Iteration Description |E(A)|≥|out(A)|/4 uncontract

Iteration Description |E(A)|≥|out(A)|/4 uncontract

Iteration Description well-linked decomposition |E(A)|≥|out(A)|/4 Well-linked Decomposition [Chekuri, Khanna, Shepherd], [Raecke] • New clusters

Iteration Description well-linked decomposition |E(A)|≥|out(A)|/4 Well-linked Decomposition [Chekuri, Khanna, Shepherd], [Raecke] • New clusters are well-linked • …

Iteration Description well-linked decomposition |E(A)|≥|out(A)|/4 now |E(A)|<<|out(A)| Problem: for some cluster C, |out(C)| may

Iteration Description well-linked decomposition |E(A)|≥|out(A)|/4 now |E(A)|<<|out(A)| Problem: for some cluster C, |out(C)| may be too large contract

Iteration Description C C is a good cluster? • Well-linked

Iteration Description C C is a good cluster? • Well-linked

Iteration Description C C is a good cluster? ü Well-linked • Can route k/polylog(k)

Iteration Description C C is a good cluster? ü Well-linked • Can route k/polylog(k) flow units to the terminals? C is a good set! no s e y A small cut separates C from the terminals

Iteration Description uncontract good contracted graph with fewer edges! contract well-linked decomposition

Iteration Description uncontract good contracted graph with fewer edges! contract well-linked decomposition

Finding a Good Vertex Subset Random subset A of vertices Uncontract + Well-linked decomposition

Finding a Good Vertex Subset Random subset A of vertices Uncontract + Well-linked decomposition All clusters have small outdegree? yes smaller contracted graph no Good vertex subset? no yes uncontract + WLD+contract done! smaller contracted graph

Algorithm for EDPw. C Find a good family of vertex subsets Embed an expander

Algorithm for EDPw. C Find a good family of vertex subsets Embed an expander into G Find vertex-disjoint routing on the expander Transform into routing in G

Summary • We obtain a polylog(k)-approximation for EDPw. C with congestion 14. • Smaller

Summary • We obtain a polylog(k)-approximation for EDPw. C with congestion 14. • Smaller congestion? • Congestion minimization? Thank you!