1 / 58

Near Optimal Streaming algorithms for Graph Spanners

Near Optimal Streaming algorithms for Graph Spanners. Surender Baswana IIT Kanpur. Graph spanner : a subgraph which is sparse and still preserves all-pairs approximate distances. t -spanner. G=(V,E) : an undirected graph, |V|=n, |E|=m, t > 1

kura
Download Presentation

Near Optimal Streaming algorithms for Graph Spanners

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Near Optimal Streaming algorithms for Graph Spanners Surender Baswana IIT Kanpur

  2. Graph spanner : a subgraph which is sparse and still preserves all-pairs approximate distances.

  3. t-spanner G=(V,E) : an undirected graph, |V|=n, |E|=m, t > 1 δ(u,v) : distance between u and v in G. A subgraph GS= (V,ES), where ESis a subset of E such that for all u,v ε V, δ(u,v) ≤ δS(u,v) ≤ t δ(u,v) t : stretch of the spanner.

  4. Sparseness versus stretch • Consider a graph modeling some network • Edges correspond to possible links. • Each edge has certain cost. Aim : to select as few edges as possible without increasing the pair wise distance too much.

  5. t-spanner • Computing a t-spanner of smallest possible size is NP-complete. • For a graph on n vertices, how large can a t-spanner be ? v u

  6. t-spanner • Computing a t-spanner of smallest possible size is NP-complete. • For a graph on n vertices, how large can a t-spanner be ? v u

  7. t-spanner • Computing a t-spanner of smallest possible size is NP-complete. • For a graph on n vertices, how large can a t-spanner be ? v u 2-spanner may require Ω(n2) edges

  8. t-spanner • [Erdös 1963, Bollobas, Bondy & Simonovits] “There are graphs on n vertices for which every 2k-spanner or a (2k-1)- spanner has Ω(n1+1/k) edges.” G=(V,E) GS=(V,ES), |ES|=O(n1+1/k) GSis (2k-1)-spanner ALGORITHM

  9. Algorithms for t-spanner(RAM model)

  10. Algorithms for t-spanner(RAM model) • avoids distance computation altogether. • near optimal algorithms in parallel, external-memory, distributed environment

  11. Computing a t-spanner in streaming environment Input : n, m, k, and a stream of edges of an unweighted graph Aim : to compute a (2k-1)-spanner Efficiency measures : 1. number of passes 2. space (memory) required 3. time to process the entire stream

  12. Computing a t-spanner in streaming environment Input : n, m, k, and a stream of edges of an unweighted graph Aim : to compute a (2k-1)-spanner Algo 1 : Streaming model Efficiency measures : 1. number of passes 1 2. space (memory) required O(kn1+1/k) 3. time to process the entire stream O(m)

  13. Computing a t-spanner in streaming environment Input : n, m, k, and a stream of edges of an unweighted graph Aim : to compute a (2k-1)-spanner [Feigenbaum et al., SODA 2005] Efficiency measures : 1. number of passes 1 2. space (memory) required O(kn1+1/k) for (2k+1)-spanner 3. time to process the entire stream O(mn1/k)

  14. Computing a t-spanner in streaming environment Input : n, m, k, and a stream of edges of a weighted graph Aim : to compute a (2k-1)-spanner Algo 2 : StreamSort model Efficiency measures : 1. number of passes O(k) 2. working memory required O(log n) bits 3. time spent in one stream pass O(m)

  15. Relation to previous results • slightly different hierarchy • simple buffering technique B. & Sen, 2003 Feigenbaum et al., 2005 Algo 1 Algo 2

  16. Algorithm 1

  17. Intuition u

  18. Intuition Spanner edge u

  19. Intuition Spanner edge u

  20. Cluster v o u C(x) : center of cluster containingx Radius : maximum distance from center to a vertex in the cluster Clustering : a set of disjoint clusters

  21. Preprocessing : Clustering for the initial (empty) graph K K-1 2 1 0

  22. Preprocessing : Clustering for the initial (empty) graph K K-1 2 1 0 Sampling probability = n-1/k

  23. Preprocessing : Clustering for the initial (empty) graph K K-1 2 1 0 Sampling probability = n-1/k

  24. Preprocessing : Clustering for the initial (empty) graph K 0 n1/k K-1 n1-2/k 2 n1-1/k 1 n 0 Sampling probability = n-1/k

  25. Preprocessing : Clustering for the initial (empty) graph K 0 n1/k K-1 n1-2/k 2 n1-1/k 1 n 0 Sampling probability = n-1/k

  26. Processing the stream of edges • Each vertex u at level i<k-1 wishes to move to higher levels. Condition for upward movement : “an edge (u,v) such that Ci(v) is a sampled cluster”

  27. K K-1 2 1 v 0 v u

  28. K K-1 2 1 v 0 v u

  29. K K-1 2 u 1 v 0 v u

  30. K K-1 2 x u 1 v x 0 x y v u

  31. K K-1 2 x y u 1 v x 0 x y v u

  32. K K-1 y 2 x y u 1 v x 0 x y v u

  33. K K-1 y 2 x y u 1 v x 0 x y v u

  34. K K-1 u y 2 x y u 1 v x 0 x y v u

  35. K K-1 2 1 0

  36. From perspective of a vertex u … i u

  37. From perspective of a vertex u … i u

  38. From perspective of a vertex u … i u

  39. i u From perspective of a vertex u …

  40. From perspective of a vertex u … i u

  41. x y u x i y u From perspective of a vertex u … i+1

  42. Processing an edge (u,v) x i+1 y IfCi(v) is a sampled cluster : Ci+1(u) Ci+1(v); add (u,v) to spanner; u moves to level i+1 (or even higher) Else ifCi(v) was not adjacent to u earlier : add edge (u,v) to spanner; Else Discard (u,v) u x i y u

  43. K 0 n1/k K-1 n1-2/k 2 n1-1/k 1 n 0

  44. i u Size and stretch of spanner • Expected number of spanner edges contributed by a vertex = O(k n1/k). • Radius of a cluster at level i is at most i. For each edge discarded, there is a path in spanner of length (2i+1)

  45. Size and stretch of spanner • Expected number of spanner edges contributed by a vertex = O(k n1/k). • Radius of a cluster at level i is at most i. A single pass streaming algorithm A (2k-1)-spanner of expected size O(kn1+1/k)

  46. Running time of the algorithm i u v IfCi(v) is a sampled cluster : Ci+1(u) Ci+1(v); add (u,v) to spanner; u moves to level i+1 (or even higher) Else ifCi(v) was not adjacent to u earlier θ(n1/k)time add edge (u,v) to spanner; Else Discard (u,v)

  47. Slight modification • Each vertex u keeps two buffers for storing edges incident from clusters at its present level. 1. Temp(u) 2. Es(u) • Whenever u moves to higher level, move all the edges of Temp(u) and Es(u) to the spanner.

  48. u v Modified algorithm i IfCi(v) is a sampled cluster : Ci+1(u) Ci+1(v); add (u,v) to spanner; u moves to level i+1 (or even higher) Else add (u,v) to Temp(u) and Prune(u) if Temp(u) ≥ ES(u)

  49. Adding edges to Temp(u) u

  50. Adding edges to Temp(u) u

More Related