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

Slides:



Advertisements
Similar presentations
Improved Approximation for the Directed Spanner Problem Grigory Yaroslavtsev Penn State + AT&T Labs - Research (intern) Joint work with Berman (PSU), Bhattacharyya.
Advertisements

Chapter 4 Partition I. Covering and Dominating.
Algorithms (and Datastructures) Lecture 3 MAS 714 part 2 Hartmut Klauck.
Surender Baswana Department of CSE, IIT Kanpur. Surender Baswana Department of CSE, IIT Kanpur.
Approximate Distance Oracles and Spanners with sublinear surplus Mikkel Thorup AT&T Research Uri Zwick Tel Aviv University.
Dynamic Graph Algorithms - I
The Greedy Approach Chapter 8. The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions.
Everything you always wanted to know about spanners * *But were afraid to ask Seth Pettie University of Michigan, Ann Arbor.
 Graph Graph  Types of Graphs Types of Graphs  Data Structures to Store Graphs Data Structures to Store Graphs  Graph Definitions Graph Definitions.
Approximating Distances in Graphs Uri Zwick Tel Aviv University Otwarte wykłady dla doktorantów informatyki Instytut Informatyki Uniwersytetu Warszawskiego.
Graph Algorithms: Minimum Spanning Tree We are given a weighted, undirected graph G = (V, E), with weight function w:
1 Sadna in Algorithms Haim Kaplan and Svetlana Olonetsky Tel Aviv University, fall 07/08.
1 On Dynamic Shortest Paths Problems Liam Roditty Uri Zwick Tel Aviv University ESA 2004.
Network Flow Spanners F. F. Dragan and Chenyu Yan Kent State University, Kent, OH, USA.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
1 Approximate Distance Oracles Mikkel Thorup AT&T Research Uri Zwick Tel Aviv University.
Collective Additive Tree Spanners of Homogeneously Orderable Graphs
SubSea: An Efficient Heuristic Algorithm for Subgraph Isomorphism Vladimir Lipets Ben-Gurion University of the Negev Joint work with Prof. Ehud Gudes.
Collective Tree Spanners of Graphs with Bounded Parameters F.F. Dragan and C. Yan Kent State University, USA.
Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are.
Collective Tree Spanners of Graphs F.F. Dragan, C. Yan, I. Lomonosov Kent State University, USA Hiram College, USA.
Collective Tree Spanners and Routing in AT-free Related Graphs F.F. Dragan, C. Yan, D. Corneil Kent State University University of Toronto.
Additive Spanners for k-Chordal Graphs V. D. Chepoi, F.F. Dragan, C. Yan University Aix-Marseille II, France Kent State University, Ohio, USA.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Approximate Distance Oracles for Geometric Spanner Networks Joachim Gudmundsson TUE, Netherlands Christos Levcopoulos Lund U., Sweden Giri Narasimhan Florida.
Tirgul 7 Review of graphs Graph algorithms: – BFS (next tirgul) – DFS – Properties of DFS – Topological sort.
Introduction Outline The Problem Domain Network Design Spanning Trees Steiner Trees Triangulation Technique Spanners Spanners Application Simple Greedy.
CPSC 689: Discrete Algorithms for Mobile and Wireless Systems Spring 2009 Prof. Jennifer Welch.
Distance Approximating Trees in Graphs
Improved Randomized Algorithms for Path Problems in Graphs PhD Thesis Surender Baswana Department of Computer Science & Engineering, I.I.T. Delhi Research.
Minimal Spanning Trees What is a minimal spanning tree (MST) and how to find one.
Graph Sparsifiers Nick Harvey University of British Columbia Based on joint work with Isaac Fung, and independent work of Ramesh Hariharan & Debmalya Panigrahi.
GRAPHS CSE, POSTECH. Chapter 16 covers the following topics Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component,
Graph Algorithms. Definitions and Representation An undirected graph G is a pair (V,E), where V is a finite set of points called vertices and E is a finite.
GRAPH SPANNERS by S.Nithya. Spanner Definition- Informal A geometric spanner network for a set of points is a graph G in which each pair of vertices is.
Distance sensitivity oracles in weighted directed graphs Raphael Yuster University of Haifa Joint work with Oren Weimann Weizmann inst.
1 Approximate Algorithms (chap. 35) Motivation: –Many problems are NP-complete, so unlikely find efficient algorithms –Three ways to get around: If input.
PODC Distributed Computation of the Mode Fabian Kuhn Thomas Locher ETH Zurich, Switzerland Stefan Schmid TU Munich, Germany TexPoint fonts used in.
Spanning and Sparsifying Rajmohan Rajaraman Northeastern University, Boston May 2012 Chennai Network Optimization WorkshopSpanning and Sparsifying1.
Approximate Distance Oracles Mikkel Thorup and Uri Zwick Presented By Shiri Chechik.
Lower Bound for Sparse Euclidean Spanners Presented by- Deepak Kumar Gupta(Y6154), Nandan Kumar Dubey(Y6279), Vishal Agrawal(Y6541)
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
1/24 Introduction to Graphs. 2/24 Graph Definition Graph : consists of vertices and edges. Each edge must start and end at a vertex. Graph G = (V, E)
A light metric spanner Lee-Ad Gottlieb. Graph spanners A spanner for graph G is a subgraph H ◦ H contains vertices, subset of edges of G Some qualities.
Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.
GRAPHS. Graph Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component, spanning tree Types of graphs: undirected,
Shortest Paths in Decremental, Distributed and Streaming Settings 1 Danupon Nanongkai KTH Royal Institute of Technology BIRS, Banff, March 2015.
Estimating PageRank on Graph Streams Atish Das Sarma (Georgia Tech) Sreenivas Gollapudi, Rina Panigrahy (Microsoft Research)
Complexity and Efficient Algorithms Group / Department of Computer Science Testing the Cluster Structure of Graphs Christian Sohler joint work with Artur.
A randomized linear time algorithm for graph spanners Surender Baswana Postdoctoral Researcher Max Planck Institute for Computer Science Saarbruecken,
SPARSE CERTIFICATES AND SCAN-FIRST SEARCH FOR K-VERTEX CONNECTIVITY
Network Partition –Finding modules of the network. Graph Clustering –Partition graphs according to the connectivity. –Nodes within a cluster is highly.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Fast.
Spanning Tree Definition:A tree T is a spanning tree of a graph G if T is a subgraph of G that contains all of the vertices of G. A graph may have more.
Clustering Data Streams A presentation by George Toderici.
A simple parallel algorithm for the MIS problem
Improved Randomized Algorithms for Path Problems in Graphs
CIS 700: “algorithms for Big Data”
Randomized Algorithms CS648
Graphs All tree structures are hierarchical. This means that each node can only have one parent node. Trees can be used to store data which has a definite.
Approximate Distance Oracles and Spanners with sublinear surplus
CSCI B609: “Foundations of Data Science”
Introduction Wireless Ad-Hoc Network
Approximating Distances in Graphs
Shortest Path Algorithms
Approximate Distance Oracles
Lecture 14 Shortest Path (cont’d) Minimum Spanning Tree
Dynamic Graph Algorithms
Graphs G = (V, E) V are the vertices; E are the edges.
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
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 G S = (V,E S ), where E S is 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 ? u v

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 ? u v 2-spanner may require Ω(n 2 ) 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 Ω(n 1+1/k ) edges.” G=(V,E) ALGORITHM G S =(V,E S ), |E S |=O(n 1+1/k ) G S is (2k-1)-spanner

