Near Optimal Streaming algorithms for Graph Spanners
580 likes | 743 Vues
This work presents near-optimal algorithms for computing t-spanners in unweighted graphs within a streaming environment. A t-spanner is a sparse subgraph that preserves approximate pairwise distances, particularly important for network modeling. The study focuses on minimizing the number of edges while maintaining distance authenticity, exploring algorithms that avoid direct distance computations. Efficiency metrics such as memory usage, processing time, and the number of passes are analyzed, allowing for practical applications in parallel and distributed systems.
Near Optimal Streaming algorithms for Graph Spanners
E N D
Presentation Transcript
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 δ(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.
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.
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
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
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
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
Algorithms for t-spanner(RAM model) • avoids distance computation altogether. • near optimal algorithms in parallel, external-memory, distributed environment
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
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)
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)
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)
Relation to previous results • slightly different hierarchy • simple buffering technique B. & Sen, 2003 Feigenbaum et al., 2005 Algo 1 Algo 2
Intuition Spanner edge u
Intuition Spanner edge u
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
Preprocessing : Clustering for the initial (empty) graph K K-1 2 1 0
Preprocessing : Clustering for the initial (empty) graph K K-1 2 1 0 Sampling probability = n-1/k
Preprocessing : Clustering for the initial (empty) graph K K-1 2 1 0 Sampling probability = n-1/k
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
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
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”
K K-1 2 1 v 0 v u
K K-1 2 1 v 0 v u
K K-1 2 u 1 v 0 v u
K K-1 2 x u 1 v x 0 x y v u
K K-1 2 x y u 1 v x 0 x y v u
K K-1 y 2 x y u 1 v x 0 x y v u
K K-1 y 2 x y u 1 v x 0 x y v u
K K-1 u y 2 x y u 1 v x 0 x y v u
K K-1 2 1 0
i u From perspective of a vertex u …
x y u x i y u From perspective of a vertex u … i+1
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
K 0 n1/k K-1 n1-2/k 2 n1-1/k 1 n 0
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)
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)
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)
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.
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)