Download - I/O-Efficient Construction of Constrained Delaunay Triangulations

Transcript
Page 1: I/O-Efficient Construction of Constrained Delaunay Triangulations

I/O-Efficient Construction of Constrained Delaunay Triangulations

Pankaj K. Agarwal, Lars Arge, and Ke Yi

Duke University

Page 2: I/O-Efficient Construction of Constrained Delaunay Triangulations

DT vs. Constrained DT

Delaunay Triangulation Constrained Delaunay Triangulation

As much “Delaunay” as possible while keeping the constrained edges

Page 3: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 4: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 5: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 6: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 7: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 8: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 9: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 10: I/O-Efficient Construction of Constrained Delaunay Triangulations

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)

Page 11: I/O-Efficient Construction of Constrained Delaunay Triangulations

Kernels

Kernel

Page 12: I/O-Efficient Construction of Constrained Delaunay Triangulations

Assemble Results Together

Lemma 1: A triangle is a valid triangle of CDT(P,S) iff its circumcenter lies inside the kernel

Kernel

Page 13: I/O-Efficient Construction of Constrained Delaunay Triangulations

Assemble Results Together

Lemma 2: The circumcenter of each triangle of CDT(P,S) lies inside exactly one kernel

Kernel

Page 14: I/O-Efficient Construction of Constrained Delaunay Triangulations

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)

Page 15: I/O-Efficient Construction of Constrained Delaunay Triangulations

Experiment: Uniform Data

10 million points

Varying #segments

Ave segment length = 0.003

Memory: 128M

Page 16: I/O-Efficient Construction of Constrained Delaunay Triangulations

Experiment: Segment Length

10 million points

10,000 segments

Varying segment length

Memory: 128M

Page 17: I/O-Efficient Construction of Constrained Delaunay Triangulations

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

Page 18: I/O-Efficient Construction of Constrained Delaunay Triangulations

Experiments: Real World Data

16M 28M 44M 59M 91M 116M 163M 257M 503M

Couldn’t run internalalgorithm

7.5 hours

Page 19: I/O-Efficient Construction of Constrained Delaunay Triangulations

Open Questions

External memory algorithms for arbitrary #segments

Analysis of the (internal memory) randomized incremental algorithmO(n log2 n)Ω(n log n)

Page 20: I/O-Efficient Construction of Constrained Delaunay Triangulations

Thank you!

Page 21: I/O-Efficient Construction of Constrained Delaunay Triangulations

Extending the Plane

[Seidel, 1989]

Primary sheet

Secondary sheet

Page 22: I/O-Efficient Construction of Constrained Delaunay Triangulations

Extending the Plane

[Seidel, 1989]

Primary sheet

Secondary sheets

Page 23: I/O-Efficient Construction of Constrained Delaunay Triangulations

Traveling Rule

[Seidel, 1989]

Primary sheet

Secondary sheetsx

y

z

Page 24: I/O-Efficient Construction of Constrained Delaunay Triangulations

Extended Voronoi Diagram

[Seidel, 1989]

Primary sheet

Secondary sheets

p

Page 25: I/O-Efficient Construction of Constrained Delaunay Triangulations

Extended Voronoi Diagram

CDT(P,S) is dual to EVD(P,S) [Seidel, 1989]

Primary sheet

Secondary sheets

Page 26: I/O-Efficient Construction of Constrained Delaunay Triangulations

Kernels

Primary sheet

Secondary sheets