### Project suggestions

Most of these suggestions are quite open-ended; narrowing and defining the scope of your project is an important aspect of developing your project proposal.

Some of these topics are broad enough to accommodate multiple projects; others will be allocated to the first proposal received.

This list was last updated on Tuesday, April 5.

• (Taken) Triangulating a simple polygon

Extending our discussion from class, report on methods with time complexity O(n log log n) or O(n log*n).

• Optimal convex decomposition

The problem is to insert diagonals to decompose a simple polygon into the minimal number of convex pieces. This problem came up in project 2. Explore it further and report on algorithms, lower and upper bounds for time complexity.

Our textbook briefly describes this query acceleration technique for range trees in section 5.6, though the technique is useful in other problems, too. Report on the general technique and describe at least two applications to computational geometry.

• (Taken) NP-hard and NP-complete problems in computational geometry

Survey some problems in computational geometry that are NP-hard or NP-complete. How does one show that they belong to these complexity classes? Are there efficient algorithms to construct approximate solutions?

• Illumination problem

An unsolved variant of the art gallery problem in which the goal is to illuminate a room using floodlights placed at the vertices. Unlike guards or security cameras, who we assume have 360° vision, the floodlights illuminate a sector of fixed angle θ < 180°. How many vertices are necessary, and how can one find such a set? Report on what is known about theoretical bounds and algorithms.

• (Taken) Linear Programming

Outline other approaches to the linear programming problem in any number of dimensions (e.g. the simplex algorithm, ellipsoid method, Karmarkar's method). Discuss the unsolved problem of finding a strongly polynomial-time algorithm.

• Graph Planarity

There are two related problems here:

• Given an abstract graph, determine whether it can be embedded in the plane (i.e. whether or not is is a planar graph).
• Given a graph that is known to be planar, find an embedding into the plane.

Kuratowski's theorem (planar is equivalent to having no K5 or K3,3 subgraph) gives a naive exponential-time algorithm for determining whether or not a given graph is planar. Discuss this and one of the more efficient (linear-time) algorithms for planarity testing. Do any of these methods allow one to construct an embedding?

• Triangulation in 3 dimensions

A polygon in R2 can be decomposed into triangles by adding only edges; new vertices are not necessary. For a polyhedron in R3, however, the corresponding statement is false; in general, decomposition into tetrahedra requires additional vertices. Why are these vertices sometimes necessary, and how many may be required? Give examples and discuss triangulation algorithms for polyhedra.

• Forced convex subsets

A finite set of points in the plane is in general position if no three of them are collinear. The forced convex subset problem asks for what values of n and k do there exist k points in general position such that no n of them form a convex n-gon. The full problem is unsolved, but there are upper and lower bounds on k in terms of n; for example, in 1978 Harborth showed that any set of 10 points in general position contains a convex pentagon. Discuss such progress and the underlying methods.

• Random polygons

The problem of generating random polygons was raised in project 2. Explore the issue further by studying other methods for generating random polygons (in the sense discussed in the project) or related problems, such as:

• Given a set of points in the plane, how can one generate a random polygon whose vertices lie in this set?
• Given a set of n points in the plane, how can one determine how many simple n-gons can be formed from this set? How would you generate a random element of the set efficiently?
Discuss what is known about the computational complexity of the problem itself, and the running time of existing algorithms.

• Point location

Our discussion of the point location problem is based on trapezoidal decomposition, but there are several other approaches that have similar construction and query cost (O(n) space, O(n log n) construction time, O(log n) expected query time). Explain some of these other methods and compare them to the trapzoidal decomposition. Consider issues such as complexity of the construction and query algorithms and expected vs. worst-case analysis.

• Plane sweep for trapezoidal decomposition

In class we discussed a randomized incremental approach to building a search structure for the trapezoidal decomposition of a planar subdivision. It is also possible to build the adjacency graph and search structure using a deterministic plane sweep (similar to the one discussed in Chapter 2). Report on this method, giving details of the construction algorithm and analyzing the worst-case construction cost (in time and space). Consider the characteristics of subdivisions that arise in some applications (e.g. GIS) and compare the randomized and plane-sweep approaches for such maps.

• Voronoi for other metrics

A variant of the Voronoi decomposition of the plane relative to a set of points can be constructed using a distance function (or metric) other than the standard Euclidean distance. Discuss some of the distance functions that arise naturally in applictaions and techniques to compute these Voronoi diagrams.

• Voronoi in higher dimensions

Discuss an algorithm to compute the Voronoi diagram in Rd with time complexity O(n⌈d/2⌉).