9/2/08: Introduction to the course requirements, prerequisites, etc.
I used a laptop to present the SLIDES, with overview, Java applets, etc Background for the course:
(a). basic analytic geometry: vectors, dot product, cross product
(b). discrete math (e.g., AMS301) material: counting, recursion, graphs
(c). algorithms: big-Oh notation (O(f(n)), Omega(F(n))), reading code (C,C++,Java) and pseudo-code, knowing that SORTING can be done in O(n log n) time (e.g., by divide-and-conquer), and this is "best possible".
Applications discussed briefly:
(1) Post Office Problem ("Voronoi diagram", "point location search"): Find the closest post office to a query point q. Naive method is O(n), but CG method allows queries in O(log n), after spending O(n log n) time to build the Voronoi diagram.
(2) Shortest Path Problem (from robotics): Find a shortest path for a point robot among a set of polygonal obstacles. The path must lie on the "visibility graph", since it will be a "taut string" path.
(3) Visibility: Given a view point among a set of objects (e.g., polygons, polyhedra), compute what is scene. Hidden surface elimination.
(4) Triangulation: Decompose a simple polygon into triangles. Mention that it is possible in time O(n) (by Chazelle's algorithm), but we will learn an O(n log n) method. In practice, best method is the software system "FIST", developed by Martin Held at Stony Brook.
(5) Line Segment Intersection: Given n segments in the plane, how can we tell if there are any crossings? Naive method is O(n^2). CG methods give O(n log n), which is best possible in general. We may also be interested in REPORTING all crossings; we will give efficient "output-sensitive algorithms" for this. In practice, there are methods based on simple bucketing, hierarchies, etc.
(6) Sensor/Camera Placement ("Guarding"): Determine the best places to place cameras/sensors/guards in a polygon to be able to see all of it.
(7) Convex Hulls: Given n point in d dimensions, compute their convex hull. This will be Chapter 1 material.