Succinct Representation of Labeled Graphs Jérémy Barbay, Luca Castelli Aleardi, Meng He, J. Ian Munro
Background: Succinct Data Structures What are succinct data structures Representing data structures using ideally information-theoretic minimum space Supporting efficient navigational operations Jacobson 1989 Why succinct data structures Large data sets in modern applications: textual, genomic, spatial or geometric An implementation: Delpratt et al. 2006
Motivations and Objectives Initial Problem: representing unlabeled graphs succinctly Connectivity information: degree, neighbors, adjacency Jacobson 89, Munro and Raman 97, Chuang et al. 98, Chiang et al. 01, Castelli Aleardi et al. 05 & 06 New Problem: representing labeled graphs succinctly Properties of an object is often modeled as labels on vertices or edges Label-based queries
Planar Triangulations Planar Triangulations: A planar graph whose faces are all triangles Applications: computer graphics, computational geometry
An Example: Terrain and Triangulations Geometric Modeling and Computer Graphics Research Groups, University of Genova
Planar Triangulations and Realizers Planar Triangulation T Number of vertices: n; number of edges: m External face: (v0, v1, vn-1) Realizer (Schnyder 1990) A partition of the set of internal edges into three set of directed edges T0, T1, T2 the edges incident to any internal vertex v in ccw order are: one outgoing edge in T0, zero or more incoming edges in T2, one outgoing edges in T1, zero or more incoming edges in T0, one outgoing edge in T2 and zero or more incoming edges in T1
Planar Triangulations and Realizers (Continued) Property T0 is a spanning tree of T / {v1, vn-1} T1 is a spanning tree of T / {v0, vn-1} T2 is a spanning tree of T / {v0, v1} Canonical spanning tree T0 T0 with edges (v0, v1) and (v0, vn-1) Canonical Ordering
Realizer: An Example T2 T0 T1
Three Traversal Orders on a Planar Triangulations π2 T2 1 2 3 4 5 6 7 8 9 10 11 4 3 2 6 5 10 9 8 7 1 7 9 1 8 2 6 5 4 3 π0 π1 T0 T1
Operations on Unlabeled Planar Triangulations Old operations adjacency Degree New operations select_neighbor_ccw(x, y, r): the rth neighbor of x staring from y in ccw order if x and y are adjacent rank_neighbor_ccw(x, y, z): the number of neighbors of vertex x between y and z in ccw order if y and z are neighbors of x Conversions between the numbers of vertices under π0, π1 and π2
Succinct Representation of Unlabeled Planar Triangulations Observation For any node x, its children in T1 (or T2), listed in ccw (or cw) order, have consecutive numbers in π1 or π2 Approach Represent T0, T1 and T2 using different types of parentheses in orders π0, π1 and π2, respectively Combine the three sequences into a multiple parenthesis sequence Results Space: 2m log26 + o(m) bits Time: O(1)
Succinct Unlabeled Planar Triangulations: An Example 1 2 3 4 5 6 7 8 9 10 11 adjacency(4,6) =true degree(6) =8 rank_neighbor_ccw(4, 5, 1) =3 π0 π1 T0 T1 ( ( [ [ [ [ ) ( ] ( ] ( ] { [ [ ) { ) ( } ] { ) ( } ] { [ [ [ [ ) … 0 1 1 2 3 4 4 3 5 5 6 6 …
Vertex Labeled Planar Triangulations Notion Number of labels: σ Number of vertex-label pairs: t Operations lab_degree(α,x): number of neighbors of vertex x associated with label α lab_select_ccw(α,x,y,r): rth vertex labeled α among neighbors of vertex x after vertex y in ccw order if y is a neighbor of x lab_rank_ccw(α,x,y,z) : number of neighbors of vertex x labeled α between vertices y and z in ccw order if y and z are neighbors of x
Vertex Labeled Planar Triangulations: An Example {b,c} 1 2 3 4 5 6 7 8 9 10 11 lab_degree(a,5) =3 lab_select_ccw(c,6,4,2) =5 lab_rank_ccw(b,6,10,5) =4 {a,b} {a,b} {b} {b} {a} {c} {b} {a,c} {a,b} {a,b,c} {c}
Succinct Index for Vertex Labeled Triangulations ADT node_label: f(n, σ, t) time Succinct Index Space: t∙o(lg σ) bits Time: O((lg lg lg σ)2(f(n, σ, t)+lglg σ) time for lab_degree, lab_select_ccw and lab_rank_ccw
Succinct Representation of vertex labeled planar triangulations Space: t lg σ+t∙o(lg σ) bits Time: node_label : O(1) lab_degree, lab_select_ccw and lab_rank_ccw : O((lg lg lg σ)2lglg σ)
Edge Labeled k-Page Graphs Notion Number of labels: σ Number of edge-label pairs: t Operations lab_adjacency(α,x,y): whether there is an edge labeled α between vertices x and y lab_degree_edge(α,x): the number of edges of vertex x that are labeled α lab_edges(α,x): the edges of vertex x that are labeled α
Edge Labeled k-Page Graphs Results Space: kn + t(lg σ + o(lg σ)) bits Time: lab_adjacency and lab_degree_edge: O(k lglg σ(lg lg lg σ)2) lab_edges: O(d lglg σ lg lg lg σ+k) , where d is the number of such edges
More Results Succinct representation of unlabeled k-page graphs for large k Succinct representation of edge Labeled k-page graphs for large k The results on edge labeled k-page graphs also apply to edge labeled planar graphs (k = 4)
Conclusions Summary Subsequent Work and Open Problems First succinct representations of labeled graphs Two preliminary results on succinct representations of unlabeled graphs Subsequent Work and Open Problems Edge labeled planar triangulations (done) Vertex labeled k-page graphs
Thank you!