Insertions and Deletions in Delaunay Triangulations using Guided Point Location. Kevin Buchin TU Eindhoven

Similar documents
Wolfgang Mulzer Institut für Informatik. Planar Delaunay Triangulations and Proximity Structures

Voronoi diagram and Delaunay triangulation

Planar Point Location in Sublogarithmic Time

Bichromatic Line Segment Intersection Counting in O(n log n) Time

Correctness. The Powercrust Algorithm for Surface Reconstruction. Correctness. Correctness. Delaunay Triangulation. Tools - Voronoi Diagram

Voronoi Diagrams in the Plane. Chapter 5 of O Rourke text Chapter 7 and 9 of course text

Delaunay Triangulations

Computational Geometry

Delaunay Triangulations. Presented by Glenn Eguchi Computational Geometry October 11, 2001

Line segment intersection. Family of intersection problems

Delaunay Triangulation

Computational Geometry Lecture Duality of Points and Lines

Course 16 Geometric Data Structures for Computer Graphics. Voronoi Diagrams

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem

CS 532: 3D Computer Vision 14 th Set of Notes

Geometric Algorithms in Three Dimensions Tutorial. FSP Seminar, Strobl,

be a polytope. has such a representation iff it contains the origin in its interior. For a generic, sort the inequalities so that

Lecture 3 Randomized Algorithms

Preferred directions for resolving the non-uniqueness of Delaunay triangulations

Notes in Computational Geometry Voronoi Diagrams

Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006

Voronoi diagrams Delaunay Triangulations. Pierre Alliez Inria

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Fall, 2012

Geometric Modeling. Bing-Yu Chen National Taiwan University The University of Tokyo

Average case analysis of dynamic geometric optimization

Planar Graphs. 1 Graphs and maps. 1.1 Planarity and duality

Triangulating the Square and Squaring the Triangle: Quadtrees and Delaunay Triangulations are Equivalent

Tutorial 3 Comparing Biological Shapes Patrice Koehl and Joel Hass

COMPUTING CONSTRAINED DELAUNAY

A Comparison of Two Fully-Dynamic Delaunay Triangulation Methods

External-Memory Algorithms with Applications in GIS - (L. Arge) Enylton Machado Roberto Beauclair

Wolfgang Mulzer Institut für Informatik. Computational Geometry with Limited Work-Space: State of the Art and Challenges

Voronoi Diagrams and Delaunay Triangulation slides by Andy Mirzaian (a subset of the original slides are used here)

Outline of the presentation

Point Location in Delaunay Triangulations

Lecture 5: Simplicial Complex

Monotone Paths in Geometric Triangulations

Linear Programming in Small Dimensions

Möbius Transformations in Scientific Computing. David Eppstein

An Optimal Algorithm for the Euclidean Bottleneck Full Steiner Tree Problem

Computational Geometry

Final Project, Digital Geometry Processing

I/O-Algorithms Lars Arge Aarhus University

CS133 Computational Geometry

arxiv: v1 [cs.cg] 8 Jan 2018

1/60. Geometric Algorithms. Lecture 1: Introduction. Convex Hulls

CAD & Computational Geometry Course plan

Lecture 16: Voronoi Diagrams and Fortune s Algorithm

CSE 5311 Notes 13: Computational Geometry

Prof. Gill Barequet. Center for Graphics and Geometric Computing, Technion. Dept. of Computer Science The Technion Haifa, Israel

Surface Mesh Generation

The Square Root Phenomenon in Planar Graphs

Lecture 3: Art Gallery Problems and Polygon Triangulation

Tiling Three-Dimensional Space with Simplices. Shankar Krishnan AT&T Labs - Research

Multi-View Matching & Mesh Generation. Qixing Huang Feb. 13 th 2017

Week 8 Voronoi Diagrams

A New Progressive Lossy-to-Lossless Coding Method for 2.5-D Triangle Mesh with Arbitrary Connectivity

Computational Geometry for Imprecise Data

Sublinear Geometric Algorithms

