Post on 05-Jan-2016
description
I/O-Efficient Construction of Constrained Delaunay Triangulations
Pankaj K. Agarwal, Lars Arge, and Ke Yi
Duke University
DT vs. Constrained DT
Delaunay Triangulation Constrained Delaunay Triangulation
As much “Delaunay” as possible while keeping the constrained edges
Constrained DT: Definition
A valid edge in DT
A valid edge in CDT
A set of points: P A set of non-intersecting obstacle s
egments S with endpoints in P CDT(P,S) consists of all segments i
n S and all edges connecting pairs of points p,q of P such that(1) p and q can see each other, an
d (2) there exists a circle passing thr
ough p and q, that contains only points of P that cannot see both p and q
p q
p q
Constrained DT: Definition (2)
A valid triangle in DT
A valid triangle in CDT
A set of points: P A set of non-intersecting obstacle s
egments S with endpoints in P Or equivalently, CDT(P,S) consists
of all triangles pqr such that(1) any two of p, q, and r can see e
ach other or are connected by a segment of S;
(2) their circumcircle contains only points that cannot see the interior of pqr.
p q
p q
r
r
I/O Model
Main memory: M
CPU
Disk
Disk size = B
N elements
Scan: O(N/B) I/Os (linear)Sort: O(N/B logMN) I/Os
Previous Results
Internal memory algorithms DT: many algorithms [Aurenhammer and Klein], pra
ctical CDT: [Chew 1987], [Wang and Schubert 1987], run
s in O(N log N) time but impractical; Use incremental construction in practice
External memory algorithms DT: [Crauser et al. 2001] runs in expected
O(N/B logMN) I/Os CDT: not known
Our Results
The first external memory algorithm for building the constrained Delaunay triangulation
Runs in expected O(N/B logMN) I/Os when #segments < M
Implementation
Algorithm
① Take a sample R of size M including all segment endpoints
② Build CDT(R,S)③ Construct the
conflict list of each edge of CDT(R,S)
The conflict list of an edge e consists of all points in two adjacent circumcircles and visible from e
Algorithm
④ Build CDT of each conflict list (recurse if still too large to fit in memory)
⑤ Assemble results together (discussed later)
Linear I/Os (in the total size of conflict lists)if ignore recursion
Analysis
Lemma: Expected size of each conflict list = O(N/M)Following Clarkson and Shor frameworkDifference: Only a constant fraction of the
samples are random
O(logMN) levels of recursion
Total: O(N/B logMN)
Kernels
Kernel
Assemble Results Together
Lemma 1: A triangle is a valid triangle of CDT(P,S) iff its circumcenter lies inside the kernel
Kernel
Assemble Results Together
Lemma 2: The circumcenter of each triangle of CDT(P,S) lies inside exactly one kernel
Kernel
Implementation & Experiments
Using TPIECompared with Shewchuk’s Triangle
program Incremental construction
Delete all edges intersected by sRetriangulate two polygons on both sides of s
Pre-sort points and segments along some space filling curve (Hilbert curve)
Experiment: Uniform Data
10 million points
Varying #segments
Ave segment length = 0.003
Memory: 128M
Experiment: Segment Length
10 million points
10,000 segments
Varying segment length
Memory: 128M
Experiments: Real World Data
Segments: TIGER roaddata
Largest dataset: 0.5 billion points, 1 million segment (input file: 80GB)
points: LIDAR points fromthe Neuse River Basin
Experiments: Real World Data
16M 28M 44M 59M 91M 116M 163M 257M 503M
Couldn’t run internalalgorithm
7.5 hours
Open Questions
External memory algorithms for arbitrary #segments
Analysis of the (internal memory) randomized incremental algorithmO(n log2 n)Ω(n log n)
Thank you!
Extending the Plane
[Seidel, 1989]
Primary sheet
Secondary sheet
Extending the Plane
[Seidel, 1989]
Primary sheet
Secondary sheets
Traveling Rule
[Seidel, 1989]
Primary sheet
Secondary sheetsx
y
z
Extended Voronoi Diagram
[Seidel, 1989]
Primary sheet
Secondary sheets
p
Extended Voronoi Diagram
CDT(P,S) is dual to EVD(P,S) [Seidel, 1989]
Primary sheet
Secondary sheets
Kernels
Primary sheet
Secondary sheets