240 likes | 398 Views
Approximate Distance Oracles. Mikkel Thorup AT&T Research Uri Zwick Tel Aviv University. Approximate distance oracle. Finite metric space. O(n 2 ) time. n by n distance matrix. Compact data structure. O(1) query time Exact answers (n 2 ) space.
E N D
Approximate Distance Oracles Mikkel Thorup AT&T Research Uri Zwick Tel Aviv University
Approximate distance oracle Finite metric space O(n2) time n by ndistancematrix Compact datastructure O(1) query timeExact answers(n2) space O(k)query timestretch2k-1O(kn1+1/k)space
APSPalgorithm n by ndistancematrix Graph kmn1/ktimekn1+1/k space Compact datastructure
Approximate Distance Oracles Constant query time! This tradeoff isessentially optimal !
Stretch/space tradeoff Let 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.
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) tG(u,v) . Awerbuch ’85 Peleg-Schäffer ‘89
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. Tight for k=1,2,3,5. Conjectured to be tight for any k Maximal number of edges in an n-vertex graph with girth ≥ 2k+1
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]
A hierarchy of centers A0V ; Ak ;Ai sample(Ai-1,n-1/k) ;
A0=A1=A2= Clusters w
A0=A1=A2= Bunches p2(v) v p1(v)
The data structure • For 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).
Lemma: E[|B(v)|]≤kn1/k Proof:|B(v)Ai| is stochastically dominated by a geometric random variable with parameter p=n-1/k.
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)
Query answering algorithm w3=p3(v)A3 w2=p2(u)A2 w1=p1(v)A1 v u
Analysis wi=pi(u)Ai wi-1=pi-1(v)Ai-1 i (i+1) i (i-1) v u
Spanners / Tree covers In each cluster, construct a tree of shortest paths The union of all these trees in a (2k-1)-spanner with kn1+1/k edges. w Constructed in O(kmn1/k) time!
Tree Cover Each vertex contained in at most n1/klogn trees. For every u,v, there is a tree with a path of stretch at most 2k-1 between them.
Applications Routing Distance labels Sub-quadratic approximation algorithms for metric space problems
Open Problems Deterministic construction of(2k-1,n1+1/k,k)-distance oracles in o(mn) time? Constructing a (3,n3/2,1)-distance oracle in n2+o(1) time? Distance oracles withadditive errors?