CS507A: Computational Geometry - Projects
The Web project involves
publishing a tutorial introduction to a simple idea and is
divided into two parts: the HTML document
(counts for 12%) and the interactive Java applet
(counts for 20%). Both the HTML document and the Java applet
are due December 3rd and the entire finished project
must be installed in the Computational Geometry Laboratory
by that date.
For a better idea of what is expected,, take a look at Godfried
Toussaint's previous years
projects.
The topic for your project is fairly open, but you should discuss it
with me. Your work should pertain to some basic concept or algorithm
in geometry and involve reading at least one research paper.
Your Projects:
- Detour: On a road, the detour between two points is the
ratio between the distance to drive along the road, and the straight
line distance. How can you find the two points that have the largest
detour? (Chosen by Olivier Duguay)
- Primal-dual transforms: We will see later in class several
simple methods to transform a problem on lines into a problem on
points and vice-versa. These methods offer some fascinating insights
into many problems in geometry.(chosen by Chris Elliott)
- Randomized incremental trapezoidation: how to decompose the
plane into trapezoids. (Chosen by Jukka Olavi Kaartinen)
- Computational Origami (chosen by Christian Lavoie).
- From ranking to selection:If we have an algorithm that
solves a ranking problem (how many statues are smaller than this
one?), it is often possible to solve the associated selection problem
(which is the k-th smallest statue?) with about the same speed. This
project will explore techniques to do this. (Chosen by Thomas Lemaire)
- Area and Volume:How to quickly compute areas and volumes.
(chosen by Lianzhen Luo)
- Ham-sandwich and other cuts (chosen by Danielle MacNevin).
- Linear programming algorithms in geometry
(chosen by Conor Meagher)
- Hausdorff and Frechet distances:To evaluate how two roads
differ, you can do several things. You could drive on one of the
roads, and at every point find the distance to the closest point on
the other road. The largest distance observed is the Hausdorff
distance. You could also drive with two cars, one on each road, trying
to synchronize the speeds cleverly, and record at every point the
distance between the two cars. This is the Frechet distance. How to
compute them, and how do they compare? (chosen by Stéphane Pelletier)
- Enumerating triangulations (chosen by Ajit Rajwade)
- Kirkpatrick's Point location data structure: data structure
that decides where you are on a map. (Chosen by Paul Sandulescu)
- Voronoi diagram algorithms and variants (chosen by Tomislav
Vrljicak)
Unselected topics
- From decision to optimization:If we have an algorithm that
solves a decision problem (can we fit this statue into a box of size x?),
it is often possible to solve the associated optimization problem
(what is the smallest box that will fit the statue?) with about the
same speed. This project will explore techniques to do this.
- Red-blue line segment intersection:given blue and red
segments in the plane, find all the intersections that involve a blue
and a red segment.
- Degree of operations:To decide if a point is to the right
of another, you have to decide a linear inequality. To decide if a
point is above a line, you have to decide a quadratic inequality. In
general, what is the degree of the polynomials you have to decide to
do some given task?
- Robust regression methods:Given points on the plane, find a
line that is "close" to the points. Some definitions of close are
robust, that is, if you perturb a few data points, even by a lot, the
line doesn't move too far.