COMP-507A Computational Geometry - Fall 2006
Lecture Descriptions, Homework, and Play
Text Book: Computational
Geometry
in C by Joseph O'Rourke
"Geometry is a skill of the eyes and the
hands as well as the mind." - Jean Pedersen
Week: 1
-
2
-
3
-4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
Week 1 - Sept 5 and 7
Lecture 1
-
Introduce course
-
Smallest enclosing circle
-
Brute force algorithm
-
Models of computation
-
The straight-edge-and-compass computer
-
The tooth-pick computer
-
Rulers with few marks
-
Review projects
Problem Assignment 1 out -
"due" September
19
-
Constructing
a square with the Toothpick Computer
-
Measuring
distances
with rulers that have few marks
-
Circles
enclosing
polygons
-
Recognizing
if a (possibly crossing) polygon is convex (and simple) in linear time
Lecture 2
-
Review more projects
-
The Real RAM (ceiling and floor functions)
-
Define polygons (Jordan curve theorem)
-
Data structures for polygons (standard form)
-
Area of a triangle (of a polygon)
-
Point inclusion:
-
In a triangle
-
In a simple polygon
-
The plumb-line algorithm
-
Sidedness test
-
Segment intersection test
Reading Assignment
-
Text: 1.3 - Area of a polygon
-
Text: 1.5 - Segment intersection
-
Web: 1.6.1 - Notes on methods of proof
-
Web: 1.1.3 - A New Look at Euclid's Second Proposition (PostScript)
-
Web: 2.1 - Jordan curve theorem
Suggested Play
-
Web: 1.1.1 - Applet of Francois Labelle
Week 2 - Sept 12
and
14
Lecture 3
-
Discuss projects
-
Point inclusion continued
-
Query mode for simple polygons
-
Testing convexity
-
Of simple polygons
-
Of crossing polygons
Lecture 4
-
Two-ears theorem
-
Via induction
-
Via dual trees
-
Chvatal's art gallery theorem
-
Fisk's proof
Reading Assignment
-
Text: Chapter 1
-
Web: 3.1-3.3 - Testing the orientation and
convexity
of a polygon
-
Web: 4.2.1 - Ian Garton's tutorial on
polygon triangulation
Suggested Play
-
Web: 4.2.1 - Ian Garton's applets
Week 3 - Sept 19
and
21
Lecture 5:
-
Triangulating simple polygons
-
Via ear-cutting
-
Via diagonal insertion
-
Convex partitioning of simple polygons
-
A hierarchy of simple polygons
-
Walkable polygons
-
Street polygons
Lecture 6:
-
Polygonizations of point sets
-
Maximal vectors
-
Monotonic polygonizations
-
Star-shaped polygonizations
-
Onion polygonizations
Problem Assignment 2: "due"
October
10
-
Enclosing
a
convex polygon with a triangle
-
Midpoint
polygonization
of points
-
Visibility
in street-polygons and walkable-polygons
Reading Assignment
-
Text: Chapter 2 - Polygon partitioning
-
Web: 5.1.2 - Tutorial on art gallery theorem
-
Web: 6.1 - Polygonization tutorial
Suggested Play
-
Web: 5.1.2 - Thierry Dagnino's applet
-
Web: 6.1 - Polygonization applet
-
Web: 6.2 - Polygonization counter (applet)
Week 4 - Sept 26
and
Sept 28
Lecture 7
-
Diameter algorithms for convex polygons
-
Snyder-Tang algorithm
-
Two-coins algorithm
-
Multimodal functions
Lecture 8
-
Diameter via rotating calipers
-
Antipodal pairs
-
O(n) time for convex polygons
-
Convex hull algorithms for points in the plane
-
Rosenberg and Landgridge algorithm - O(n^3) time
-
The Jarvis march (gift wrapping) - O(hn)
Reading Assignment
-
Web: 7.1 - Mikowski metrics
-
Web: 7.1.1 - Distance
-
Web: 7.1.2 - Manhattan metric
-
Web: 7.5.1 - Diameter algorithms
-
Handout - Multimodality
-
Handout - Snyder-Tang algorithm
Suggested Play
-
Web: 7.1.2 - Taxicab metric applet
-
Web: 7.6.1 - Jaqueline Chen's tutorial on
width and
line fitting
-
Web: 7.7 - Rotating calipers
Week 5 - Oct 3
and
5
Lecture 9:
-
The Graham scan and star-shaped polygonizations
-
The 3-coins algorithm for polygons - O(n)
-
Star-shaped polygons
-
Monotone polygons
-
Weakly externally visible polygons
-
Lower bound by reduction from sorting
Lecture 10:
-
Triangulation of point sets via sorting and 3-coins algorithm
-
More convex hulls:
-
The Throw-Away Principle and O(n) expected time algorithms
-
Quickhull
-
Quickhull with medians
-
Sequential insertion (beneath-beyond)
-
With presorting in O(n log n) time
-
Without presorting and point inclusion testing in O(n log n) time
Reading Assignment
-
Text: Chapter 3 - Convex hulls in the plane
-
Web: 10.3.3 - A fast convex hull algorithm
(algorithm
of Akl and Toussaint)
Suggested Play
-
Web: 10.1 - Convex hull applet
-
Web: 7.7.1 - Rotating caliper page of
Hormoz Pirzadeh
Week 6 - Oct
10
and 12
Lecture 11:
First In-Class Exam - Examples ( 2000
2003)
Lecture
-
Movable separability of sets:
-
Sofa problems
-
Balls in space (Dawson's theorem)
-
Orthogonal boxes (Guibas-Yao theorem)
-
Convex polygons in 2 dimensions
Problem Assignment 3: "due"
October
24
-
Computing
the
diameter of a polygon
-
Computing
the
diameter of a set of points
-
Triangulations,
sorting and lower bounds
-
Convex
hulls
of polygons
Reading Assignment
-
Text: Chapter 4
-
Web: 7.5.1 - Diameter algorithms
-
Web: 10.4.1 - 3-coins algorithm
-
Handout: the Graham-Yao algorithm
-
Handout: Melkman's algorithm
Suggested Play
-
Web: 17.2 - Movable separability of objects
-
Web: 17.1 - Applet for the match-stick game
-
Web: 17.2.1 - Applet for separating
star-shaped polygons
-
Web: 7.7.1 - Rotating caliper page of
Hormoz Pirzadeh
-
Web: 7.5.1 - Diameter algorithm applet
-
Web: 10.4.1 - 3-coins algorithm applet
Week 7-Oct 17 and
19
Lecture 13:
-
Convex hulls continued:
-
Randomized sequential insertion
-
Divide and conquer:
-
With presorting
-
Without presorting and rotating-caliper merge
-
Sequential insertion (beneath-beyond)
-
In 3-dimensions in O(n^2) time
Lecture 14:
-
Convex hulls continued:
-
Output-sensitive convex hull algorithms:
-
Kirkpatrick-Seidel's ultimate algorithm
-
Timothy Chan's algorithm
-
Convex hulls of simple polygons:
-
O(n) time convex hulls of simple polygons
-
The Graham-Yao algorithm
-
Melkman's on-line algorithm
Reading Assignment
-
Web: 10.1.1.1.1 - Randomized incremental
convex hull
algorithm
-
Web: 10.1.1.7 - Kirkpatrick-Seidel ultimate
algorithm
-
Web: 10.1.6 - Timothy Chan's algorithm
Suggested Play: none this week
Week 8 - Oct 24
and
26
Lecture 15
-
Movable separability problems:
-
Convex polyhedra 3 dimensions
-
The width of a set (definition)
-
Passing a chair through a door (Strang's theorem)
-
O(n) algorithm for computing the width of a convex polygon
-
Separating star-shaped polygons and
polyhedra
-
Dawson's theorem
Lecture 16
-
Movable separability problems:
-
Separating monotone polygons
-
Separating two simple polygons
-
Dual-tree of a triangulated polygon
-
Shortest paths inside polygons
-
Relative (geodesic) convex hulls
Week 9 - Oct 31
and
Nov 2
Lecture 17
-
Intersectig convex polygons:
-
Slab method of Shamos & Hoey
-
Via rotating caliper method and
sail-polygons
-
Divide & Conquer algorithm for
intersecting half-planes
Lecture 18
-
Introduction to Voronoi diagrams
-
Proximity graphs(properties)
-
Nearest neighbor graphs
-
Minimum spanning trees
-
Relative neighborhood graphs
-
Gabriel graphs
-
Delaunay triangulations
-
NNG-MST-RNG-GG-DT relationships
-
Computing proximity graphs
-
Proximity graphs via local search of the
Delaunay
triangulation
-
Relative neighborhood graph algorithms
and counter
examples
-
Bucketing methods
Reading Assignment
-
Text: 5 - Voronoi diagrams and applications
-
Web: 14.3 - The relative neighborhood graph
-
Web: 14.9 - Proximity graphs (including a
survey
paper)
Suggested Play
-
Web: 14.1 - Minimal spanning tree applet
-
Web: 14.6.1 - Fantastic applet for Voronoi
diagrams
and Delaunay triangulations
Week 10 - Nov 7
and
9
Lecture 19
-
Alpha-hulls and alpha-shapes
-
Sphere-of-influence graph
-
Nearest and furthest-point Voronoi diagrams
-
Flipping algorithm for the Delaunay
triangulation
-
Voronoi diagram algorithms
-
Via half-plane intersections in O(n^2
log n) time
-
Proof that the nearest neighbor is a
Voronoi neighbor
-
Voronoi diagram algorithms - cont.
-
Rhynsberger's algorithm - O(n^2)
-
Voronoi diagrams in 2D via convex hulls
in 3D by
lifting points to paraboloid
-
Voronoi diagram algorithm via divide and
conquer
- O(n log n)
-
Properties of furthest-point Voronoi
diagrams
-
The smallest enclosing circle in O(n log
n) time
via furthest-point Voronoi diagrams
Lecture 20
-
Linear programming in linear time in the
plane (Meggido's
algorithm)
-
Efficient polygon triangulation.
-
Sleeve searching algorithm in O(n(1+t))
time where
t is the number of vertices of degree 3 in the dual tree of the
triangulation
delivered.
Handling degeneracies
-
Computing nice viewpoints of objects in space
-
Regular projections in knot theory
-
Wirtinger projections in computer vision
-
Visualization in computer graphics
-
Handling degeneracies in computational geometry
-
No two points on a vertical line (2 and 3 dimensions)
-
Decision problem
-
Computation problem
-
Optimization problem
-
Largest gap problem
-
Gonzales' algorithm with floor functions and pigeonhole principle
Reading Assignment
-
Handout: Meggido's algorithm
-
Handout: Sleeve searching polygon
triangulation algorithm
-
Web: 18.7 - Removing extrinsic degeneracies
in computational
geometry
-
Web: 18.8 - Computing nice viewpoints of
objects
in space
-
Web: 14.9 - Proximity graphs (including a
survey
paper)
-
Text: Chapter 4 - Convex hulls in 3
dimensions
-
Web: 14.3 - Relative neighborhood graph
-
Web: 14.8 - Sphere-of-influence graph
tutorial (Richard
Unger)
Suggested Play
-
Web: 14.8 - Sphere-of-influence graph applet
Week 11 - Nov 14
and
16
Lecture 21: Second
Midterm Exam (Examples of previous exams:)
Lecture 22: Student
Presentations
Week 12 - Nov 21 and 23
Lecture 23:
Student
Presentations
Lecture 24: Student
Presentations and
Course
Evaluations
Week 13 - Nov 28 and 30
Lecture 25: Student Presentations
Week 14 - Dec 5
Lecture 25: Student
Presentations