CMSC 754 Computational Geometry1
Total Page:16
File Type:pdf, Size:1020Kb
CMSC 754 Computational Geometry1 David M. Mount Department of Computer Science University of Maryland Spring 2007 1 Copyright, David M. Mount, 2007, Dept. of Computer Science, University of Maryland, College Park, MD, 20742. These lecture notes were prepared by David Mount for the course CMSC 754, Computational Geometry, at the University of Maryland. Permission to use, copy, modify, and distribute these notes for educational purposes and without fee is hereby granted, provided that this copyright notice appear in all copies. Computational Geometry Notes Introduction 1 Introduction to Computational Geometry What is Computational Geometry? Computational geometry is a term claimed by a number of different groups. The term was coined perhaps first by Marvin Minsky in his book “Perceptrons”, which was about pattern recognition, and it has also been used often to describe algorithms for manipulating curves and surfaces in solid modeling. Its most widely recognized use, however, is to describe the subfield of algorithm theory that involves the design and analysis of efficient algorithms for problems involving geometric input and output. The field of computational geometry developed rapidly in the late 70’s and through the 80’s and 90’s, and it still continues to develop. Historically, computational geometry developed as a generalization of the study of algorithms for sorting and searching in 1-dimensional space to problems involving multi-dimensional inputs. Because of its history, the field of computational geometry has focused mostly on problems in 2-dimensional space and to a lesser extent in 3-dimensional space. When problems are considered in multi-dimensional spaces, it is usually assumed that the dimension of the space is a small constant (say, 10 or lower). Nonetheless, recent work in this area has considered a limited set of problems in very high dimensional spaces. Because the field was developed by researchers whose training was in discrete algorithms (as opposed to numerical analysis) the field has also focused more on the discrete nature of geometric problems, as opposed to continuous issues. The field primarily deals with straight or flat objects (lines, line seg- ments, polygons, planes, and polyhedra) or simple curved objects such as circles. This is in contrast, say, to fields such as solid modeling, which focus on issues involving curves and surfaces and their representations. A Typical Problem in Computational Geometry: Here is an example of a typical problem, called the shortest path problem. Given a set polygonal obstacles in the plane, find the shortest obstacle-avoiding path from some given start point to a given goal point. Although it is possible to reduce this to a shortest path problem on a graph (called the visibility graph, which we will discuss later this semester), and then apply a nongeometric algorithm such as Dijkstra’s algorithm, it seems that by solving the problem in its geometric domain it should be possible to devise more efficient solutions. This is one of the main reasons for the growth of interest in geometric algorithms. s t s t Figure 1.1: Shortest path problem. The measure of the quality of an algorithm in computational geometry has traditionally been its asymptotic worst-case running time. Thus, an algorithm running in O(n) time is better than one running in O(n log n) time which is better than one running in O(n2) time. (This particular problem can be solved in O(n2 log n) time by a fairly simple algorithm, in O(n log n) by a relatively complex algorithm, and it can be approximated quite well by an algorithm whose running time is O(n log n).) In some cases average case running time is considered instead. However, for many types of geometric 1-1 Copyright 2010, David M. Mount Computational Geometry Notes Introduction inputs (this one for example) it is difficult to define input distributions that are both easy to analyze and representative of typical inputs. There are many fields of computer science that deal with solving problems of a geometric nature. These include computer graphics, computer vision and image processing, robotics, computer-aided design and manufacturing, computational fluid-dynamics, and geographic information systems, to name a few. One of the goals of computational geometry is to provide the basic geometric tools needed from which application areas can then build their programs. There has been significant progress made towards this goal, but it is still far from being fully realized. Strengths Computational Geometry: Development of Geometric Tools: Prior to computational geometry, there were many ad hoc solu- tions to geometric computational problems, some efficient, some inefficient, and some simply incorrect. Because of its emphasis of mathematical rigor, computational geometry has made great strides in establishing correct, provably efficient algorithmic solutions to many of these problems. Emphasis on Provable Efficiency: Prior to the development of computational geometry little was understood about the computational complexity of many geometric computations. For example, given an encoding of all the zip code regions in the USA, and given a latitude and longitude from a GPS device, how long should it take to compute the zip code associated with the location? How should the computation time depend on the amount of preprocessing time and space available? Computational geometry put such questions on the firm grounding of asymptotic complexity, and in some cases it has been possible to prove that algorithms discovered in this area are optimal solutions. Emphasis on Correctness/Robustness: Prior to the development of computational geometry, many of the software systems that were developed were troubled by bugs arising from the confluence of the continuous nature of geometry and the discrete nature of computation. For example, given two line segments in the plane, do they intersect? This problem is remarkably tricky to solve since two line segments may arise from many different configurations: lying on parallel lines, lying on the same line, touching end-to-end, touching as in a T-junction. Software that is based on discrete decisions involving millions of such intersection tests may very well fail if any one of these tests is computed erroneously. Computational geometry research has put the robust and correct computing of geometric primitives on a solid mathematical foundations. Linkage to Discrete Combinatorial Geometry: The study of new solutions to computational prob- lems has given rise to many new problems in the mathematical field of discrete combinatorial geometry. For example, consider a polygon bounded by n sides in the plane. Such a polygon might be thought of as the top-down view of the walls in an art gallery. As a function of n, how many “guarding points” suffice so that every point within the polygon can be seen by at least one of these guards. Such combinatorial questions can have profound implications on the complexity of algorithms. Limitations of Computational Geometry: Emphasis on discrete geometry: There are some fairly natural reasons why computational geom- etry may never fully address the needs of all these applications areas, and these limitations 1-2 Copyright 2010, David M. Mount Computational Geometry Notes Introduction should be understood before undertaking this course. One is the discrete nature of computa- tional geometry. There are many applications in which objects are of a very continuous nature: computational physics, computational fluid dynamics, motion planning. Emphasis on flat objects: Another limitation is the fact that computational geometry deals primarily with straight or flat objects. To a large extent, this is a consequence of CG’ers interest in discrete geometric complexity, as opposed to continuous mathematics. Another issues is that proving the correctness and efficiency of an algorithm is only possible when all the computations are well defined. Many computations on continuous objects (e.g., solving differential and integral equations) cannot guarantee that their results are correct nor that they converge in specified amount of time. Note that it is possible to approximate curved objects with piecewise planar polygons or polyhedra. This assumption has freed computational geometry to deal with the combinatorial elements of most of the problems, as opposed to dealing with numerical issues. Emphasis on low-dimensional spaces: One more limitation is that computational geometry has fo- cused primarily on 2-dimensional problems, and 3-dimensional problems to a limited extent. The nice thing about 2-dimensional problems is that they are easy to visualize and easy to un- derstand. But many of the daunting applications problems reside in 3-dimensional and higher dimensional spaces. Furthermore, issues related to topology are much cleaner in 2- and 3- dimensional spaces than in higher dimensional spaces. Overview of the Semester: Here are some of the topics that we will discuss this semester. Convex Hulls: Convexity is a very important geometric property. A geometric set is convex if for every two points in the set, the line segment joining them is also in the set. One of the first problems identified in the field of computational geometry is that of computing the smallest convex shape, called the convex hull, that encloses a set of points. Convex hull Polygon triangulation Figure 1.2: Convex hulls and polygon triangulation. Intersections: One of the most basic geometric problems is that of determining when two sets of objects intersect one another. Determining whether complex objects intersect often reduces to determining which individual pairs of primitive entities (e.g., line segments) intersect. We will discuss efficient algorithms for computing the intersections of a set of line segments. Triangulation and Partitioning: Triangulation is a catchword for the more general problem of sub- dividing a complex domain into a disjoint collection of “simple” objects. The simplest region into which one can decompose a planar object is a triangle (a tetrahedron in 3-d and simplex in general).