18.04.2013 Views

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Voronoi Diagrams<br />

McDonald's, the time it takes to get there depends upon where the major roads are. Efficient<br />

algorithms are known for constructing Voronoi diagrams under a variety of different metrics, and<br />

for curved or constrained objects.<br />

● Power diagrams - <strong>The</strong>se structures decompose space into regions of influence around the sites,<br />

where the sites are no longer constrained to have all the same power. Imagine a map of the<br />

listening range of a set of radio stations operating at a given frequency. <strong>The</strong> region of influence<br />

around a station depends both on the power of its transmitter and the position of neighboring<br />

transmitters.<br />

● kth-order and furthest-site diagrams - <strong>The</strong> idea of decomposing space into regions sharing some<br />

property can be taken beyond closest-point Voronoi diagrams. Any point within a single cell of<br />

the kth-order Voronoi diagram shares the same set of k closest points in S. In furthest-site<br />

diagrams, any point within a particular region shares the same furthest point in S. Point location<br />

(see Section ) on these structures permits fast retrieval of the appropriate points.<br />

Implementations: Steve Fortune is the author of a widely used 2D code for Voronoi diagrams and<br />

Delaunay triangulations, written in C. It is based on his own sweepline algorithm [For87] for Voronoi<br />

diagrams and is likely to be the right code to try first. It is available from Netlib (see Section ) at<br />

http://netlib.bell-labs.com/netlib/voronoi/index.html.<br />

LEDA (see Section ) provides an implementation of a randomized incremental construction algorithm<br />

for planar Voronoi diagrams in C++.<br />

Higher-dimensional and furthest-site Voronoi diagrams can be constructed as a special case of higherdimensional<br />

convex hulls. Qhull [BDH97] appears to be the convex hull code of choice in three<br />

dimensions and beyond. It is written in C, and it can also construct Delaunay triangulations and halfspace<br />

intersections. Qhull has been widely used in scientific applications and has a well-maintained<br />

home page at http://www.geom.umn.edu/software/qhull/.<br />

<strong>The</strong> Stanford GraphBase (see Section ) contains an implementation of a randomized incremental<br />

algorithm to construct Voronoi diagrams and Delaunay triangulations for use as a generator of planar<br />

graph instances.<br />

<strong>Algorithm</strong> 558 [Che80] of the Collected <strong>Algorithm</strong>s of the ACM is a Fortran code for the multifacility<br />

location problem. It is based on a network flow approach, instead of using Voronoi diagrams.<br />

Interestingly, the network flow code is taken from Nijenhuis and Wilf (see Section ). See Section .<br />

Notes: Voronoi diagrams were studied by Dirichlet in 1850 and are occasionally referred to as Dirichlet<br />

tessellations. <strong>The</strong>y are named after G. Voronoi, who discussed them in a 1908 paper. In mathematics,<br />

concepts get named after the last person to discover them.<br />

file:///E|/BOOK/BOOK4/NODE187.HTM (3 of 4) [19/1/2003 1:31:41]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!