Presentation is loading. Please wait.

Presentation is loading. Please wait.

all-pairs shortest paths in undirected graphs

Similar presentations


Presentation on theme: "all-pairs shortest paths in undirected graphs"— Presentation transcript:

1 all-pairs shortest paths in undirected graphs
Dynamic approximate all-pairs shortest paths in undirected graphs Liam Roditty Uri Zwick Tel Aviv University

2 Dynamic Graph Problems
A graph Initialize Insert Delete Query n - number of vertices m - number of edges

3 Shortest Paths Problems
Single-Source Shortest Paths (SSSP) All-Pairs Shortest Paths (APSP) “Distance Oracles”

4 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!

5 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

6 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

7 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 PS  . Thorup-Zwick ’01 Static approximate distance oracles.

8 Decremental SSSP [Even-Shiloach ’81]
Every edge is only examined once per level! Total complexity is O(dm).

9 Random Sampling n k Select each element independently with probability
The probability that a given set of k elements is not hit is

10 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)

11 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.

12 Maintaining distances from centers
From each center of Si maintain a SSSP tree of depth 2i+2 Complexity:

13 Answering a distance query
pi(u) u v Suppose: Return:

14 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: 

15 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).

16 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.

17 Approximate Distance Oracles [TZ’01] A hierarchy of centers
A0V ; Ak  ; Ai sample(Ai-1,n-1/k) ;

18 A0= A1= A2= Clusters w

19 Bunches (inverse clusters)

20 Bunches A0= A1= A2= p2(v) v p1(v)

21 Approximate Distance Oracles [TZ’01] The data structure
For every vertex vV: The centers p1(v), p2(v),…, pk-1(v) A hash table holding B(v) For every wV, we can check, in constant time, whether wB(v), and if so, what is (v,w).

22 Lemma: E[|B(v)|] ≤ kn1/k
Proof: |B(v)Ai| is stochastically dominated by a geometric random variable with parameter p=n-1/k.

23 Query answering algorithm
Algorithm distk(u,v) wu , i0 while wB(v) { i i+1 (u,v) (v,u) w pi(u) } return (w,u)+ (w,v)

24 Query answering algorithm
w3=p3(v)A3 w2=p2(u)A2 w1=p1(v)A1 u v

25 Analysis wi=pi(u)Ai wi-1=pi-1(v)Ai-1 i (i+1) i (i-1) u v

26 Open problems Faster dynamic SSSP algorithm?
Exact dynamic APSP algorithm? Weighted graphs? Directed graphs?


Download ppt "all-pairs shortest paths in undirected graphs"

Similar presentations


Ads by Google