Compact Representations of Separable Graphs From a paper of the same title submitted to SODA by: Dan Blandford and Guy Blelloch and Ian Kash.

Slides:



Advertisements
Similar presentations
Routing Complexity of Faulty Networks Omer Angel Itai Benjamini Eran Ofek Udi Wieder The Weizmann Institute of Science.
Advertisements

Space-Efficient Static Trees and Graphs Guy Jacobson IEEE Symposium on Foundations of Computer Science, 1989 Speaker: 吳展碩.
I/O and Space-Efficient Path Traversal in Planar Graphs Craig Dillabaugh, Carleton University Meng He, University of Waterloo Anil Maheshwari, Carleton.
Distance and Routing Labeling Schemes in Graphs
Succinct Data Structures for Permutations, Functions and Suffix Arrays
Introduction to Computer Science 2 Lecture 7: Extended binary trees
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Succinct Representation of Balanced Parentheses, Static Trees and Planar Graphs J. Ian Munro & Venkatesh Raman.
An Improved Succinct Dynamic k-Ary Tree Representation (work in progress) Diego Arroyuelo Department of Computer Science, Universidad de Chile.
Advanced Data Structures
More Graph Algorithms Minimum Spanning Trees, Shortest Path Algorithms.
Succinct Data Structures Ian Munro University of Waterloo Joint work with David Benoit, Andrej Brodnik, D, Clark, F. Fich, M. He, J. Horton, A. López-Ortiz,
Generalized Hashing with Variable-Length Bit Strings Michael Klipper With Dan BlandfordGuy Blelloch Original source: D. Blandford and G. E. Blelloch. Storing.
CS Lecture 9 Storeing and Querying Large Web Graphs.
What is the next line of the proof? a). Let G be a graph with k vertices. b). Assume the theorem holds for all graphs with k+1 vertices. c). Let G be a.
Lists A list is a finite, ordered sequence of data items. Two Implementations –Arrays –Linked Lists.
Parallel Routing Bruce, Chiu-Wing Sham. Overview Background Routing in parallel computers Routing in hypercube network –Bit-fixing routing algorithm –Randomized.
Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression.
CS728 Lecture 16 Web indexes II. Last Time Indexes for answering text queries –given term produce all URLs containing –Compact representations for postings.
1 On Compressing Web Graphs Michael Mitzenmacher, Harvard Micah Adler, Univ. of Massachusetts.
Point Location in Delaunay Triangulations. Inspiration: Graphics software wants to light a model and needs to know which face a light ray hits You moved.
Is the following graph Hamiltonian- connected from vertex v? a). Yes b). No c). I have absolutely no idea v.
Dynamic Sets and Data Structures Over the course of an algorithm’s execution, an algorithm may maintain a dynamic set of objects The algorithm will perform.
An Approach to Generalized Hashing Michael Klipper With Dan Blandford Guy Blelloch.
What is the next line of the proof? a). Assume the theorem holds for all graphs with k edges. b). Let G be a graph with k edges. c). Assume the theorem.
Topological Surgery Progressive Forest Split Papers by Gabriel Taubin et al Presented by João Comba.
Review of Graphs A graph is composed of edges E and vertices V that link the nodes together. A graph G is often denoted G=(V,E) where V is the set of vertices.
Dijkstra's algorithm.
Mike 66 Sept Succinct Data Structures: Techniques and Lower Bounds Ian Munro University of Waterloo Joint work with/ work of Arash Farzan, Alex Golynski,
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Dijkstras Algorithm Named after its discoverer, Dutch computer scientist Edsger Dijkstra, is an algorithm that solves the single-source shortest path problem.
Succinct Representations of Trees
Graph Dr. Bernard Chen Ph.D. University of Central Arkansas.
A Summary of XISS and Index Fabric Ho Wai Shing. Contents Definition of Terms XISS (Li and Moon, VLDB2001) Numbering Scheme Indices Stored Join Algorithms.
Introduction n – length of text, m – length of search pattern string Generally suffix tree construction takes O(n) time, O(n) space and searching takes.
Representing and Using Graphs
Minimum Spanning Trees CSE 2320 – Algorithms and Data Structures Vassilis Athitsos University of Texas at Arlington 1.
Summer School '131 Succinct Data Structures Ian Munro.
David Luebke 1 10/16/2015 CS 332: Algorithms Go Over Midterm Intro to Graph Algorithms.
Computer Algorithms Submitted by: Rishi Jethwa Suvarna Angal.
Succinct Data Structures Ian Munro University of Waterloo Joint work with David Benoit, Andrej Brodnik, D, Clark, F. Fich, M. He, J. Horton, A. López-Ortiz,
Introduction to Algorithms Chapter 16: Greedy Algorithms.
Compact Encodings of Graphs Shin-ichi Nakano (Gunma Univ.) Gunma.
Compressed Prefix Sums O’Neil Delpratt Naila Rahman Rajeev Raman.
Succinct Ordinal Trees Based on Tree Covering Meng He, J. Ian Munro, University of Waterloo S. Srinivasa Rao, IT University of Copenhagen.
Compact Encodings for All Local Path Information in Web Taxonomies with Application to WordNet Svetlana Strunjaš-Yoshikawa Joint with Fred Annexstein and.
Chapter 23: Minimum Spanning Trees: A graph optimization problem Given undirected graph G(V,E) and a weight function w(u,v) defined on all edges (u,v)
CSC 413/513: Intro to Algorithms Graph Algorithms.
Graphs A graphs is an abstract representation of a set of objects, called vertices or nodes, where some pairs of the objects are connected by links, called.
Miniconference on the Mathematics of Computation
Lecture 17: Trees and Networks I Discrete Mathematical Structures: Theory and Applications.
Minimum Spanning Trees CSE 2320 – Algorithms and Data Structures Vassilis Athitsos and Alexandra Stefan University of Texas at Arlington These slides are.
Succinct Data Structures
Minimum Spanning Trees
Succinct Data Structures
Lecture 11 Graph Algorithms
Introduction to Algorithms
Minimum Spanning Trees
CSE 2331/5331 Topic 9: Basic Graph Alg.
What is the next line of the proof?
CS 3343: Analysis of Algorithms
Graphs Chapter 15 explain graph-based algorithms Graph definitions
Distance and Routing Labeling Schemes in Graphs
Elementary graph algorithms Chapter 22
Chapter 22: Elementary Graph Algorithms I
Succinct Representation of Labeled Graphs
Elementary graph algorithms Chapter 22
Lecture 10 Graph Algorithms
Chapter 23: Minimum Spanning Trees: A graph optimization problem
Presentation transcript:

