CS583 - Computational Geometry



  F a l l 2 0 0 5





Prof. Isaac Cohen
Phone: 213- 740 6434
Email: icohen@usc.edu
Lecture: 2:00-3:20PM. TTh at SOS B47
Office hours: 4:00-5:00PM. TTh (and by appointment)
Office location: PHE218



Textbook (required)

  • Computational Geometry: Algorithms and Applications.
    M de Berg, M. van Kreveld, M. Overmars and O. Schwarzkopf.
    Second edition.
    Springer Verlag




  • CS 303 "Design and Analysis of Algorithms"
  • Good programming skills. Ability to convert informal descriptions into computer algorithms. Students must be able to program in C++.



Course Objective

The objective of this course is to provide basic and advanced study of algorithms and data structures that are particularly suitable for solving problems of geometric nature. The course will introduce basic tools and algorithms and address fundamental problems such as convex hulls, polygon triangulation, range search, Voronoi diagrams, Delaunay triangulations...
Theoretical aspects will be covered during the lectures. Homework and programming assignments will cover some extensions and provide some hands-on experience.



Course Requirement

There will be two exams:

  • A midterm exam, during approximately 7-9 week of the term.
  • An "end-term" exam on the last day of the class.

Each exam will count for about 30% of the course grade. The rest of the grade will be determined by the written and programming assignments. All assignments are considered an integral part of the course and MUST be completed. Not completing assignments will automatically result in a grade of "F".



Academic Integrity

The USC Student Conduct Code prohibits plagiarism. All USC students are responsible for reading and following the Student Conduct Code, which appears on pp. 83-97 of the 1997-1998 SCampus.

In this course we encourage students to study together. This includes discussing general strategies to be used on individual assignments. However, all work submitted for the class is to be done individually, unless an assignment specifies otherwise.

Some examples of what is not allowed by the conduct code: copying all or part of someone else's work, and submitting it as your own; giving another student in the class a copy of your assignment solution; consulting with another student during an exam. If you have questions about what is allowed, please discuss it with the instructor.

Violations of the Student Conduct Code will be filed with the Office of Student Conduct, and appropriate sanctions will be given.



Course Outline

  • Introduction
    • Basic Concepts
  • Line segments intersection
    • Plane Sweep algorithm
    • Euler's Formula: Graphs, Graphs connectivity, Graph embedding, Planar Graph, Geoemetric Dual Graphs
  • Polygons and Triangulations
    • Art Gallery problem,
    • Polygon triangulation,
    • Monotone partitionning
  • Linear Programming
    • The geometry analogy
    • Randomized incremental algorithm
    • Examples
  • Range Search
    • Range search and count
    • Canonical subsets
    • K-d trees
    • Orthogonal range trees
  • Point Location
    • Trapezoidal maps
    • Incremental randomization construction of trapezoidal maps
    • The Directed Acyclic Graph
  • Voronoi Diagrams
    • Definition, use and characteristics
    • Fortune's algorithm
  • Delaunay triangulation
    • Delaunay graph
    • Duality with Voronoi Diagram
    • Randomized incremental algorithm
    • Relation with convex hulls
  • Arrangements and Duality
    • Line arrangements
    • Duality and applications
  • Motion planing and Visibility Graphs
    • Minkowski sums
    • Mapping obstacles in configuration space
    • Point and polygon robot motion
    • Visibility graphs