Download presentation
Presentation is loading. Please wait.
1
UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 2 Chapter 2: Polygon Partitioning Chapter 3: 2D Convex Hulls Monday, 2/12/01
2
Chapter 2 Polygon Partitioning useful for triangulations and many other uses!
3
Monotone Partitioning ä A chain is monotone with respect to a line L if every line orthogonal to L intersects the chain in at most 1 point ä P is monotone with respect to a line L if boundary of P can be split into 2 polygonal chains A and B such that each chain is monotone with respect to L ä Monotonicity implies sorted order with respect to L ä Monotone polygon can be (greedily) triangulated in O(n) time
4
Trapezoidalization ä Partition into trapezoids ä Horizontal line through each vertex ä Diagonal with each “supporting” vertex yields monotone partition ä To trapezoidalize, vertically sweep a line L ä presort vertices by y (O(nlogn) time) ä maintain sorted list of edges intersecting L ä lg n lookup/insert/delete time (e.g. ht-balanced tree) ä for each vertex ä find edge left and right along sweep line Algorithm: POLYGON TRIANGULATION: MONOTONE PARTITION Sort vertices by y coordinate Perform plane sweep to construct trapezoidalization Partition into monotone polygons by connecting from interior cusps Triangulation each monotone polygon in O(n) time O(n lg n)
5
Partition into Monotone Mountains ä One monotone chain is a single segment ä Every strictly convex vertex is an ear tip (except maybe base endpoints) Algorithm: TRIANGULATION of MONOTONE MOUNTAIN Identify base edge Initialize internal angles at each nonbase vertex Link nonbase strictly convex vertices into a list while list nonempty do For convex vertex b, remove triangle abc Output diagonal ac Update angles and list O(n)
6
Linear-Time Triangulation YearComplexityAuthors
7
Linear-Time Triangulation ä Chazelle’s Algorithm (High-Level Sketch) ä Computes visibility map ä horizontal chords left and right from each vertex ä Algorithm is like MergeSort (divide-and-conquer) ä Partition polygon of n vertices into n/2 vertex chains ä Merge visibility maps of subchains to get one for chain ä Improve this by dividing process into 2 phases: 1) Coarse approximations of visibility maps for linear- time merge 2) Refine coarse map into detailed map in linear time
8
Seidel’s Randomized Triangulation ä Simple, practical algorithm ä Randomized: Coin-flip for some decisions ä Build trapezoidalization quickly ä O(log n) expected cost for locating point in query structure ä Coin-flip to decide which segment to add next Trapezoidalize -> Monotone Mountain -> Triangulate
9
Convex Partitioning ä Competing Goals: ä minimize number of convex pieces ä minimize partitioning time ä To add points or not add points? Theorem (Chazelle): Let be the fewest number of convex pieces into which a polygon may be partitioned. For a polygon of r reflex vertices:
10
Chapter 3 2D Convex Hulls
11
Convexity & Convex Hulls A convex combination of points x 1,..., x k is a sum of the form 1 x 1 +...+ k x k where ä Convex hull of a set of points is the set of all convex combinations of points in the set. nonconvex polygon convex hull of a point set
12
Naive Algorithms for Extreme Points Algorithm: INTERIOR POINTS for each i do for each j = i do for each j = i do for each k = j = i do for each k = j = i do for each L = k = j = i do for each L = k = j = i do if p L in triangle(p i, p j, p k ) then p L is nonextreme O(n 4 ) Algorithm: EXTREME EDGES for each i do for each j = i do for each j = i do for each k = j = i do for each k = j = i do if p k is not left or on (p i, p j ) if p k is not left or on (p i, p j ) then (p i, p j ) is not extreme O(n 3 )
13
Gift Wrapping ä Use one extreme edge as an anchor for finding the next O(n 2 ) Algorithm: GIFT WRAPPING i 0 index of the lowest point i i 0 repeat for each j = i for each j = i Compute counterclockwise angle from previous hull edge Compute counterclockwise angle from previous hull edge k index of point with smallest k index of point with smallest Output (p i, p k ) as a hull edge Output (p i, p k ) as a hull edge i k i k until i = i 0
14
QuickHull ä Concentrate on points close to hull boundary ä Named for similarity to Quicksort a b O(n 2 ) Algorithm: QUICK HULL function QuickHull(a,b,S) if S = 0 return() if S = 0 return() else else c index of point with max distance from ab c index of point with max distance from ab A points strictly right of (a,c) A points strictly right of (a,c) B points strictly right of (c,b) B points strictly right of (c,b) return QuickHull(a,c,A) + (c) + QuickHull(c,b,B) return QuickHull(a,c,A) + (c) + QuickHull(c,b,B)
15
Graham’s Algorithm ä Points sorted angularly provide “star-shaped” starting point ä Prevent “dents” as you go via convexity testing O(nlgn) Algorithm: GRAHAM SCAN, Version B Find rightmost lowest point; label it p 0. Sort all other points angularly about p 0. In case of tie, delete point(s) closer to p 0. In case of tie, delete point(s) closer to p 0. Stack S (p 1, p 0 ) = (p t, p t-1 ); t indexes top i 2 while i < n do if p i is strictly left of p t-1 p t then Push(p i, S) and set i i +1 else Pop(S)
16
Lower Bound of O(nlgn) Worst-case time to find convex hull of n points in algebraic decision tree model is in (nlgn) ä Proof uses sorting reduction: ä Given unsorted list of n numbers: (x 1,x 2,…, x n ) ä Form unsorted set of points: (x i, x i 2 ) for each x i ä Convex hull of points produces sorted list! ä Parabola: every point is on convex hull ä Reduction is O(n) (which is o(nlgn)) Finding convex hull of n points is therefore at least as hard as sorting n points, so worst-case time is in (nlgn) Parabola for sorting 2,1,3
17
Incremental Algorithm ä Add points, one at a time ä update hull for each new point ä Key step becomes adding a single point to an existing hull. ä Idea is extended to 3D in Chapter 4. O(n 2 ) Algorithm: INCREMENTAL ALGORITHM Let H 2 ConvexHull{p 0, p 1, p 2 } for k 3 to n - 1 do H k ConvexHull{ H k-1 U p k } H k ConvexHull{ H k-1 U p k } can be improved to O(nlgn)
18
Divide-and-Conquer ä Divide-and-Conquer in a geometric setting ä O(n) merge step is the challenge ä Find upper and lower tangents ä Lower tangent: find rightmost pt of A & leftmost pt of B; then “walk it downwards” ä Idea is extended to 3D in Chapter 4. Algorithm: DIVIDE-and-CONQUER Sort points by x coordinate Divide points into 2 sets A and B: A contains left n/2 points B contains right n/2 points Compute ConvexHull(A) and ConvexHull(B) recursively Merge ConvexHull(A) and ConvexHull(B) O(nlgn) A B
19
Homework 1 Fri, 2/9 Wed, 2/14 Chapter 1 (O’Rourke) problems 1 & 2 problems 1 & 2 Extra credit may be turned in any time during week of 2/12 2 Mon, 2/12 Wed, 2/21 Chapters 2,3 (O’Rourke) problems 1 & 2 Extra credit may be turned in any time during week of 2/21 HW# Assigned Due Content
20
Machine Accounts ä Each student has an account on my machine: minkowski.cs.uml.edu ä Username is the same as your username on CS ä Password is your initials followed by the last 5 digits on the bottom right hand corner of the back of your student id card (1 exception) ä To remotely log in, use a secure shell (e.g. ssh) ä To transfer files, use a secure FTP (e.g. sftpc) ä Saturn has an sftpc client ä Code to use with assignments will be there.
21
Preparing for Homework 2 ä Graham Scan 2D Convex Hull Code ä Background on research problem that motivates problem 2
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.