Algorithms for t-spanner (RAM model) StretchSizeRunning time Das et al., k-1O(n 1+1/k )O(mn 1+1/k ) Deterministic Roditty et al k-1O(n 1+1/k )O(n 2+1/k ) Deterministic B & Sen, k-1O(kn 1+1/k )O(km) Randomized Roditty et al., k-1O(kn 1+1/k )O(km) Deterministic

Algorithms for t-spanner (RAM model) StretchSizeRunning time Das et al., k-1O(n 1+1/k )O(mn 1+1/k ) Deterministic Roditty et al k-1O(n 1+1/k )O(n 2+1/k ) Deterministic B & Sen, k-1O(kn 1+1/k )O(km) Randomized Roditty et al., k-1O(kn 1+1/k )O(km) Deterministic 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) requiredO(kn 1+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) requiredO(kn 1+1/k ) for (2k+1)-spanner 3. time to process the entire stream O(mn 1/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 requiredO(log n) bits 3. time spent in one stream pass O(m)

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

Algorithm 1

Intuition u

Spanner edge u

Intuition Spanner edge u

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

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

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

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

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

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

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 C i (v) is a sampled cluster”

0 1 2 K-1 K uv v

0 1 2 K uv v

0 1 2 K uv v u

0 1 2 K uv v u yx x x

0 1 2 K uv v u yx x x y

0 1 2 K uv v u yx x x y y

0 1 2 K uv v u yx x x y y

0 1 2 K uv v u yx x x y y u

0 1 2 K

u i From perspective of a vertex u …

u i

u i

u i

u i

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

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

0 1 2 K-1 K n n 1-1/k n 1-2/k n 1/k 0

Size and stretch of spanner Expected number of spanner edges contributed by a vertex = O(k n 1/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) u i

Size and stretch of spanner Expected number of spanner edges contributed by a vertex = O(k n 1/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(kn 1+1/k )

Running time of the algorithm u i If C i (v) is a sampled cluster : C i+1 (u)  C i+1 (v); add (u,v) to spanner; u moves to level i+1 (or even higher) Else if C i (v) was not adjacent to u earlier θ(n 1/k ) time add edge (u,v) to spanner; Else Discard (u,v) v

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

Modified algorithm i If C i (v) is a sampled cluster : C i+1 (u)  C i+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) ≥ E S (u) uv

u Adding edges to Temp(u)

u

u Prune(u) u

Time complexity analysis Prune(u) can be executed in O(|Temp(u)| + |E s (u)|) time using an an auxiliary O(n) space. when is Prune(u) executed ?

Time complexity analysis Prune(u) can be executed in O(|Temp(u)| + |E s (u)|) time using an an auxiliary O(n) space. Prune(u) is executed only when |Temp(u)| ≥ |E s (u)|

Time complexity analysis Prune(u) can be executed in O(|Temp(u)| + |E s (u)|) time using an an auxiliary O(n) space. Prune(u) is executed only when |Temp(u)| ≥ |E s (u)| We can charge O(1) cost to each edge in Temp(u).

Time complexity analysis Prune(u) can be executed in O(|Temp(u)| + |E s (u)|) time using an an auxiliary O(n) space. Prune(u) is executed only when |Temp(u)| ≥ |E s (u)| We can charge O(1) cost to each edge in Temp(u). An edge is processed in Temp(u) at most once.

Time complexity analysis Prune(u) can be executed in O(|Temp(u)| + |E s (u)|) time using an an auxiliary O(n) space. Prune(u) is executed only when |Temp(u)| ≥ |E s (u)| We can charge O(1) cost to each edge in Temp(u). An edge is processed in Temp(u) at most once. Total time spent in processing the stream = O(m)

Size of (2k-1)-spanner Expected size of |E s (u)| = O(n 1/k ) Temp(u) never exceeds |E s (u)| +1. Expected size of (2k-1)-spanner is O(k n 1+1/k )

Conclusion THEOREM 1 : Given any k ε N, a (2k-1)-spanner of expected size O(kn 1+1/k ) for any unweighted graph can be computed in one Stream pass with O(m) time to process the entire stream of edges. THEOREM 2 : Given any k ε N, a (2k-1)-spanner of expected size O(kn 1+1/k ) for any weighted graph can be computed in O(k) StreamSort passes with O(log n) bits of working memory.