Download presentation
Presentation is loading. Please wait.
Published byDevi Iskandar Modified over 6 years ago
1
August 20, 2002 (joint work with Umut Acar, and Guy Blelloch)
Convex Hull for Dynamic Data Jorge L. Vittes August 20, 2002 (joint work with Umut Acar, and Guy Blelloch)
2
Convex Hull for Dynamic Data
Motivation Application data is dynamic word processors: slowly changing text graphics: render similar images mobile phone networks: continuously moving hosts Important to handle dynamic data efficiently 11/17/2018 Convex Hull for Dynamic Data
3
Dynamic Algorithms: Changing Data
b b c c e d d a b c e d 11/17/2018 Convex Hull for Dynamic Data
4
Kinetic Algorithms: Moving Data
b b c c d Time = 1 d Time = 0 b a c Time = 1+e ... 1 11/17/2018 d Convex Hull for Dynamic Data
5
How to invent Dynamic/Kinetic Algorithms
Just like any other algorithm. Think, ponder, divide, conquer... Or, use adaptivity... 11/17/2018 Convex Hull for Dynamic Data
6
Convex Hull for Dynamic Data
Adaptivity Makes a standard algorithm dynamic or kinetic Requires little change to the standard algorithm Can be done semi-automatically Not all algorithms yield efficient adaptive algorithms Will talk about this more 11/17/2018 Convex Hull for Dynamic Data
7
How does Adaptivity Work?
Represent a computation with a dynamic dependency graph nodes $ data, edges $ dependencies Sources $ input, sinks $ output, The user can change the input, update the output Update: Take a changed node, Update all its children (the children are now changed) Repeat until no more changed nodes 11/17/2018 Convex Hull for Dynamic Data
8
Convex Hull for Dynamic Data
Adaptivity Example 1 2 3 fun f (a,b,c) = let u = a+b in if (u > 0) then g(u) else g(b+c) end a b c a+b 1+b u 3 if u>0 then g(u) else g(b+c) g(u) r 0.33 11/17/2018 Convex Hull for Dynamic Data
9
Adaptivity Example: Change
-2 2 3 fun f (a,b,c) = let u = a+b in if (u > 0) then g(u) else g(b+c) end a b c a+b 1+b u 3 if u>0 then g(u) else g(b+c) g(u) r 0.33 11/17/2018 Convex Hull for Dynamic Data
10
Convex Hull for Dynamic Data
Update -2 2 3 fun f (a,b,c) = let u = a+b in if (u > 0) then g(u) else g(b+c) end a b c a+b -2+b u v 5 if u>0 then g(u) else g(b+c) g(u) g(v) r 0.5 11/17/2018 Convex Hull for Dynamic Data
11
Convex Hull for Dynamic Data
Update -2 2 3 fun f (a,b,c) = let u = a+b in if (u > 0) then g(u) else g(b+c) end a b c a+b -2+b b+c 2+c u v 5 g'(v) if u>0 then g(u) else g(b+c) g(v) r 0.5 11/17/2018 Convex Hull for Dynamic Data
12
Adaptivity and Stability
Adaptivity updates the result by rerunning the parts of the computation affected by the input change It is efficient when the computation is “stable”,I.e., computations on “similar” inputs are “similar” We apply the adaptivity technique to convex hulls Result: Efficient Dynamic and Kinetic convex hulls 11/17/2018 Convex Hull for Dynamic Data
13
1-D Convex Hull: Max and Min
Just consider upper hull: Finding the maximum Consider two algorithms: The March: March through the list The Tournament: pair up the elements and take the max of each pair 11/17/2018 Convex Hull for Dynamic Data
14
Convex Hull for Dynamic Data
Kinetic Maximum Numbers increase/decrease continuously in time ni(t) = ni + ci t ni n1(t) = 2+t n2(t) = 5 n3(t) = 6-t time tred = 0 tgreen = 1 tblue = 3 11/17/2018 Convex Hull for Dynamic Data
15
Convex Hull for Dynamic Data
Sampling n1(t) = 2+t ni n2(t) = 5 n3(t) = 6-t time tred = 0 tgreen = 1 tblue = 3 11/17/2018 Convex Hull for Dynamic Data
16
Internal and External Events
External event: Final result changes Internal event: Final result does not change but a test fails 11/17/2018 Convex Hull for Dynamic Data
17
Proof Simulation via Certificates
A set of comparisons that prove the current maximum Associate a certificate with each comparison certificate = comparison result + failure time Consider the times that a certificate fails We need an algorithm that updates the result as well as the certificates Use adaptivity to obtain to do the update efficiently 11/17/2018 Convex Hull for Dynamic Data
18
Convex Hull for Dynamic Data
Kinetic March 0.66 0.5 4 Time=0 4+t 5-t 1 7+1.5t 6 3 8 4 0.66 Time=0.5+e 4+t 5-t 1 7+1.5t 6 3 8 4 Time=0.66+e 4+t 5-t 1 7+1.5t 6 3 8 4 11/17/2018 Convex Hull for Dynamic Data
19
Kinetic March Performance
O(n): Because an item in the beginning of the list could become the maximum and it will be compared to the rest of the list Not acceptable because computing from scratch takes O(n) 11/17/2018 Convex Hull for Dynamic Data
20
The Kinetic Tournament
Time = 0 8 7 8 7 5-t f = 2 6 8 7 4 1+t 5-t 6 3 8 4 11/17/2018 Convex Hull for Dynamic Data
21
The Kinetic Tournament
8 Time=2+e 7 f=6 8 7 1+t 6 8 7 4 1+t 5-t 6 3 8 4 11/17/2018 Convex Hull for Dynamic Data
22
The Kinetic Tournament
Time=6+e 8 f=7 1+t 8 7 1+t 6 8 7 4 1+t 5-t 6 3 8 4 11/17/2018 Convex Hull for Dynamic Data
23
The Kinetic Tournament
Time=7+e 1+t f=7 1+t 8 7 1+t 6 8 7 4 1+t 5-t 6 3 8 4 11/17/2018 Convex Hull for Dynamic Data
24
Performance of Kinetic Tournament
Worst case log n time per event This kinetic algorithm is an adaptive version of the standard tournament algorithm for finding maximum 11/17/2018 Convex Hull for Dynamic Data
25
Convex Hull for Dynamic Data
2-D Convex Hull Many algorithms: Quick Hull, Graham Scan, Incremental, Merge Hull, Ultimate, Improved Ultimate... We will focus on the Quick Hull algorithm Input: A list of points P Output: The boundary points on the hull of P Example: Input = [a,b,c,d] Output = [a,b,d] a b c d 11/17/2018 Convex Hull for Dynamic Data
26
Convex Hull for Dynamic Data
Quick Hull Example J O B F M H K P D G A L I E C N [A B C D E F G H I J K L M N O P] 11/17/2018 Convex Hull for Dynamic Data
27
Quick Hull Example - Filter
J O B F M H K P D G A L I E C N [ A B D F G H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
28
Quick Hull Example - Maximum
J O B F M H K P D G A L I E C N [A B D F G H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
29
Quick Hull Example - Filter
J O B F M H K P D G A L I E C N [ [A B F J ] [J O P] ] 11/17/2018 Convex Hull for Dynamic Data
30
Quick Hull Example - Maximum
J O B F M H K P D G A L I E C N [[A B F J] [J O P] ] 11/17/2018 Convex Hull for Dynamic Data
31
Quick Hull Example - Base Case
J O B F M H K P D G A L I E C N [ [A B] [B J] [J O P] ] 11/17/2018 Convex Hull for Dynamic Data
32
Quick Hull Example - Done
J O B F M H K P D G A L I E C N [ [A B] [B J] [J O] [O P] ] 11/17/2018 Convex Hull for Dynamic Data
33
Convex Hull for Dynamic Data
Kinetic Quick Hull Two kinds of tests: Line-side and distance comparisons Filtering => Line Side Finding the furthest point => Distance comparisons Have certificates for these two events that is all 11/17/2018 Convex Hull for Dynamic Data
34
Convex Hull for Dynamic Data
Line Side Test Fails J O B F M H K P D G A L E I C N [ A B D F G H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
35
“I” is inserted in the middle of the list
J O B F M H K P D G I A L E C N [A B D F G I H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
36
Convex Hull for Dynamic Data
Recompute Maximum J O B F M H K P D G I A L E C N [A B D F G I H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
37
Dynamic Tournament - Random Trees
8 7 8 7 5 6 8 7 1 6 3 8 4 7 4 11/17/2018 Convex Hull for Dynamic Data
38
Dynamic Tournament - Random Trees
8 7 8 7 5 6 8 7 1 6 3 8 4 7 4 6 9 11/17/2018 Convex Hull for Dynamic Data
39
Dynamic Tournament - Random Trees
9 7 9 7 5 9 8 7 1 3 8 4 9 7 4 6 9 11/17/2018 Convex Hull for Dynamic Data
40
Distance Comparison Fails - Case 1
J O B F M H K P D G A L I E C N [A B D F G H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
41
Distance Comparison Fails - Case 2
J O B F M H K P D G A L I E C N [A B D F G H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
42
Convex Hull for Dynamic Data
“B” is the new maximum B J O F M H K P D G A L I E C N [A B D F G H J K M O P] 11/17/2018 Convex Hull for Dynamic Data
43
Convex Hull for Dynamic Data
New recursive calls B J O F M H K P D G A L I E C N [[A B] [J M O]] 11/17/2018 Convex Hull for Dynamic Data
44
Convex Hull for Dynamic Data
Experiments 11/17/2018 Convex Hull for Dynamic Data
45
Convex Hull for Dynamic Data
Experiments Events per External Event 25 20 events/external event 5*logn 5*logn^2 15 event/external 10 5 20 40 60 80 100 120 Points 11/17/2018 Convex Hull for Dynamic Data
46
Convex Hull for Dynamic Data
Experiments 11/17/2018 Convex Hull for Dynamic Data
47
Convex Hull for Dynamic Data
Summary of my Work Kinetic Algorithms for convex hulls using adaptivity Bounce events: Can maintain convex hull of points in a box - the points bounce off of the walls of the box Streamlined library for kinetic convex hulls in the SML language A standard algorithm can be made kinetic in a few hours of work 11/17/2018 Convex Hull for Dynamic Data
48
Convex Hull for Dynamic Data
Work In Progress Timothy Chan’s O(h log n) algorithm: Improved “Ultimate Convex Hull”: Have a working version Graham Scan Algorithm: Have a working version Merge Hull Incremental Convex Hull Graham Scan, Merge and Incremental Hull algorithms require an extension to adaptivity Performance analysis of various convex hull algorithms 11/17/2018 Convex Hull for Dynamic Data
49
Conclusion and Future Work
Used adaptivity to solve the kinetic convex hull problem. Encouraging results. Adaptivity makes writing dynamic/kinetic algorithms a simple edition on the standard algorithm The quickhull algorithm updates based on events efficiently in the expected case. 11/17/2018 Convex Hull for Dynamic Data
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.