Hull1x1
-
Upload
dorel-barbu -
Category
Documents
-
view
213 -
download
0
Transcript of Hull1x1
![Page 1: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/1.jpg)
CS 16: Convex Hull
dnc 362
Welcome to...
Convex Hell
![Page 2: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/2.jpg)
CS 16: Convex Hull
dnc 363
Whoops, I mean...
Convex Hull
What’s aConvex Hull?
![Page 3: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/3.jpg)
CS 16: Convex Hull
dnc 364
What is the Convex Hull?Let S be a set of points in the plane.
Intuition: Imagine the points ofS as beingpegs; theconvex hullof S is the shape of a rub-ber-band stretched around the pegs.
Formal definition: theconvex hullof S is thesmallest convex polygon that contains all thepoints ofS
![Page 4: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/4.jpg)
CS 16: Convex Hull
dnc 365
Convexity
You know whatconvex means, right?
A polygonP is said to beconvex if:1. P is non-intersecting; and2. for any two pointsp andq on the boundary
of P, segmentpq lies entirely insideP
Eh? What’sconvex?
convex
non convex
![Page 5: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/5.jpg)
CS 16: Convex Hull
dnc 366
Why Convex Hulls?
Who cares aboutconvex hulls?
I don’t ...... but robots do!
obstacle
start end
shortest pathavoiding theobstacle
![Page 6: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/6.jpg)
CS 16: Convex Hull
dnc 367
The Package WrappingAlgorithm
![Page 7: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/7.jpg)
CS 16: Convex Hull
dnc 368
Package Wrap• given the current point, how do we compute
the next point?• set up an orientation tournament using the
current point as the anchor-point...• the next point is selected as the point that
beats all other points atCCW orientation,i.e., for any other point, we have
orientation(c, p, q)= CCW
c
q
p
![Page 8: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/8.jpg)
CS 16: Convex Hull
dnc 369
Time Complexity ofPackage Wrap
• For every point on the hull we examine allthe other points to determine the next point
• Notation:• N: number of points• M: number of hull points (M ≤ N)
• Time complexity:• Θ(MN)
• Worst case:Θ(N2)• all the points are on the hull (M=N)
• Average case:Θ(N log N) — Θ(N4/3)• for points randomly distributed inside
asquare, M = Θ(log N) on average• for points randomly distributed inside
acircle, M = Θ(N1/3) on average
![Page 9: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/9.jpg)
CS 16: Convex Hull
dnc 370
Package Wrap has worst-casetime complexity O( N2 )
Which is bad...
N2
But in 1972,Nabisco needed abetter cookie - so
they hired R. L.Graham, who
came up with...
![Page 10: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/10.jpg)
CS 16: Convex Hull
dnc 371
Rave Reviews:
• “Almost linear!”- Sedgewick
• “It’s just a sort!”- Atul
• “Two thumbs up!”- Siskel and Ebert
• Nabisco says...
The Graham Scan Algorithm
“A better crunch!”
and history was made.
![Page 11: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/11.jpg)
CS 16: Convex Hull
dnc 372
Graham Scan
• Form a simple polygon (connect the dots asbefore)
• Remove points at concave angles
![Page 12: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/12.jpg)
CS 16: Convex Hull
dnc 373
Graham Scan
How Does it Work?
Start with the lowest point (anchor point)
![Page 13: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/13.jpg)
CS 16: Convex Hull
dnc 374
Graham Scan: Phase 1
Now, form a closed simple path traversing thepoints by increasing angle with respect to the an-chor point
![Page 14: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/14.jpg)
CS 16: Convex Hull
dnc 375
Graham Scan: Phase 2
The anchor point and the nextpoint on the path must be on thehull (why?)
![Page 15: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/15.jpg)
CS 16: Convex Hull
dnc 376
Graham Scan: Phase 2
• keep the path and the hull points in two se-quences
• elements are removed from the beginningof the path sequence and are inserted anddeleted from the end of the hull sequence
• orientation is used to decide whether to ac-cept or reject the next point
curprev
next
![Page 16: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/16.jpg)
CS 16: Convex Hull
dnc 377
cp
n
right turn!
Discard c
(p,c,n) is a
cp
n
![Page 17: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/17.jpg)
CS 16: Convex Hull
dnc 378
c
pn
right turn!(p,c,n) is a
cp
n
right turn!(p,c,n) is a
cp
n
![Page 18: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/18.jpg)
CS 16: Convex Hull
dnc 379
Time Complexity ofGraham Scan
• Phase 1 takes time O(N logN)• points are sorted by angle around the
anchor• Phase 2 takes time O(N)
• each point is inserted into the sequenceexactly once, and
• each point is removed from thesequence at most once
• Total time complexity O(N log N)
![Page 19: Hull1x1](https://reader036.fdocuments.in/reader036/viewer/2022092617/577cc9a31a28aba711a443fa/html5/thumbnails/19.jpg)
CS 16: Convex Hull
dnc 380
How to Increase Speed• Wipe out a lot of the points you know won’t
be on the hull! This isinterior elimination• Here’s a good way to do interior elimina-
tion if the points are randomly distributed ina square with horizontal and verticall sides:
NE
SE
NW
SW
• Find the farthest points in the SW, NW,NE, and SE directions
• Eliminate the points inside thequadrilateral (SW, NW, NE, SE)
• Do Graham Scan on the remainingpoints (only Ο(√N) points are left onaverage!)