Here's a simple example of the type of problem this project will be concerned with. We want to label points on a maps, subject to the conditions that no pair of labels overlaps, and no label covers a point. The objective is to minimize the total distance of labels from their associated points. This problem is already quite hard, but can be solved exactly (at least for small cases) by branch-and-bound methods. These methods are well worth learning about for their own sake. This project will start by producing a good program for this problem, making it as fast as possible, and then move on to other optimization problems with a geometric flavour. It would be nice to develop a uniform description of problem types and solution methods.