0% found this document useful (0 votes)
11 views

Lecture 14

The document discusses convex hulls in 2 dimensions. It provides definitions of convexity and convex hulls, including that a convex hull is the smallest convex polygon that encloses a set of points. It describes algorithms for computing convex hulls, including naive algorithms with runtimes of O(n4), gift wrapping with runtime O(nh), and Graham's scan with optimal runtime of O(n log n).

Uploaded by

orhanayt2018
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Lecture 14

The document discusses convex hulls in 2 dimensions. It provides definitions of convexity and convex hulls, including that a convex hull is the smallest convex polygon that encloses a set of points. It describes algorithms for computing convex hulls, including naive algorithms with runtimes of O(n4), gift wrapping with runtime O(nh), and Graham's scan with optimal runtime of O(n log n).

Uploaded by

orhanayt2018
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

1

Week 5 Convex Hulls in 2D


2
Week 5 Convex Hulls in 2D

 Applications
 Collision avoidance
 Fitting ranges with a line
 Smallest box
 Shape Analysis
3
Convexity

 A set S is convex,
 if x,y in S implies that
 the segment xy is a subset of S

 Works in any dimensions


 A polygon with a reflex vertex is not convex
y
x
4
Formal Segment Definition

 The segment xy is the set of all points of the


form αx+βy with α≥0, β≥0 and α+β = 1
 αx+βy = αx+(1-α)y = α(x-y) + y = x + β(y-x)

y
∣xv∣
=
∣xy∣

v = αx+βy ∣vy∣
x =
∣xy∣
5
Convex Combination

 A convex combination of points x1, x2, … , xk is

 a sum of the form α1x1 + α2x2 + … + αkxk

 αi ≥ 0 for all I
x1
 α1 + α 2 + … + α k = 1
α1x1 + α2x2 + α3x3

x3
x2
6
Convex Hull

 Definition I
 The convex hull of a set of points S is
 the set of all convex combinations of points of S
7
Convex Hull

 Definition II
 The convex hull of a set of points S
 in d dimensions is
 the set of all convex combinations of d+1 (or fewer)
points of S

 For d=2, convex hull is the combination of all


triangles
8
Convex Hull

 Definition III
 The convex hull of a set of points S is
 the intersection of all convex sets that contain S
9
Convex Hull

 Definition IV
 The convex hull of a set of points S is
 the intersection of all halfspaces that contain S
10
Convex Hull

 Definition V
 The convex hull of a set of points S is
 the smallest convex polygon that encloses S
11
Convex Hull

 Definition VI
 The convex hull of a set of points S is
 the enclosing convex polygon with smallest area
12
Convex Hull

 Definition VII
 The convex hull of a set of points S in the plane is
 the union of all the triangles determined by points in S
13
Output

 A convex hull algorithm may have the following


outputs:
 all the points on the hull, in arbitrary order
 extreme points, in arbitrary order
 all the points on the hull, in BTO*
 extreme points, in BTO

* BTO: Boundary Traversal Order


14
Extreme Points

 Extreme points
 are the vertices of the convex hull at which the
interior angle is strictly convex
15
Naive Algorithms

 Nonextreme Points
 A point is nonextreme iff it is inside some triangle
whose vertices are points of the set and is not itself
a corner of that triangle
16
Naive Algorithms

 Algorithm: INTERIOR POINTS


 for each i do
 for each j ≠ i do
 for each k ≠ j ≠ i do
 for each l ≠ k ≠ j ≠ i do
 if pl in triangle pipjpk then pl is nonextreme

 O(n4) !!!
17
Extreme Edges

 Algorithm: EXTREME EDGES


 for each i do
 for each j ≠ i do
 for each k ≠ j ≠ i do
 if pk is not (left or on) (pi,pj) then (pi,pj) is not extreme

O(n3), still very slow


18
Gift Wrapping

 All edges of the convex hull are connected


 Find one, then search for the next
 Use the lowest vertex to start with

 Works much faster: O(nh)


19
Gift Wrapping

e Ө

x
20
Gift Wrapping

 For each edge


 Compute theta with O(n) vertices
 Choose the vertex with the smallest theta

 There are only h edges on the boundary


 O(n) time for each edge
 Overall running time O(nh)
