Succinct Geometric Indexes Supporting Point Location Queries Prosenjit Bose, Eric Y. Chen, Meng He, Anil Maheshwari, Pat Morin
Point Location: the Initial Problem A fundamental geometric query problem Data sets: The subdivision of an Euclidean plane into polygons (faces) by line segments Query: Given a query point, locate the face that the query point is in
Classic Solutions (1980’s) Kirkpartrick: Hierarchical Triangulation Edelsbrunner et al.: Layered directed acyclic graph Cole: Searching in similar lists Sarnak and Tarjan: Persistant search trees... Analysis Space: O(n) words or O(n lg n) bits Time: O(lg n)
Improving Query Efficiency Under Various Assumptions Exact number of point-line comparisons Seidel and Adamy 2000: lg n + 2 lg 1/2 n + O(lg 1/4 n) Integer coordinates bounded by U Chan & Pătraşcu 2006: O(min{lg n/lglg n, lg 1/2 U}) time Query distribution is known Entropy: H=-Σp i lg p i, where p i is the probability of the i th face containing the query point Iacono 2004: O(H + 1) expected time Arya et al. 2007: H + O(H 1/2 + 1) expected comparisons
New Problem Massive geometric data sets available Geographic information systems Spatial databases Computer graphics … New problem: Space-efficient point location structures New Direction: succinct data structures for geometric queries
Background: Succinct Data Structures What are succinct data structures (Jacobson 1989) Representing data structures using ideally information-theoretic minimum space Supporting efficient navigational operations Why succinct data structures Large data sets in modern applications: textual, genomic, spatial or geometric
Our Model: Succinct Geometric Indexes Geometric Queries Succinct Geometric Indexes (o(n) bits) A permutation of the point coordinates (x 5,y 5 ), (x 10,y 10 ), (x 3,y 3 ), (x 8,y 8 ), (x 2,y 2 ), (x n,y n )… +
Point Location in Planar Triangulations Planar Triangulations: A planar graph whose faces are all triangles Applications: computer graphics, GIS Notation: n – number of vertices, m – number of edges, f – number of faces
Partitioning a Planar Triangulations by Removing Faces A tool: t-separator (Aleksandrov & Djidjev 1996), 0<t<1 Size of separator: O((n/t) 1/2 ) vertices Size of each connected component: at most t n vertices Our separator: t-face separator Size of separator: O((f/t) 1/2 ) faces Size of each connected component (adjacent face component): at most t f faces
Properties of t-Face Separators Separator face Face of a adjacent face component Number of adjacent face component: O((f/t) 1/2 ) Sum of the duplication degrees of boundary vertices: O((f/t) 1/2 )
Two-Level Partition Top-level partition Parameter t = lg 3 f / f Size of region: O(lg 3 n) Size of separator: O(n / lg 3/2 n) Bottom-level partition Parameter t = lg n / n i for region R i with n i vertices Size of subregion: O(lg n) Size of separator: O(n i / lg 1/2 n)
Overview of Labeling Scheme Labels at three levels for the same vertex Graph-label (unique) Region-label (zero or more) Subregion-label (zero or more) Assign the labels from bottom up Store the coordinates of the vertices in the order of graph-labels
Subregion-Labels Encoding subregion R i,j by permuting its vertex set (Denny & Sohler 1997) Subregion-label: the k th vertex in the above permutation has subregion-label k in R i,j
Region-Labels and Graph-Labels 1, 2, 3, 4, 5, 61, 2, 3, 4, 51, 2, 3, 4, 5, 6, 7 R 1,1 R 1,2 R 1,3 R1R1 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 11, 12,13,14,15, … The assignment of graph-labels are similar Succinct structures of o(n) bits are constructed to support conversion between labels at different levels in O(1) time
Point Location Structures Top-level structures A point location structure for the triangulated graph consisting of separator and outer face Vertex coordinates are referred to by graph-labels For each face, indicate which region (or none) contains it Space: O(n/lg 3/2 n x lg n) = o(n) bits Bottom-level structures Similar structures are constructed for each region Vertex coordinates are referred to by region-labels Space: O(n/lg 1/2 n x lglg n) = o(n) bits
Answering Point Location Queries Graph level Answer point location query using top-level structures in O(lg n) time Region level Answer point location query using bottom-level structures in O(lglg n) time Subregion level Check each face to answer point location query in O(lg n) time
Main Result A succinct geometric index supporting point location in planar triangulations Space: o(n) bits Time: O(lg n) Preprocessing time: O(n)
Three Variants of Our Succinct Indexes Optimizing the extra number of point-line comparisons Query: lg n + 2 lg 1/2 n + O(lg 1/4 n) comparisons Point location in sub-logarithmic Query time: O(min{lg n/lglg n,lg 1/2 U}+lg є n) Input-sensitive point location Query time: O(H+1) expected These indexes can be constructed in O(n) time
Succinct Indexes for More Geometric Queries Point location in planar subdivisions Query time: O(lg n) Preprocessing time: O(n) Membership queries on a simple polygon Query time: O(lg n) Preprocessing time: O(n) Vertical Ray Shooting Query time: O(lg n) Preprocessing time: O(n lg n)
Application: Implicit Point Location Structures Implicit geometric structures: store a permuted sequence of the point set to answer geometric queries Our result: O(lg 2 n)-time support for: Point location Membership Vertical ray shooting
Conclusions We started a new line of research by designing succinct geometric indexes Our results match the query efficiency of previous geometric data structures, while saving drastic amounts of space
Thank you!