Art Gallery, Triangulation, and Voronoi Regions

1. Meshes. D7013E Lecture 14

On the data structures and algorithms for contact detection in granular media (DEM) V. Ogarko, May 2010, P2C course

Computational Geometry. Algorithm Design (10) Computational Geometry. Convex Hull. Areas in Computational Geometry

Data Structures for Approximate Proximity and Range Searching

Transdichotomous Results in Computational Geometry, I: Point Location in Sublogarithmic Time

1 Proximity via Graph Spanners

Mesh Generation. Quadtrees. Geometric Algorithms. Lecture 9: Quadtrees

Realizing Planar Graphs as Convex Polytopes. Günter Rote Freie Universität Berlin

Computational Geometry

Computational Geometry

Flavor of Computational Geometry. Convex Hull in 2D. Shireen Y. Elhabian Aly A. Farag University of Louisville

Morphing Planar Graph Drawings

66 III Complexes. R p (r) }.

Introduction to Voronoi Diagrams and Delaunay Triangulations

2D Geometry. Pierre Alliez Inria Sophia Antipolis

Quadratic and cubic b-splines by generalizing higher-order voronoi diagrams

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension

Henneberg construction

Time-space Trade-offs for Voronoi Diagrams

Planar convex hulls (I) Computational Geometry [csci 3250] Laura Toma Bowdoin College

ROBOT MOTION USING DELAUNAY TRIANGULATION

Integer Algorithms and Data Structures

Quadtrees and Meshing

Face Width and Graph Embeddings of face-width 2 and 3

Voronoi Diagrams, Delaunay Triangulations and Polytopes

Voronoi Diagram. Xiao-Ming Fu

6.854J / J Advanced Algorithms Fall 2008

Logarithmic-Time Point Location in General Two-Dimensional Subdivisions

An Heuristic Algorithm for the Minimum Weight Triangulation Problem

G 6i try. On the Number of Minimal 1-Steiner Trees* Discrete Comput Geom 12:29-34 (1994)

Topological Issues in Hexahedral Meshing

Planarity. 1 Introduction. 2 Topological Results

Algorithms for GIS. Spatial data: Models and representation (part I) Laura Toma. Bowdoin College

Computational Geometry

6. Concluding Remarks

Convex Hulls in Three Dimensions. Polyhedra

On Merging Straight Skeletons

Algorithms for GIS:! Quadtrees

Instance-Optimal Geometric Algorithms

CPSC / Sonny Chan - University of Calgary. Collision Detection II

Transcription:

Insertions and Deletions in Delaunay Triangulations using Guided Point Location Kevin Buchin TU Eindhoven Heraklion, 21.1.2013

Guide - Example Construct Delaunay triangulation of convex polygon in linear expected time [Chew 90] Convex Polygon Deconstruct while storing a neighbor

Guide - Example Construct Delaunay triangulation of convex polygon in linear expected time [Chew 90] O(1) point location with guide Convex Deconstruct Insert in inverse Can we Polygon use guides for while the storing Delaunay triangulation order using of a point set? Can we use guides for a neighbor deleting a point neighbor in a 3d DT? as guide

Outline Incremental Construction using Guides con BRIO Brio with dependent choices experiments Deletion in 3d Delaunay triangulations using Guides guided randomized reinsertions the Star Delaunay triangulation experiments

Delaunay triangulations Point set S Delaunay triangulation DT(S) Empty-sphere property

Incremental construction of DTs Insertion cost Point location Structural update O(?) for walking but O( log n ) using search structure

Incremental construction of DTs Insertion cost Point location O( log n ) using search structure Structural update O( C(p) ) 2D: O(1) expected for random point guides to avoid the O(log n) overhead?

Incremental Constructions con Brio [Amenta, Choi, Rote 03] random order prevents too many triangles/simplices does not allow for guides local insertion strategies? Biased Randomized Insertion Orders: allows local strategies, enough randomness

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size in every round determine short tour through points: space-filling curve tour

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size in every round determine short tour through points: space-filling curve tour

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size in every round determine short tour through points: space-filling curve tour

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size in every round determine short tour through points: space-filling curve tour

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size in every round determine short tour through points: space-filling curve tour

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size in every round determine short tour through points: space-filling curve tour

