27
Convex Sets & Concave Sets ar region R is called convex if and only if for any nts p, q in R, the line segment pq lies completely in therwise, it is called concave. Convex p q R 1 p q R 2 Concave

Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Embed Size (px)

Citation preview

Page 1: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Convex Sets & Concave Sets

A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R.

Otherwise, it is called concave.

Convex

p

q

R1

p

q

R2

Concave

Page 2: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

An Example

1 2

3

4

Page 3: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Convex Hull

The convex hull CH(Q) of a set Q is the smallest convex regionthat contains Q.

Rubber band

When Q is finite, its convex hull is the unique convex polygon whose vertices are from Q and that contains all points of Q.

Page 4: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

The Convex Hull Problem

Input: a set P = { p , p , …, p } of points

Output: a list of vertices of CH(P) in counterclockwise order.

1 2 n

Example

Output: p , p , p , p , p , p . 5 9 2 8 10 7

8

pp

p

p

p

p

p

p

pp

9

210

5

76 1

3 4

Page 5: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Edges of a Convex Hull

For every edge with both endpoints p, q P.

pq

All other points in P lie

to the same side of the line passing through p and q

Page 6: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

A Slow Convex Hull Algorithm

Slow-Convex-Hull(P) E {} // set of directed edges of CH(P) that bounds the // points of P on the right. for every ordered pair (p, q), where p, q P and p q // (n ) pairs

do valid true for every point r p or q // n 2 such points

do if r lies to the right of pq or collinear with p and q but not on pq

then valid false if valid

then E E { pq } // pq and qp cannot be both in E From E construct a list L of vertices of CH(P), sorted in counterclockwise order. // O(n ) easily improvable to O(n lg n) return L

Running time (n )3

2

2

p

q

r

Page 7: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Floating Arithmetic is not Exact!

p

r

q

Nearly colinear points p, q, r.

p to the left of qr. q to the left of rp. r to the left of qp.

All three accepted as edges!

Not robust – the algorithm could fail with small numerical error.

Page 8: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Polar Angle

ppolar angle

x

y

q

r

Page 9: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

An Example of Graham Scan

p 0

pp

pp

pp

p

pp

p

12

3

4

p5

6

7

8

9

10

11

(with the minimum y-coordinate)

Labels are in the polar angle order.(What if two points have the same polar angle?)

How to break a tie?

Sort by polar angle.

handling degeneracies

Page 10: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Stack Initialization

p

pp

pp

pp

p

pp

p

0

12

3

4

p5

6

7

8

9

10

11

p

p

p

S

0

1

2

Page 11: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

pp

pp

p

pp

p

0

12

3

4

p5

6

7

8

9

10

11

p

p

p

S

0

1

3

Page 12: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

pp

pp

p

pp

p

0

12

3

4

p5

6

7

8

9

10

11

p

p

p

S

0

1

4

Page 13: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

pp

pp

p

pp

p

0

12

3

4

p5

6

7

8

9

10

11

p

p

p

S

0

1

4

p 5

Page 14: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

pp

pp

p

pp

p

0

12

3

4

p5

6

7

8

9

10

11

p

p

p

S

0

1

4

p 6

Page 15: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

pp

pp

p

pp

p

0

12

3

4

p5

6

7

8

9

10

11

p

p

p

S

0

1

4

p 6

p 7

p 8

Page 16: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

pp

pp

p

pp

p

0

12

3

4

p5

6

7

8

9

10

11

p

p

p

S

0

1

4

p 6

p 7

Page 17: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

p

p

pp

p

pp

p

0

12

3

4

p5

6

78

9

10

11

p

p

p

S

0

1

4

p 6

p 9

p10

Page 18: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

p

pp

p

p

pp

p

pp

p

0

12

3

4

p5

6

78

9

10

11

p

p

p

S

0

1

4

p 6

p 9

p11

Page 19: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Finish

p

pp

p

p

pp

p

pp

p

0

12

3

4

p5

6

78

9

10

11

p

p

p

S

0

1

4

p 6

p 9

p11

Page 20: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Graham’s Scan

p

p

p

p

0

j

i

k

p

p

p

0

i

lEvery pointin P ispushed ontoS once

Non-verticesof CH(P)determinedso far are popped

vertices of CH(P) in the counter-clockwiseorder.

candidatesfor verticesof CH(P)

p0

p

p1

2

startp

p0

s

finishp

p

p0

j

i

Page 21: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

The Graham Scan Algorithm

Graham-Scan(P) let p be the point in P with minimum y-coordinate let p , p , …, p be the remaining points in P sorted in counterclockwise order by polar angle around p . Top[S] 0 Push(p , S) Push(p , S) Push(p , S) for i 3 to n 1 do while p makes a nonleft turn from the line segment determined by Top(S) and Next-to-Top(S) do Pop(S) Push(S, p ) return S

01 2 n–1

012

i

i

0

Page 22: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Proof of Correctness

Claim 1 Each point popped from stack S is not a vertex of CH(P).

pp

p

p

0

i

jk

p

p

p

p0

i

j

k

Two cases when p is popped: j

In neither case can p become a vertex of CH(P). j

Proof

Page 23: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Claim 2 Graham-Scan maintains the invariant that the points on stack S always form the vertices of a convex polygon in counterclockwise order.

Popping a point from S preserves the invariant.

The regioncontaining p i The invariant still holds.

Proof The claim holds right after initialization of S when

p , p , p form a triangle (which is obviously convex). 0 1 2

Consider a point p being pushed onto S. i

p0

pj

pi

Page 24: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Correctness of Graham’s Scan

Theorem If Graham-Scan is run on a set P of at least three points, then a point of P is on the stack S at termination if and only if it is a vertex of CH(P).

Page 25: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Running time

The running time of Graham’s Scan is O(n lg n).

#operations time / operation total

Push n O(1) (n)

Pop n 2 O(1) O(n)

Sorting 1 O(n lg n) O(n lg n)

Why?

Findingp0

1 (n) (n)

Page 26: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Jarvis’ March

A “package wrapping” technique

p 4

p 0 (lowest point)

p 1(smallest polar angle w.r.t. p )

0

p 5

(smallest polar angle w.r.t. p )

4

Right chain

p 6(smallest polar angle w.r.t. p )

5

p 2 (smallest polar angle w.r.t. p )

1

p 3

(smallest polar angle w.r.t. p )

2

Left chain

Page 27: Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R

Running Time of Jarvis’s March

Let h be the number of vertices of the convex hull.

For each vertex, finding the point with the minimumPolar angle, that is, the next vertex, takes time O(n).

Comparison between two polar angles can be doneusing cross product.

Thus O(nh) time in total.