computational geometry
play

Computational geometry Inge Li Grtz CLRS Chapter 33.0, 33.1, 33.3. - PowerPoint PPT Presentation

Computational Geometry Geometric problems (this course Euclidean plane). Does a set of line segments intersect, dividing plane into regions, find closest point, motion planning (robotics), overlaying of maps, lightening of


  1.  ̄ Computational Geometry • Geometric problems (this course Euclidean plane). • Does a set of line segments intersect, dividing plane into regions, find closest point, motion planning (robotics), overlaying of maps, lightening of scenes/computing shadows (computer graphics). • This course: • Convex hull Computational geometry Inge Li Gørtz CLRS Chapter 33.0, 33.1, 33.3. Convex Hull • Convex hull. Given set of points Q, the convex hull CH(Q), is the smallest polygon containing Q. • Polygon. Region of plane bounded by a cycle of line segments (edges). Points where edges meet are called the vertices of the polygon. • Convex. For any two points p, q inside the polygon, the line segment pq is completely inside the polygon. p p Convex Hull q q Convex Not convex • Smallest. Any convex proper subset of the convex hull excludes at least one point in Q. • Example.

  2.  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄  ̄ Convex Hull Application of Convex Hull • Convex hull. Given set of points Q, the convex hull CH(Q), is the smallest convex • Output from oil wells: mixture of several di ff erent components and proportions may vary polygon containing Q. between di ff erent sources. Can be mixed to obtain specific mixture. Say only interested in 2 of the components A and B. Want 12% A and 30% B. If we have 3 mixtures: • Polygon. Region of plane bounded by a cycle of line segments (edges). Points where edges meet are called the vertices of the polygon. • M1 (10% A, 35%B) and M2 (16% A, 20% B) and M3 (7% A, 15% B). • Convex. For any two points p, q inside the polygon, the line segment pq is • Mix M1 and M2 in ratio: 2:1. completely inside the polygon. • Cannot get 13% A and 22% B from M1 and M2. p p • Mix M1, M2 and M3 in ratio 1:3:1. • Represent mixtures by point in plane: p1=(0.1,0.35), p2=(0.16,0.2), p3 = (0.07, 0.15): q q Convex Not convex (0.1,0.35) Can make any combination inside triangle • Smallest. Any convex proper subset of the convex hull excludes at least one point in Q. • Example. p 5 p 6 (0.16,0.2) p 4 (0.07, 0.15) p 1 p 2 p 3 • n base mixtures: can make any combination in convex hull. • Output. Vertices of convex hull in counterclockwise order: ⟨ p 1, p 2, p 3, p 4, p 5, p 6 ⟩ . Convex Hull Convex hull: Easy cases • 3 equivalent definitions of convex hull: Given set of points Q, the convex hull CH(Q) • |Q| = 1. Return Q. is • |Q| = 2. Return Q. • Def 1. The smallest convex polygon containing Q. • |Q| = 3. All 3 points are in CH(Q). Check if in counterclockwise order. • Def 2. The largest convex polygon, whose vertices all are points in Q. • Assume p 0 is furthest to the left. • Def 3. The convex polygon containing Q and whose vertices all are points in Q. p 2 = (x 2 ,y 2 ) p 0 = (x 0 ,y 0 ) • Assumption (we will get rid of this later). No three points lie on a common line. p 1 = (x 1 ,y 1 ) • Consider line segments p 0 p 1 and p 0 p 2 . Counterclockwise ⇔ slope of p 0 p 1 is less than slope of p 0 p 2 . ⇔ (y 1 -y 0 )/(x 1 -x 0 ) < (y 2 -y 0 )/(x 2 -x 0 ) p 5 p 6 ⇔ (y 1 -y 0 )(x 2 -x 0 ) < (y 2 -y 0 )(x 1 -x 0 ). p 4 p 1 p 2 p 3 Counterclockwise ⇔ (y 1 -y 0 )(x 2 -x 0 ) < (y 2 -y 0 )(x 1 -x 0 )

  3. Jarvis’s march Graham’s scan • Start with adding lowest point p 0 to CH(Q). • Graham’s scan. • Next point after p: • Pick lowest point p 0 as starting point • point appearing to be furthest to the right to someone standing at p and looking • Sort remaining points in counterclockwise order around p 0 . at the other points (smallest if sorted in counterclockwise order). • Use linear time scan to build hull: • If q is the point following p then for any other point r in Q p,q,r are in • Push p 0 , p 1 and p 2 onto the stack. counterclockwise order. • Next point p: • Can find next vertex by performing n-1 counterclockwise tests. • If adding p gives a left turn push p onto stack • Time: • If adding p gives a right turn pop top element from stack and check again. • Ɵ (1) for each counterclockwise test. Continue checking until we get a left turn or only 2 vertices left on stack. • n tests for each vertex in the convex hull p 8 • Ɵ (nh) • Output sensitive r p 6 p 4 p 9 q p 7 p 2 p 3 p p 5 p 1 p 0 Graham’s scan Left turns and right turns • Graham’s scan • Next point p: Let p’ and p’’ be the two top elements of the stack • Pick lowest point p 0 as starting point • Check if adding p gives a left turn or a right turn. • Sort remaining points in counterclockwise order around p 0 . • Use linear time scan to build hull. • If adding p gives a left turn then p’, p’’, p are in counterclockwise order: • Push p 0 , p 1 and p 2 onto the stack. • Next point p: Let p’ and p’’ be the two top elements of the stack p • If adding p gives a left turn push p onto stack p’’ • If adding p gives a right turn pop top element from stack and check again. Continue checking until we get a left turn or only 2 vertices left on stack. p’ p 8 • If adding p gives a right turn then p’, p’’, p are in clockwise order: p 6 p 4 p’’ p 9 p’ p 7 p 2 p 3 p p 5 p 1 p 0

  4. Graham’s scan Graham’s scan • Graham’s scan • Graham’s scan • Pick lowest point p 0 as starting point • Pick lowest point p 0 as starting point • Sort remaining points in counterclockwise order around p 0 . • Sort remaining points in counterclockwise order around p 0 . • Use linear time scan to build hull. • Use linear time scan to build hull. • Push p 0 , p 1 and p 2 onto the stack. • Push p 0 , p 1 and p 2 onto the stack. • Next point p: Let p’ and p’’ be the two top elements of the stack • Next point p: Let p’ and p’’ be the two top elements of the stack • If p’, p’’, p are in counterclockwise order: push p onto stack • If p’, p’’, p are in counterclockwise order: push p onto stack • If p’, p’’, p are in clockwise order: pop top element from stack and check again. • If p’, p’’, p are in clockwise order: pop top element from stack and check Continue until we get a left turn or only 3 vertices left on stack. again. Continue until we get a left turn or only 2 vertices left on stack. • Analysis. p 8 • Sorting Ɵ (n log n) • Counterclockwise check: Ɵ (1) p 6 p 4 • Each check is due to a push or a pop. p 9 • Each point pushed once and popped at most once. p 7 p 2 • n pops, O(n) pushes, O(n) counterclockwise checks. All constant time each. p 3 p 5 • Time Ɵ (n) for scan. • Total time Ɵ (n log n) p 1 p 0 Chan’s algorithm (shattering) Chan’s algorithm (shattering) • Guess h. • Guess h. • Shatter the input into arbitrary n/h subsets. • Shatter the input into arbitrary n/h subsets.

  5. Chan’s algorithm (shattering) Chan’s algorithm (shattering) • Guess h. • Guess h. • Shatter the input into arbitrary n/h subsets. • Shatter the input into arbitrary n/h subsets. • Compute the convex hull of each subset using Graham’s scan. • Compute the convex hull of each subset using Graham’s scan. • Time: O((n/h) h log h) = O(n log h). • Time: O((n/h) h log h) = O(n log h). • Use idea from Jarvis’ march (wrapping) around the n/h subhulls. • Successor can be found in O(h log h) time. • Time for second part: O((n/h) h log h) = O(n log h).

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend