Handouts:
10/2/08: Chapter 2: More on intersections, DCEL; review of LP
See the lecture 7 powerpoint slides from last week (second half of the slides, starting with DCEL)
and the lecture 8 powerpoint slides
Remarks/leftovers on intersection detection.
Review: Bentley-Ottmann plane sweep paradigm: Sweep a vertical line
from left to right (or a horizontal
line from top to bottom, etc). Maintain two data structures: Event Queue
(EQ) and the Sweep Line Status (SLS).
Apply to arbitrary segments in the plane: O(n log n) to DETECT if
there is ANY intersection, using O(n) space.
Events at segment endpoints (EQ does not change).
O((k + n) log n) to REPORT all k intersections. Memory usage:
Naively O(n+k); Pach-Sharir prove an upper bound (using extremal
graph theory): O(n log^2 n); simple modification of sweep: O(n)
space
Space bound in Bentley-Ottmann sweep to report: how to
get O(n) space
Note that Chazelle-Edelsbrunner does the REPORT in optimal
time O(k+ n log n), using O(k) space. Balaban (1995) improved
the space complexity to O(n) working storage.
These are the bounds you should know when asked "How efficiently
can one do...."
Plane sweep paradigm in a special case: Apply to axis-parallel
segments in the plane: O(n log n) to detect/count; O(k + n log n) to
report all k intersections.
Mention of Clarkson-Shor and Mulmuley results on
randomized incremental construction. Note: Their methods apply
also to curved segments.
Brief discussion of other topics: computing an overlay of
subdivisions,
computing union/intersection/set difference (see Cor 2.7), simplicity
testing, checking two convex or simple polygons for intersection, etc.
Practical methods: grid-based methods, bounding volume trees
(QuickCD)
DCEL data structure
Brief review/recap of Linear Programming (history, etc)