280 likes | 416 Views
Approximate Distance Oracles. Mikkel Thorup and Uri Zwick Presented By Shiri Chechik. Approximate Distance Oracles. Consider a graph G=(V,E) .
E N D
Approximate Distance Oracles MikkelThorup and Uri Zwick Presented By ShiriChechik
Approximate Distance Oracles • Consider 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) .
Approximate Distance Oracles Constant query time! This tradeoff isessentially optimal ! Slide from Uri Zwick
Spanners - Formal Definition 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) .
Spanners - Equivalent Definition x y • A subgraph H is a k-spanner of G if for every edge (u,v) in E:dH(u,v) k· w(u,v) .
Spanners for General graphs • Theorem • One can efficiently find a (2k-1)-spanner with at most n1+1/kedges.
Spanners for General graphs • Girth 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 -Construction Preprocessing Phase • First build a hierarchy of centers, A0,…, Ak • A0 V, Ak Ai sample(Ai-1, n-1/k)
Distance Oracles -Construction Preprocessing Phase A0 = A1 = A2 = Ak =
A hierarchy of centers A0V ; Ak ;Ai sample(Ai-1,n-1/k) ; Slide from Uri Zwick
Distance Oracles -Construction Preprocessing Phase Notations • pi(v) is the closest node to v in Ai • For each w Ai\Ai+1 • C(w) {v| δ(v,w) < δ(v,pi+1(v))}
A0=A1=A2= Clusters w Slide from Uri Zwick
Bunches (inverse clusters) Slide from Uri Zwick
Distance Oracles - Example V P1(V)
Distance Oracles - Example • 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} V3 1 2 V2 V4 1 1.5 V1
Distance Oracles -Construction Preprocessing Phase Data structures • For 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 Lemma: E[|B(v)|]≤kn1/k |B(v)Ai| is stochastically dominated by a geometric random variable with parameter p=n-1/k. Slide from Uri Zwick
Distance Oracles 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 Oracles -Construction Query Phase P3(v) P2(u) <3 P1(v) 2> < v u
Distance Oracles - Example • What is δ(v4, v1)? • Is v1 C(v4)? • w = p1 (v1) = v2 • Is v4 C(v2)? • w = p2(v4) = v3 • Is v1 C(v3)? – Yes • C(v1)= {v1,v4}, C(v4)= {v4} • C(v2)= {v2, v1} • C(v3)= {v1, v2, v3, v4} V3 1 2 V2 V4 1 1.5 V1
Distance Oracles -Properties Thorup and Zwick (2005) x Ai+1 v y w Consider a node v C(w), every node on a shortest path from v to w also belongs to C(w).
Distance Oracles -Properties Thorup and Zwick (2005) v belongs to C(pi(v)) for every 0≤ i ≤k-1.
Distance Oracles From each cluster, construct a tree T(w) containing shortest path. v u w
Distance Oracles The union of all these trees is a (2k-1)-spanner with O(kn1+1/k) edges.