{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

# CH - CSE 4101/5101 Prof Andy Mirzaian Convex Hull CONVEX...

This preview shows pages 1–12. Sign up to view the full content.

CSE 4101/5101 Convex Hull Prof. Andy Mirzaian

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
CONVEX HULL Example 1 : |S| infinite Example 2 : |S| finite The rubber-band analogy : Place a rubber-band around S and let it tighten. Given S d (d = 1,2,3, …) Convex-Hull of S: CH(S) = the set of all convex combinations of points in S = the smallest convex set that contains S = the intersection of all convex sets that contain S 2
The Convex Hull Problem supporting line extreme point Dimenension d=2 : Given a set S={p1,p2, … , pn} of n points in d , compute CH(S). In general, CH(S) will be a convex polytope whose vertices are a subset of S, called extreme points of S. min max Dimension d=1 : trivial, O(n) time. 3

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
2D Convex Hull: Early development O(n4) is too slow. Caratheodory’s Theorem : p is NOT an extreme point p is a convex-combination of up to 3 (=d+1 ) other points. p An O(n4) time algorithm: Eliminate non-extreme points by checking each 4-point subset. Then order the extreme points around the convex-hull. (How?) 4
2D CH: An O(n3) time algorithm p q O(n3) still too slow! Algorithm CH(P) E   (* edge-list of CH(P) *) for all ordered pairs (p,q)  PP, p  q do supporting true for all points r  P-{p,q} do if r is on the right side of pq then supporting  false if supporting then add directed edge pq to E From the (un-ordered) edge-list E, construct the list of vertices of CH(P) in CCW order in O(n) time. (How?) end 5

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
QUICK HULL S (similar to QuickSort - see AAW) 6
S2 S1 A B leftmost rightmost A & B are extreme points (admit vertical supporting lines) S1 points to the right of AB S2 points to the right of BA Initialize CH to AB followed by BA. (uninflated baloon) Call FindHull (S1,A,B) and FindHull(S2, B,A) QUICK HULL 7

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
FindHull(P,A,B): If P is empty, then return. Find (extreme) point CP orthogonally farthest from AB. CH update: replace AB with AC followed by CB. (inflate baloon) Partition P-{C} into Q0, Q1, Q2 as shown. Discard Q0 inside triangle ABC (by Caratheodory). Recursively call FindHull(Q1,A,C) and FindHull(Q2,C,B). max Q0 Q1 Q2 C A B supporting line at C (C is extreme point) 8
QuickHull animation 9

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
T(n) = Time Complexity of FindHull(P,A,B), where n=|P| Worst Case: T(n) = max { T(q) + T(n-1-q) + O(n) | 0  q  n-1 } = T(0) + T(n-1) + O(n) = O(n2) Average Case: On many realistic point distributions Avg[T(n)] = O(n) or close to it. - Find C, Q0, Q1, Q2: O(n) time - FindHull(Q1,A,C): T(q) time. ( | Q1| = q ) - FindHull(Q2,C,B): T(n-1-q) time. ( | Q2|  n-1-q ) 10
{ gift-wrapping method, generalizes to higher dimensions} Step 1: Let p1 be the point with minimum y-coordinate (lex.) Step 2: Anchor ray at current point and rotate to next anchor point. Repeat. p1 Ray p5 p4 p3 p2 Output-sensitive : O(nh) time. n = # input points, h = # hull vertices (output size) (3  h  n if n  3 and not all points collinear) Worst-case: O(n2) time.

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

### Page1 / 37

CH - CSE 4101/5101 Prof Andy Mirzaian Convex Hull CONVEX...

This preview shows document pages 1 - 12. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online