Handouts:
2/25/09: Final remarks about triangulations; Intro to convex hulls
I mostly use
slides
I draw a Venn diagram showing simple polygons,
monotone polygons, convex polygons, monotone mountains.
(Can you add the star-shaped polygons to the Venn diagram?)
Summary: Simple polygons can be triangulated in time O(n),
using Chazelle's (very complicated) algorithm; you are expected to
know this exists, but we did not cover it.
Polygons with holes (and also polygons without holes (simple polygons)) can be triangulated in time O(n log n),
using the algorithm we have covered in class (Chapter 2).
LOWER BOUND: For the problem of
triangulating a polygon with n vertices and h holes, Omega(n + h log h) is a lower bound;
Introduction: definition of convex set, convex combinations,
affine combinations, linear combinations. Examples of convex sets.
Definition of convex hull. Equivalent characterizations of
convex hulls.
SuperSlowCH: O(n^4) to identify vertices
SlowCH: O(n^3) to identify edges of CH(S).
Better CH: Jarvis March ("Gift Wrap"): output-sensitive O(nh),
but worst-case O(n^2). Here, h is the output size (number of hull
vertices. Discussion of the fact that E(h) = O(log n), if the n
points are uniformly distributed in a square. (Here, E(h) is the
expected value of the number, h, of hull vertices.)
Short coverage (for grads): Linear Programming (Chapter 4 of BCKO):
There is a randomized incremental algorithm that takes expected time
O(n) (and worst-case time O(n^2)) for LP with n constraints and a
FIXED (O(1)) number of variables. (The analysis is by "backwards
analysis", a slick way to analyze the expected running time of a
randomized incremental algorithm.) There is also a deterministic
algorithm with worst-case running time O(n), but we do not cover it
here. You should know that the deterministic algorithm exists.