Routing in Undirected Graphs with Constant Congestion

advertisement
Routing in Undirected Graphs
with Constant Congestion
Julia Chuzhoy
Toyota Technological Institute at
Chicago
Routing Problems
Input: Graph G, source-sink pairs (s1,t1),…,(sk,tk).
Goal: Route as many pairs as possible; minimize
edge congestion.
Routing Problems
Input: Graph G, source-sink pairs (s1,t1),…,(sk,tk).
Goal: Route as many pairs as possible; minimize
edge congestion.
Routing Problems
Input: Graph G, source-sink pairs (s1,t1),…,(sk,tk).
Goal: Route as many pairs as possible; minimize
edge congestion.
Edge congestion: 2
Routing Problems
Input: Graph G, source-sink pairs (s1,t1),…,(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 (s1,t1),…,(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 (s1,t1),…,(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)
Congestion Minimization
Route maximum number of
pairs on edge-disjoint paths
Route all pairs; minimize
congestion
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 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 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
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
Route all pairs; minimize
congestion
•
-approximation
• matching integrality gap
•
•
•
-hardness
-approximation
-hardness
EDP with Congestion (EDPwC)
A factor- approximation algorithm with congestion c
routes
. demand pairs with congestion at most c.
optimum number of pairs
with no congestion allowed
EDPwC
• 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 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
Route all pairs; minimize
congestion
•
-approximation
• matching integrality gap
•
•
•
-hardness
-approximation
-hardness
EDP with Congestion (EDPwC)
• polylog(k)-approximation with congestion 14
•
-hardness with congestion c
Well-Linkedness
[Robertson,Seymour], [Chekuri, Khanna, Shepherd],
[Raecke]
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
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 (s1,t1),…,(sk,tk).
Theorem [Chekuri, Khanna Shepherd ‘04]
Can efficiently partition G into disjoint
subgraphs
G1,…,w.l.o.g.
Gr, suchthat
that:
Can assume
G is well-linked for
terminals Gi the
• For each inducedthe
sub-problem
terminals 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
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 of the terminals
• Constant congestion
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(log2n) iterations, we get an
expander!
Embedding Expander into Graph
Embedding Expander into Graph
After O(log2k) iterations, we get an expander embedded
into G.
Problem: congestion Ω(log2k)
Solution?
Idea [Rao Zhou ‘06]:
• Split G into graphs G1,…,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(log2k)
• Run the cut-matching game. Use Gi to route flow
in iteration i.
Problem: Can only do it if min-cut in G is Ω(log5n)
• [Andrews ‘10] adapted this to general graphs,
with congestion poly(log log n)
Getting a Constant Congestion
Starting Point
Input: Graph G, source-sink pairs (s1,t1),…,(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
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
routing in G!
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
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
Ω(log2k) 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. 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. 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 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 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
Expander vertex
the tree spanning the terminal
Expander edges: via the cut-matching game of [KRV]
Embedding an Expander
Embedding an Expander
After O(log2k) iterations, we obtain
an expander embedded into G.…
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(log2k) iterations, we obtain
an expander embedded into G.…
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. 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 not contain terminals
• |out(C)|<k/polylog(k)
Good contracted
graph
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
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 be too large
contract
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)
flow units to the
terminals?
C is a good
set!
A small cut
separates
C from the
terminals
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
All clusters have small outdegree?
yes
smaller contracted
graph
no
Good vertex subset?
no
yes
uncontract +
WLD+contract
done!
smaller contracted
graph
Algorithm for EDPwC
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
EDPwC with congestion 14.
• Smaller congestion?
• Congestion minimization?
Thank you!
Download