Compact Representations of Separable Graphs From a paper of the same title submitted to SODA by: Dan Blandford and Guy Blelloch and Ian Kash

Standard Graph Representations Standard Adjacency List - |V| + 2|E| words = O(|E|lg|V|) bits - |V| + |E| words if stored as an array For arbitrary graphs, lower bound is O(|E| lg (|V| 2 /|E|)) bits, which adjacency list meets for sparse graphs, i.e. |E| = O(|V|)

Representations for Planar Graphs that use O(|V|) bits No Query Support - Turan [1984], First to come up with an O(|V|) bit compression scheme - Keeler and Westbrook [1995], Improved constants - Deo and Litow [1998], First use of separators - He, Kao and Lu [2000], Optimal high order term Query Support - Jacobson [1989], O( lg |V|) adjacency queries - Munro and Raman [1997], O(1) adjacency queries - Based on page embeddings and balanced parentheses, so not generally applicable

Graph Separators A Vertex SeparatorAn Edge Separator Formally, a class of Graphs is separable if: 1)Every member has a cut set of size βf(|V|) for some β > 0 such that 2)Each component has at most αn vertices for some α < 1 We concern ourselves with the case f(|V|) = |V| c, 0 < c < 1

Classes of Graphs With Small Separators Many Interesting and Useful Classes - Planar (and all bounded genus) - Telephone / Power / Road networks - 3D Meshes (Miller et al. [1997]) - Link Structure of Web

