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 circle.

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.)
Intersections 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)

Software Demo
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.

Supplemental Notes:

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.

MUDS discussion
Many of the words we use today in technology originated in the book:
Neuromancer by William Gibson, Ace Books, NY 1984

Homework 5

1) 5.5.6[8] 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.
Mailto: dimacs-www@dimacs.rutgers.edu
Last modified: October 3, 1996