all-pairs shortest paths in undirected graphs Dynamic approximate all-pairs shortest paths in undirected graphs Liam Roditty Uri Zwick Tel Aviv University
Dynamic Graph Problems A graph Initialize Insert Delete Query n - number of vertices m - number of edges
Shortest Paths Problems Single-Source Shortest Paths (SSSP) All-Pairs Shortest Paths (APSP) “Distance Oracles”
Approximate Distance Oracles (TZ’01) n by n distance matrix APSP algorithm Compact data structure mn1/k time n1+1/k space O(1) query time stretch 2k-1 Stretch-Space tradeoff is essentially optimal!
Dynamic Shortest Paths Algorithms Problem Total update time Amortized* update time Query time Authors Decremental SSSP O(mn) O(n) O(1) Even-Shiloach ’81 Decremental (1+)-approximate APSP O*(mn) O*(n) O(1) This talk Problem Amortized update time Query time Authors Fully-dynamic APSP O*(n2) O(1) Demetrescu-Italiano ’03 (Thorup ’04) Fully-dynamic (1+)- approximate APSP O*(m1/2n) O(m1/2) This talk
Decremental Approximate Distance Oracles Compact data structure mn1/k time n1+1/k space O(1) query time stretch 2k-1 Static mn time m+n1+1/k space Decremental Decremental (up to distance d) dmn1/k time m+n1+1/k space
Thorup-Zwick ’01 Static approximate distance oracles. Three ingredients Even-Shiloach ’81 A decremental algorithm for maintaining a single-source shortest path tree of depth d with a total running time of O(dm). Random Sampling Let P be a set of vertices of size k. Let S be a random subset of vertices of size (cn ln n)/k. Then with high probability PS . Thorup-Zwick ’01 Static approximate distance oracles.
Decremental SSSP [Even-Shiloach ’81] Every edge is only examined once per level! Total complexity is O(dm).
Random Sampling n k Select each element independently with probability The probability that a given set of k elements is not hit is
Let pi(v) be the vertex of Si closest to v A sequence of Samples Let Si be a subset obtained by selecting each vertex with probability (c ln n)/(2i) Let pi(v) be the vertex of Si closest to v If v is contained in a connected component with at least 2i vertices, then: δ(v,pi(v)) ≤ 2i 2i pi(v)
Maintaining the closest centers To compute pi(v) for every v: Add a new source vertex si. Connect it to all vertices of Si. Maintain a SSSP tree from si.
Maintaining distances from centers From each center of Si maintain a SSSP tree of depth 2i+2 Complexity:
Answering a distance query pi(u) u v Suppose: Return: ≤ ≤
Answering a distance query pi(u) u v Return: where i is smallest such that v is in the tree of pi(u), i.e., This value of i can be found using binary search. Query time: O(log log n) Stretch: 1+
Reporting long distances in O(1) time pr(u) pr(v) u v Suppose: Let: Return: Maintain a table of all Sr to Sr distances. Size of table is O(n).
Reporting short distances in O(1) time Suppose: Develop a decremental version of the static approximate distance oracles of TZ. dmn1/k time m+n1+1/k space stretch 2k-1 Take d=n1/2 k=2 For distances up to d The 3-approximation can be refined into a (1+)-approximation in O(1) time.
Approximate Distance Oracles [TZ’01] A hierarchy of centers A0V ; Ak ; Ai sample(Ai-1,n-1/k) ;
A0= A1= A2= Clusters w
Bunches (inverse clusters)
Bunches A0= A1= A2= p2(v) v p1(v)
Approximate Distance Oracles [TZ’01] 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 u v
Analysis wi=pi(u)Ai wi-1=pi-1(v)Ai-1 i (i+1) i (i-1) u v
Open problems Faster dynamic SSSP algorithm? Exact dynamic APSP algorithm? Weighted graphs? Directed graphs?