Approximate Distance Oracles
description
Transcript of Approximate Distance Oracles
Approximate Distance Approximate Distance OraclesOracles
Mikkel Thorup and Uri Zwick Presented ByShiri Chechik
Approximate Distance Approximate Distance OraclesOraclesConsider a graph G=(V,E).An approximate distance oracle with a
stretch k for the graph G is a data-structure that can answer an approximate distance query for any two vertices with a stretch of at most k.
For every u,v in V the data structure returns in “short time” an approximate distance d’ such that:
dG(u,v) d’ k· dG(u,v) .
Stretch
Query
timeSpace
Preproc.
timeReference
64k kn1/k
kn1+1/k kmn1/k
Awerbuch-Berger-Cowen-
Peleg ‘93
2k+ kn1/k Cohen ‘93
2k-1 k Thorup-Zwick ‘01
Constant query time!This tradeoff is
essentially optimal !
Approximate Distance Approximate Distance OraclesOracles
Slide from Uri Zwick
SpannersSpanners - Formal - Formal DefinitionDefinition
Consider a graph G=(V,E) with positive edge weights.
A subgraph H is a k-spanner of G if for every u,v in V:
dH(u,v) k·dG(u,v) .
SpannersSpanners - Example - Example
v
SpannersSpanners - Equivalent - Equivalent DefinitionDefinition
A subgraph H is a k-spanner of G if for every edge (u,v) in E:
dH(u,v) k· w(u,v) .
x
y
Spanners for General Spanners for General graphsgraphsTheoremOne can efficiently find a (2k-1)-spanner with at most n1+1/k edges.
Spanners for General Spanners for General graphsgraphsGirth Conjecture (Erdös and
others):There are n-vertex graphs with Ω(n1+1/k) edges that have girth > 2k.
Known for k=1,2,3,5.
Distance Oracles Distance Oracles -- Construction Construction Preprocessing PhasePreprocessing Phase
First build a hierarchy of centers, A0,…, Ak
A0 V, Ak
Ai sample(Ai-1, n-1/k)
A0 =
A1 =
A2 =
Ak =
Distance Oracles Distance Oracles -- Construction Construction Preprocessing PhasePreprocessing Phase
A hierarchy of centersA hierarchy of centers
A0V ; Ak ; Ai sample(Ai-1,n-1/k) ;
Slide from Uri Zwick
Notationspi(v) is the closest node to v in Ai
For each w Ai\Ai+1
◦C(w) {v| δ(v,w) < δ(v,pi+1(v))}
Distance Oracles Distance Oracles -- Construction Construction Preprocessing PhasePreprocessing Phase
ClustersClustersA0=A1=A2=
1 1( ) { | ( , ) ( , )} ,i i iC w v V w v A v w A A
w
Slide from Uri Zwick
Bunches (inverse Bunches (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
Slide from Uri Zwick
Distance OraclesDistance Oracles - - ExampleExample
V
P1(V)
A0 = {v1, v2, v3, v4} A1 = {v2, v3} A2 = {v3} A3 = {}
C(v1)= {v1, v4}, C(v4)= {v4} C(v2)= {v2, v1} C(v3)= {v1, v2, v3, v4}
Distance OraclesDistance Oracles - - ExampleExample
1 2
11.5
V2
V1
V3
V4
Data structuresFor every v V
◦p1(v),…,pk-1(v) and the distance from v to pi(v).
◦C(v) (hash table) and the distance from v to every u in C(v).
Distance Oracles Distance Oracles -- Construction Construction Preprocessing PhasePreprocessing Phase
Lemma: E[|B(v)|]≤kn1/k
|B(v)Ai| is stochastically dominated by a geometric random variable with parameter p=n-1/k.
Distance OraclesDistance Oracles
Slide from Uri Zwick
Lemma For every two nodes u and v, there exists a node w such that◦u,v C(w)◦ The distance from u to w and
from v to w is at most k·d(u,v)
Distance OraclesDistance Oracles
Distance Oracles Distance Oracles -- Construction Construction Query PhaseQuery Phase
u v
P1(v)
P2(u)P3(v)
<2>
<3
Distance Oracles Distance Oracles -- Construction Construction Query PhaseQuery Phase
Distance OraclesDistance Oracles - - ExampleExample
1 2
11.5
V2
V1
V3
V4
Consider a node v C(w), every node on a shortest path from v to w also belongs to C(w).
Distance Oracles Distance Oracles -- Properties Properties Thorup and Zwick (2005)Thorup and Zwick (2005)
v w
x Ai+1
y
v belongs to C(pi(v)) for every
0≤ i ≤k-1.
Distance Oracles Distance Oracles -- Properties Properties Thorup and Zwick (2005)Thorup and Zwick (2005)
From each cluster, construct a tree T(w) containing shortest path.
Distance OraclesDistance Oracles
wu
v
The union of all these trees is a (2k-1)-spanner with O(kn1+1/k) edges.
Distance OraclesDistance Oracles