21
Quickhull

 Similar to Quicksort
 It is easy to discard many points
 But may not work always

 Running time:
 Best case: O(n log n)
 Worst case: O(n2)
22
Quickhull

 Algorithm: QUICKHULL(a, b, S)
 If S = Ø then return
 else
 c ← index of point with max distance from ab
 A ← points strictly right of (a, c)
 B ← points strictly right of (c, b)
 return QUICKHULL(a, c, A) + ( c ) + QUICKHULL(c, b, B)
23
Quickhull
Start with the leftmost
and rightmost vertices

a
24
Quickhull
Points in the triangle acb
are interior to the hull

c furthest away from ab

a
25
Quickhull
26
Quickhull
27
Quickhull
28
Quickhull
29
Quickhull

 Running Time:
 Initial extremes a,b and separating S: O(n)
 Finding extreme point c and eliminating points in
triangle acb: O(n)
 Recursive steps: T(n) = O(n) + T(α) + T(β)
 Best case: T(n) = 2T(n/2) + O(n) = O(n log n)
 Worst case: T(n) = O(n) + T(n-1) = O(n2)
30
Graham's Scan

 Probably the first scientific paper in the history


of Computational Geometry (1972)
 Bell laboratories required the hull of ~= 10,000
vertices
 The O(n2) algorithm took too much time
 n2 = 100,000,000

 Graham invented this O(n log n) algorithm


 n log n = 133,000
31
Outline

 Choose a vertex v inside the hull


 Sort the rest of the vertices in counter clockwise
angular order around v
 Build the hull via left turns at each hull vertex
 All turns on the convex hull are left turns during a
boundary traversal
32
Graham's Scan

3
4
1
Stack S 2
5

v 8
6

7
33
Graham's Scan

3
2 4
1 1
2
5

v 8
6

7
34
Graham's Scan

3
2 4
Right turn!
1 1

5 2

v 8
6

7
35
Graham's Scan

3
3 4
1 1

5 2

v 8
6

7
36
Graham's Scan

Left Turn, OK!


3
4
3 4
1 1

5 2

v 8
6

7
37
Graham's Scan

5 3
4
3 4
1 Left Turn, OK! 1

5 2

v 8
6

7
38
Graham's Scan

3
5 4
4
3 1
1
5 2
Right Turn!

v 8
6

7
39
Graham's Scan

3
6 4
4
3 1
1
5 2

v 8
6

7
40
Graham's Scan

7 3
6 4
4
3 1
1
5 2

v 8
6
Left Turn, OK!

7
41
Graham's Scan

8
7 3
6 4
4
3 1
1
5 2

v 8
6

Left Turn, OK!


7
42
Graham's Scan

8
7 3
6 4
4
3 1
1
5 2

v 8
Left Turn, OK!
6

7
43
Running Time

 Sorting the vertices: O(n log n)


 Each vertex is added to the stack once
 May be removed only once

 Overall running time: O(n log n)


44
Some Problems

 The algorithm so far is not perfect


 What happens at the end if the bottom vertex is not
a hull vertex?
 What happens at the start if the second vertex is
not a hull vertex?
 Which vertex to use as origin for sorting?
 How about collinear vertices?
45
Some Problems

3 8

1
4

v 7
5

6
46
Solutions

 Origin of sorting: The rightmost vertex with


smallest y-coordinate
 Can be found in O(n) time
 Always a hull vertex
 After the sort, the first vertex is also a hull vertex
47
Solutions
5

6
2

7
4
1
8

v
48
Solutions

 Hull collinearities
 require a strict left turn

 Sorting collinearities
 Arbitrary solutions cause hull overlaps
 or bugs in the implementation

 Delete the vertices closer to the origin


49
Lower Bound
25

16

9 The convex hull of the


designed point set gives
a solution to the sorting
problem.
4
1
1 2 3 4 5
50
QUIZ TIME

Prepare for the quiz!


51
QUIZ 4
Consider the following pseudocode on a set S of n points:

i←1
S1 ← S
n1 ← n
while (ni > 3)
compute the convex hull H(Si) of Si
Si+1 ← Si – H(Si)
ni+1 ← ni – |H(Si)|
i←i+1

where |H(Si)| is the number of points on H(Si)

What is the maximum value i can obtain at the end?


Justify your answer.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy