Lecture # 6
|Instructor: Scot Drysdale
||July 1, 1996
Back to DIMACS Lectures
Homework Review - page 178 #3 & 5
Clarification on #5 In the Voronoi diagram the average number of edges is the same
as the average degree in the Delaunay triangulation, which is 6. This means that
on average you have 6 or fewer neighbors to look at to find the nearest neighbor.
There are 3n - 6 green edges in the Delaunay triangulation. There are 2n - 4 vertices.
The average degree of a vertex in a Delaunay triangulation is the sum over all vertices
in the Delaunay triangulation of degree of v multiplied by 1/n. This is at most 1/n times the sum over all edges, where each endpoint is counted separately.
This is 1/n 2 (3n-6) = 6n/n - 12/n = 6 - 12/n.
Solution to # 3: Let B be the nearest neighbor of site A. Then there are no sites
within the circle centered at A passing through B. The midpoint of segment AB is
M. It is by definition equidistant from A and B, so will be on a boundary separating
their Voronoi regions unless some point C lies closer to M than A and B.
But there can be no such C. The circle with diameter AB is strictly inside of the
circle centered at A passing through B. There are no points inside the large circle, so there can be nothing inside the smaller
Pizza Parlor location problem (discussion continued from last period)
The only places where a new pizza parlor can be placed that might maximize the distance
to the nearest existing site are:
Voronoi vertices ( 2n - 4 = q(n) of them)
corners of boundary region. (Define this number to be b.)
between Voronoi edges
and county boundary
. q(n) if convex county boundary. If it is not convex then it is upper bounded by O(bn)
Voronoi - written at Dartmouth by Paul Chew.
Uses quick draw which is only for Mac, written in Pascal.
A Web version using Java applets is available at:
Incremental Algorithm basic idea is to add a point which creates a new region and
update. First find what region the new point is in. Pick a region and start walking
around the edges asking if you are on the correct side. When you find you are on
the wrong side then cross over to a new region. If you go all the way around then you have
found the correct region. This takes q( n) time on the average, but q(n) time in the worst case. Since the update is usually fast (expect to have at most
6 neighbors - see above), the search time is important. How can this be done?
If we could preprocess, we could do this search quickly.
Region search - Vertical lines placed through the Voronoi vertices (slide 1)
- use a binary search to place the point in a slab. Then using the edges ask above
or below. This method uses LOTS of memory, q(n2) space for n points. But the search can be done in 2log n time.
A method that works better for uniformly distributed points is: Grid bucketing- locate
points in a grid. For a new point, find a point in the grid square where it lies
or a nearby one, and use this point to start the search. This is actually a very
fast method. (Expected time q(n) for the whole Delaunay diagram.) (Note - in the worst case the incremental method
can take q(n2) time, because each new point may have to interact with all previous points. This
can happen when the points are on a spiral.
Geometers Sketch Pad Demo
Find what triangle you are in, connect the point to the the three vertices of the
triangle it is in. Put a circle through the 3 points that form the triangle to check
the edge. If there any points inside the circle you will need to remove the edge
and replace it with the other diagonal.
This process is known as the Guibas & Stolfi Algorithm.
Incremental in the worse case takes n log n time.
Divide and Conquer Method -
Start with a set
split the set in half, left and right
recursively check both sides
separate red and blue points
zipper method - red points stay on one side, blue on the other side of the line.
The line becomes part of the Voronoi diagram.
Proof by intimidation!
Take the convex hull of each side to find the place to start.
The time needed is n log n
The calculations needed are complex.
Guivas & Stolfi found an alternate way to do this using the dual of the Voronoi Diagram,
which is the Delaunay triangulation. Think of an infinite bubble coming up the purple
polygimal path, as it bumps into a Voronoi vertex it has an empty circle and then
creates an edge.
Let's Make A Deal - The Monty Hall Problem can be found on the web at:
even if you are familiar with this problem you should visit this site, it has my personal
stamp of approval.
Many of the words we use today in technology originated in the book:
by William Gibson, Ace Books, NY 1984
1) 5.5.6 p. 192
2) In class we saw a divide-and-conquer algorithm for computing the Voronoi diagram.
We computed a polygonal bisector curve that separated the points closer to some
site in the left half from those closer to some point in the right half. Is it possible
for this bisector curve to enter a Voronoi region through an edge and then leave the
region through the SAME edge? Give an example or explain why it cannot happen.
Last modified: October 3, 1996