Title: IOEfficient Construction of Constrained Delaunay Triangulations
1I/O-Efficient Construction of Constrained
Delaunay Triangulations
- Pankaj K. Agarwal, Lars Arge, and Ke Yi
- Duke University
2DT vs. Constrained DT
Delaunay Triangulation
Constrained Delaunay Triangulation As much
Delaunay as possible while keeping the
constrained edges
3Constrained DT Definition
- A set of points P
- A set of non-intersecting obstacle segments S
with endpoints in P - CDT(P,S) consists of all segments in S and all
edges connecting pairs of points p,q of P such
that - (1) p and q can see each other, and
- (2) there exists a circle passing through p and
q, that contains only points of P that cannot see
both p and q
p
q
A valid edge in DT
p
q
A valid edge in CDT
4Constrained DT Definition (2)
- A set of points P
- A set of non-intersecting obstacle segments 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 each other or
are connected by a segment of S - (2) their circumcircle contains only points that
cannot see the interior of pqr.
r
p
q
A valid triangle in DT
r
p
q
A valid triangle in CDT
5I/O Model
CPU
N elements Scan O(N/B) I/Os (linear) Sort
O(N/B logMN) I/Os
Main memory M
Disk size B
Disk
6Previous Results
- Internal memory algorithms
- DT many algorithms Aurenhammer and Klein,
practical - CDT Chew 1987, Wang and Schubert 1987, runs
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
7Our Results
- The first external memory algorithm for building
the constrained Delaunay triangulation - Runs in expected O(N/B logMN) I/Os when segments
lt M - Implementation
8Algorithm
- 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
9Algorithm
- 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
10Analysis
- Lemma Expected size of each conflict list
O(N/M) - Following Clarkson and Shor framework
- Difference Only a constant fraction of the
samples are random - O(logMN) levels of recursion
- Total O(N/B logMN)
11Kernels
Kernel
12Assemble Results Together
Kernel
- Lemma 1 A triangle is a valid triangle of
CDT(P,S) iff its circumcenter lies inside the
kernel
13Assemble Results Together
Kernel
- Lemma 2 The circumcenter of each triangle of
CDT(P,S) lies inside exactly one kernel
14Implementation Experiments
- Using TPIE
- Compared with Shewchuks Triangle program
- Incremental construction
- Delete all edges intersected by s
- Retriangulate two polygons on both sides of s
- Pre-sort points and segments along some space
filling curve (Hilbert curve)
15Experiment Uniform Data
10 million points Varying segments Ave segment
length 0.003 Memory 128M
16Experiment Segment Length
10 million points 10,000 segments Varying
segment length Memory 128M
17Experiments Real World Data
points LIDAR points from the Neuse River Basin
Segments TIGER roaddata Largest dataset 0.5
billion points, 1 million segment
(input file 80GB)
18Experiments Real World Data
7.5 hours
Couldnt run internalalgorithm
16M 28M 44M 59M 91M 116M 163M 257M 503M
19Open Questions
- External memory algorithms for arbitrary
segments - Analysis of the (internal memory) randomized
incremental algorithm - O(n log2 n)
- O(n log n)
20Thank you!
21Extending the Plane
Secondary sheet
Primary sheet
Seidel, 1989
22Extending the Plane
Secondary sheets
Primary sheet
Seidel, 1989
23Traveling Rule
x
Secondary sheets
z
y
Primary sheet
Seidel, 1989
24Extended Voronoi Diagram
Secondary sheets
Primary sheet
p
Seidel, 1989
25Extended Voronoi Diagram
Secondary sheets
Primary sheet
CDT(P,S) is dual to EVD(P,S)
Seidel, 1989
26Kernels
Secondary sheets
Primary sheet