1
Approximate Approximate Distance OraclesDistance Oracles
Mikkel Thorup Mikkel Thorup AT&T ResearchAT&T Research
Uri Zwick Uri Zwick Tel Aviv UniversityTel Aviv University
2
Finite metric space
n by ndistancematrix
O(1) query time
Exact answers(n2) space
Approximate distance oracle
Compact datastructure
O(k) query time
stretch 2k-1O(kn1+1/k)
space
O(n2) time
4
Approximate Distance Oracles
StretchQuer
y time
SpacePreproc
. time
Reference
64kkn1/k
kn1+1/kkmn1/k
Awerbuch-Berger-
Cowen-Peleg ‘93
2k+kn1/kCohen ‘93
2k-1kThorup-Zwick ‘01
Constant query time!
This tradeoff isessentially optimal !
5
Approximate Distance Oracles
StretchQuery time
SpacePreproc.
time
2.99Ω(n2)
31O(n3/2)mn1/2
4.99Ω(n3/2)
51O(n4/3)mn1/3
…………
log nlog nn log nm log n
6
Stretch/space tradeoffLet G=(V,E) be a graph with |V|=n and girth(G)≥2k+2.
Any subgraph G’=(V,E’) of G must have a distinct data structure!
If (u,v)E’, then G’(u,v)=1. Otherwise G’(u,v) ≥2k+1.
As there are 2|E| different subgraphs of G, some subgraphs must have data structures of at least |E| bits.
Conjecture: (Erdös ’65) For every k≥1, there are infinitely many n-vertex graphs with Ω(n1+1/k) edges that have girth≥2k+2.
7
Spanners
Let G be a weighted undirected graph.
A subgraph H of G is a t-spanner of G
iff u,vG,
H(u,v) t G(u,v) .
Awerbuch ’85Peleg-Schäffer ‘89
9
Theorem
For every k≥1, every weighted
undirected graph on n vertices
has a (2k-1)-spanner with at
most m2k+1(n) ≤ n1+1/k edges.
Maximal number of edges in an n-vertex graph with girth ≥
2k+1
Tight for k=1,2,3,5.
Conjectured to be
tight for any k
10
Proof/Algorithm: Consider the edges in non-decreasing
order of weight. Add each edge to the
spanner if it does not close a cycle of
size at most 2k.
The resulting graph is a (2k-1)-spanner
and it does not contain a cycle of size at
most 2k. Hence the number of edges is
at most
m2k+1(n) ≤ n1+1/k.[Althöfer, Das, Dobkin, Joseph, Soares ‘93]
14
BunchesBunches (inverse (inverse clusters)clusters)
1
1
1
1
( ) | ( , ) ( , ) ,
( ) | ( , ) (
( ) (
,
)
)i i
i
ii
i i
C w v V w v A v
if w
w
B v w A A w v A
B
A A
v v C w
v
16
The data structureFor every vertex vV:
• The centers p1(v), p2(v),…, pk-
1(v)
• A hash table holding B(v)
For every wV, we can check, in
constant time, whether
wB(v), and if so, what is (v,w).
17
Lemma: E[|B(v)|]≤kn1/k
Proof: |B(v)Ai| is
stochastically dominated by a
geometric random variable
with parameter p=n-1/k.
18
Query answering algorithm Algorithm
distk(u,v)
wu , i0
while wB(v)
i i+1
(u,v) (v,u)
w pi(u)
return (w,u)+
(w,v)
21
Spanners / Tree coversSpanners / Tree covers
w
In each cluster,
construct a tree of
shortest pathsThe union of all these trees
in a (2k-1)-spanner with kn1+1/k edges.
Constructed in O(kmn1/k) time!
22
Tree Cover
Each vertex contained in at most n1/k log n trees.
For every u,v, there is a tree with a path of stretch at most 2k-1 between them.
23
ApplicationsApplications
• Routing• Distance labels• Sub-quadratic approximation
algorithms for metric space problems