Incremental Constructions con Brio [Amenta, Choi, Rote 03] round 1 2 3 4 assign points to random rounds of halving size in every round determine short tour through points: space-filling curve tour traverse DT of previous round along tour & insert

con Brio: known properties not worse than randomized incremental construction when used with point location data structure (no guides!) [ACR 03] expected linear time (after bucketing) for points uniform in cube (R d ), and for normal distribution (space-filling curves as guides) [B 07] O(n log n) for points with integer coordinates in range {1,,n s } for constant s [B 09] Is this optimal for integer coordinates?

Outline Incremental Construction using Guides con BRIO Brio with dependent choices experiments Deletion in 3d Delaunay triangulations using Guides guided randomized reinsertions the Star Delaunay triangulation experiments

Delaunay triangulations Given n points in the plane, it takes Ω(n log n) time to compute their Delaunay triangulation.

Real RAM and word RAM BUT: The lower bound is proved by a reduction from sorting and applies to the real RAM. The real RAM allows operations on arbitrary real numbers. Actual computers can handle only finite precision, but they allow bit-manipulation in constant time. This is captured by the word RAM.

The word RAM On a word RAM data is represented as a sequence of w-bit words (w > log n). Input consists of integers in [0, 2 w -1]. We can perform operations such as +, -, *, /, bitwise and, or, xor in constant time. Constant time table look-up is available.

Previous work integer sorting There is a long history of sorting algorithms for the word RAM (integer sorting). Highlights include radix sort, van Emde Boas trees [veb77], fusion trees [FW90], signature sort [AHNR95], The current champions are a deterministic algorithm by Han [H02] (O(n loglog n)) and a randomized algorithm by Han and Thorup [HT02] (O(n (loglog n) 1/2 )).

Previous work computational geometry on a word RAM There are many transdichotomous results for orthogonal problems, for example rectangle intersection [KO88] orthogonal range searching [W92] point location in orthogonal subdivisions [dbvks95] l 1 -Voronoi Diagrams [CF97] and more [IL00],[AEIS01].

Previous work computational geometry on a word RAM Only recently did Chan and Pǎtraşcu obtain results for nonorthogonal problems [C06], [P06], [CP07] By giving transdichotomous algorithms for the slab-problem, they obtain fast algorithms for many geometric problems, such as planar point location in time O(log n/log log n) planar Voronoi diagrams and 3d convex hulls in time n2 O((loglog n)1/2 ). Can the running times be improved? Is the approach through point location necessary?

BrioDC: BRIO with dependent choices [B, Mulzer 11] Planar Delaunay triangulations can be computed in time O(sort(n)) on a word RAM that supports the shuffle operation in constant time. Analogous results hold in higher dimensions, for well-behaved point sets. BrioDC has many other consequences: Sorting helps for Delaunay triangulations (somewhat). We can preprocess a given point set [set of regions] so that Delaunay triangulations of subsets [a point per region] can be computed faster We can preprocess a given convex point set in 3d so that convex hulls of subsets can be computed faster

BrioDC: Overview point set O(sort(n)) shuffle sorting [C08, BET99] compressed quadtree O(n) WSPD [CK95] nearest-neighbor graph BrioDC Delaunay triangulation

The shuffle operation We assume our word RAM supports the shuffle operation in constant time. Performing the shuffle operation on a point set and sorting it gives the Z-order or Morton-order of the set [M66].

The shuffle order and quadtrees The shuffle order is closely related to quadtrees. Theorem [BET99][C08]: If a point set is sorted according to the shuffle order, we can find a compressed quadtree for it in O(n) time on a word RAM. O(n)

Quadtrees and nearest-neighbor graphs Theorem [CK95]: Given a compressed quadtree for a point set P, we can find its nearest-neighbor graph in time O(n) using the well-separated pair decomposition for P. O(n)

Nearest-neighbor graphs and Delaunay triangulations Theorem: If the nearest-neighbor graph for any planar point Q set can be found in time f( Q ), such that f( Q )/ Q is nondecreasing, the Delaunay triangulation of a planar point set P can be found in expected time O(f(n)+n). O(f(n) +n)

Nearest-neighbor graphs and Delaunay triangulations Theorem: If the nearest-neighbor graph for any planar point Q set can be found in time f( Q ), such that f( Q )/ Q is nondecreasing, the Delaunay triangulation of a planar point set P can be found in expected time O(f(n)+n). Proof: We use a randomized incremental construction with biased insertion order and dependent sampling. Given P. Find NNG(P). Pick an edge in each component. Sample one point from each edge, sample the rest independently.

Nearest-neighbor graphs and Delaunay triangulations Theorem: If the nearest-neighbor graph for any planar point Q set can be found in time f( Q ), such that f( Q )/ Q is nondecreasing, the Delaunay triangulation of a planar point set P can be found in expected time O(f(n)+n). Proof: We use a randomized incremental construction with biased insertion order and dependent sampling. Recurse on the sample. Insert the remaining points: walk along the edges of NNG(P) and insert the points along the way.

Nearest-neighbor graphs and Delaunay triangulations Theorem: If the nearest-neighbor graph for any planar point Q set can be found in time f( Q ), such that f( Q )/ Q is nondecreasing, the Delaunay triangulation of a planar point set P can be found in expected time O(f(n)+n). Proof: We use a randomized incremental construction with biased insertion order and dependent sampling. Recurse on the sample. Insert the remaining points: walk along the edges of NNG(P) and insert the points along the way.

Extensions and variants The reduction does not need any bit-manipulation and also works on a real RAM. If P is sorted in x- and y-direction, we can find a quadtree for it with an algebraic computation tree of depth O(n), so DT(P) can be found by an ACT of depth O(n). Fun fact: If P is sorted only in x-direction, there is a Ω(n log n) lower bound [DL95]. Similarly for 3d convex hulls [S84] (when sorted in any O(1) directions).

Potential of BrioDC? Can we find a faster algorithm for 3d convex hulls? Are there other applications of BrioDC?

Running Time (per point)

Running Time different parts (per point) 30 25 Tmie in microseconds 20 15 10 5 Rest NNG WSPD Quadtree 0 2^15 2^16 2^17 2^18 2^19 2^20 2^21 2^22 Input size n

More space-filling curve type orders

Delaunay triangulation - Deletions Insert point q Find simplices in conflict Connect boundary to q Delete point q Find incident simplices Retriangulate cavity Insertion Deletion

Outline Incremental Construction using Guides con BRIO Brio with dependent choices experiments Deletion in 3d Delaunay triangulations using Guides guided randomized reinsertions the Star Delaunay triangulation [Schrijvers 12] [Schrijvers, B, Devillers, Mulzer, Shewchuk] experiments

Related work Method Time (2D) 2D? 3D? Boundary completion O(d 2 ) Flipping O(d 2 ) Ear queue O(d log d) Low degree optimization Triangulate and sew O(d log d) Guided randomized reinsertion O(d) d = degree of deleted vertex

Triangulate and Sew Indicent simplices Outer simplices Incident vertices Inner simplices We improve this part Triangulate 1. Use boundary info 2. Only create interior

Analysis of Triangulate and Sew Running time O(d log d + C(P)) d = degree of deleted vertex Point location O(d log d) Structural cost C(P) Use boundary for point location Only create interior O( d ) C*(P)

Approach Aim at 3D implementation 2D implementation is already fast (insert ~5.8 ms, delete ~2.5 ms) 3D implementation slow (insert ~25 ms, delete ~106 ms) Combine 3D triangulate and sew with guided reinsertion CGAL 3D deletions 1. Delete cells incident to q 2. Create the complete DT of incident vertices from scratch 3. Match edges and sew triangles Use the current incidence information to jumpstart point location Build only the triangles on the inside of the cavity

Algorithm Overview Goal: Use the current incidence information to jumpstart point location Deconstruct cavity triangulation point-per-point Store incidence information Small enough create simplex Reconstruct using incidence information

Algorithm Overview Example Delete p 5 Delete p 4 Store p 1 as guide Store p 2 as guide Create simplex Insert p 5 Insert p 4 Use p 1 as guide Use p 2 as guide

The inevitable question So, to delete 1 vertex, you delete all incident vertices first. How can this be fast(er)? Answer: Use lower-dimensional deletions.

Surface Delaunay triangulation DT - (Q i ) Every simplex has q as vertex Incident vertices form lower-dimensional Delaunay-like triangulation Perform Delaunay deletion algorithm on the surface only

Surface Delaunay triangulation DT - (Q i ) p' 3 p' 5 p' 2 p' 1 p' 4

Surface Delaunay triangulation DT - (Q i ) p' 3 p' 5 p' 2 p' 1 p' 4

Surface Delaunay triangulation DT - (Q i ) In 3D, the surface is a 2-dimensional triangulation. In 3D: Theorem. For a vertex p i that is random or has constant expected degree, STARDTDELETE runs in O(1) time. Point location time is dependent on sampling We return to that later

Reminder: Approach CGAL 3D deletions 1. Delete cells incident to q 2. Create the complete DT of incident vertices from scratch 3. Match edges and sew triangles Use the current adjacency information to jumpstart point location Build only the triangles on the inside of the cavity

Star Delaunay triangulation DT*(P i ) Generate DT for incident vertices

Star Delaunay triangulation Approach: Change local conflict definition Run normal insertion algorithm Difficulties: Handle when q is on the Convex Hull Correctness proof requires large case distinction

Reminder: Approach CGAL 3D deletions 1. Delete cells incident to q 2. Create the complete DT of incident vertices from scratch 3. Match edges and sew triangles Use the current adjacency information to jumpstart point location Build only the triangles on the inside of the cavity Design algorithm for sampling / selecting guiding points

An O(C*(P))-time algorithm Sample point uniformly at random, triangle as guide + hashing Delete(P i, DT - (P i q), q) 1. If Pi = 4, create DT - (P i ), triangle hashtable directly 2. Sample random point p i 3. Remove from DT - (P i q) to get DT - (P i-1 q) 4. Pick newly created triangle t from DT - (P i-1 q) 5. DT*(P i-1 ) Delete(P i-1, DT - (P i-1 q), q) 6. Insert p i in DT*(P i-1 ) using t 7. Store new boundary triangles in hash table O(1) O(1) O(1) O(1) T(d-1) O(C*(p i )) O(1) So T(d) = O(1 + C*(p i )) + T(d-1) = O(d + C*(P)) = O(C*(P)).

Recapitulation Strong theoretical result Improved point location time Improved structural complexity What about practice? Experimentation

Implementations Guided Randomized Reinsertion Sample random point (deg < 8), save neighborhood, take lowest degree neighbor Sample random edge (deg < 16) Sample random point (deg < 8), triangle as guide + hashing Brio Bounded-degree spanning tree CGAL Triangulate and Sew Points in order Randomized Misc Only edge as guide, no Star DT Only Star DT, no guide

Experimental Setup Distributions 3D instances of 2D synthetic distributions Stanford surface data Moment curve Helix Measures Running time Geometric tests 2D and 3D Number of simplices Created / destroyed

Running time

C(P) vs. C*(P) low degree C(P) C*(P)

C(P) vs. C*(P) high degree C(P) C*(P)

Guide Running Time

Conclusion BRIO is powerful and fast tool to allow guides BrioDC is even more powerful; faster implementation? more applications? Guides help also for 3d deletions (for high degree) analysis for low-degree sampling strategies? Thanks to Frits van Bommel, Olivier Devillers, Wolfgang Mulzer, Jonathan Shewshuk and Okke Schrijvers

Thank You