Results Theory for both edge and vertex separators Compress Graphs to O(|V|) bits Meets Lower Bound for Query Times - Degree Queries – O(1) - Adjacency Queries – O(1) - Neighbor Queries – O(D), D = Degree Implementation for edge separators

Main Ideas 1) Build separator tree 2) Order based on tree 3) Compress using difference encoded adjacency table 4) Use root find tree* * Vertex separators only

A Graph and Its Separator Tree Final Numbering:

Difference Coded Adjacency Table Instead of storing absolute numbers, store offsets i.e.: 1,1,3,2,1 instead of 1,2,5,7,8 Makes numbers stored smaller By itself, it offers no advantage

Gamma Code Variable length encoding with 2 parts 1 st Part: Unary code of length of 2 nd part 2 nd Part: Number in binary Encoding n takes 2 └ lg(n+1) ┘ =O(lg(n)) bits There are other codes with similar properties (Ex: Delta Code) NumberEncoding

Theorem: Using a difference coded adjacency table this ordering requires O(|V|) bits u uv v

Sketch of Proof The maximum distance between the numbers of u and v is the number of vertices in their Least Common Ancestor in the separator tree (n) With Gamma Code this takes O(lg(n)) bits Recurrence: S(n) ≤ 2S(.5n) + O(n c lg(n)) As a geometrically decreasing recurrence, this solves to S(|V|) = O(|V|)

Decoding Vertex i in O(1) time We can decode lg(|V|) bits at a time through table lookup An Edge Takes O(lg(|V|)) bits, and the degree of a vertex for a graph with good edge separators is constant We decode the entire vertex using a constant number of table lookups Vertex i-1DegreeEdge 2Edge 3Edge 1Vertex i+1 Pointer to Vertex i

Problem! This assumes we have a pointer to vertex i Requires |V| pointers of lg |V| bits each = O(|V| lg|V|), but the graph uses only O(|V|) Can afford a pointer to a BLOCK of lg |V| vertices O(lg |V| * |V| / lg |V|) = O(|V|) Can afford a pointer to a SUBBLOCK of at least k lg |V| bits Can afford extra 2 lg |V| bits per block

Getting a Pointer to Vertex i in O(1) Next BlockPrevious Block100110Pointer to BlockPointer to Offsets Prev. Subblocks Next SubblocksOffset for 3 rd SubblockOffset for 2 nd Subblock Pointer to Block (calculate as i / lg (|V|) Flags to determine subblocks. A 1 is the start of a subblock The Process: 1) Calculate block number 2) Identify subblock number 3) Get subblock offset 4) Add offset to pointer 5) Decode any Previous vertices (at most k lg |V| bits)

Graphs Used For Testing |V||E|Max DDesc. 3dGrid Large 3d Grid Airfoil d Mesh of an Airfoil Crack d Triangle Mesh of a Cracked Plate Pitt Map of Pittsburgh In Link Links to WebPages (from TREC) Out Link Links from WebPages (from TREC)

Experimental Space Results All #s in bits Used per edge Overhead per edge Used per vertex Overhead per Vertex 3dGrid Airfoil Crack Pitt In Link Out Link

Experimental Time Results Results on 3D Grid Depth First Search time (seconds) Breadth First Search time (seconds) Our Implementation Standard Adjacency List Array Adjacency List

Conclusions Our Method uses O(|V|) bits to compress a graph with good separators On test graphs with good separators, it used less than 12 bits per edge, including overhead It meets the lower bounds for queries With unoptimized table lookup it takes 3 times as long to search as a standard adjacency list representation and 6 times as long as an array based adjacency list

Future Work Test decoding speed on more graphs Optimize decoding Allow addition / deletion of edges More Efficient Separator Generator Implement Vertex Separators

Planar Embeddings and Parentheses Create a Page Embedding Represent vertices and edges as parentheses - () for a vertex - ( for start of an edge - ) close for end - Figure on left: ()((())(()))((())(())) No good page embedding algorithm for arbitrary graphs