1/21 |
Introduction.
Finding 3 collinear points. Finding the closest pair of points. Reading: CLRS 33.4 |
1/23 | Finding the closest pair of points.
Geometric primitives (area of a triangle, orientation, segment intersection). Homework 1 Reading: OR 1.3-1.5 |
1/28 | Finish: primitives for segment intersection.
Finding fixed-radius near neighbors. Reading: David Mount notes L2 |
1/30 | Finish: Finding fixed-radius near neighbors.
Convex hull in 2D: naive, gift wrapping and quickhull algorithms. Reading: OR 3.1, 3.2, 3.3, 3.4 Programming assignment 1. Startup code is here: code (due Thu 2/6) |
2/4 | Convex hull in 2D: Graham scan and lower bound.
Reading: OR 3.5, 3.6 |
2/6 | Convex hull in 2D: Incremental and divide-and-conquer algorithms.
Reading: OR 3.7, 3.8 |
2/11 | Art gallery problem. Fisk's sufficiency proof.
Reading: chap 1, OR Programming assignment 2. Startup code is here: code (due Thu 2/20) Homework 2 (due Thu 2/20) |
2/13 | Polygon triangulation in quadratic time by ear removal.
Reading: chap 1 OR |
2/18 | Orthogonal line-segment intersection.
General segment intersection and Bentley-Ottman sweep. Reading: chap 2.1 [3MC], notes (by Michiel Smid) |
2/20 | Monotone polygons. Triangulation of a monotone polygon.
Reading: chap 2.1 OR |
2/25 | Trapezoidalization. Partition into monotone polygons. An O(n lg n) triangulation algorithm.
Reading: chap 2.1, 2.2 OR |
2/27 | Range searching. kd-trees.
Reading: chap 5.1, 5.2 [3MC] |
3/4 | Range tree.
Reading: chap 5.3 [3MC] |
3/6 | Recap. Higher dimension range tree.
Reading: chap 5.4, 10.1 [3MC] |
SPRING BREAK | |
3/25 | Programming assignment 3: kd-trees. Startup code is here. Part 1 due Tue 4/1, Part 2 due Tue 4/8.
Interval tree. Orthogonal segment-segment intersection queries (window queries). Reading: chap 10.1 [3MC] |
3/27 | Orthogonal segment-segment intersection queries (window queries).
Voronoi diagrams. Reading: chap 5 [OR] |
4/1 | Voronoi diagrams. Reading: chap 5 [OR] |
4/3 | Class cancelled. |
4/8 | Voronoi diagram properties. |
4/10 | Overview of Fortune's algorithm.
Applications of Voronoi diagrams and Delaunay triangulations: nearest neighbors, larget empty circle, MST, TSP, median axis Reading: chap 5 [OR] |
4/15 | Delaunay triangulations. Edge flipping algorithm. |
4/17 | Delaunay triangulation - Randomized incremental construction. |
4/22 | Delaunay triangulation - Connection to 3D convex hull.
Point-in-polygon for convex and non-convex polygons. |
4/24 | Project check point.
Polygon-polygon intersection for convex and non-convex polygons. Finding the extreme point of a convex polygon in O(lg n) time. |
4/29 | Motion planning in 2D: shortest path in a simple (non-convex) polygon with the funnel algorithm. Shortest paths among polygonal obstacles via visibility graph. Computation of the VG with plane sweep. |
5/1 | Project check point.
Computation of the VG with plane sweep. Point-in-polygon intersection with Dobkin-Kirkpartick hierarchy. |
5/6 | Motion planning in 2D: translating a disk or polygonal robot. Minkowski sums. VG approach vs SPM approach. Motion planning in 3D, ideas.
Class feedback forms. |
May 14th, 2-5pm | Project demos. |