Presentation is loading. Please wait.

Presentation is loading. Please wait.

June 12, 2003 (joint work with Umut Acar, and Guy Blelloch)

Similar presentations


Presentation on theme: "June 12, 2003 (joint work with Umut Acar, and Guy Blelloch)"— Presentation transcript:

1 June 12, 2003 (joint work with Umut Acar, and Guy Blelloch)
Convex Hull for Dynamic Data Convex Hull and Parallel Tree Contraction Jorge L. Vittes June 12, 2003 (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 4/4/2019 Convex Hull for Dynamic Data

3 Dynamic Algorithms: Changing Data
b b c c e d d a b c e d 4/4/2019 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 4/4/2019 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... 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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) 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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] 4/4/2019 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] 4/4/2019 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] 4/4/2019 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] ] 4/4/2019 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] ] 4/4/2019 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] ] 4/4/2019 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] ] 4/4/2019 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 4/4/2019 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] 4/4/2019 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] 4/4/2019 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] 4/4/2019 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 4/4/2019 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 4/4/2019 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 4/4/2019 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] 4/4/2019 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] 4/4/2019 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] 4/4/2019 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]] 4/4/2019 Convex Hull for Dynamic Data

44 Convex Hull for Dynamic Data
Experiments 4/4/2019 Convex Hull for Dynamic Data

45 Summary of ConvexHull Work
Kinetic Algorithms for convex hulls using adaptivity Timothy Chan’s O(h log n) algorithm: Improved “Ultimate Convex Hull”: Have a working version QuickHull 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 4/4/2019 Convex Hull for Dynamic Data

46 Convex Hull for Dynamic Data
Parallel Tree Contraction Fundamental technique [Miller & Reif ‘85] Contraction proceeeds in rounds Each round shrinks the tree by a constant factor Expected O(logn) rounds Innovative Idea: Shrink the tree by local operations 4/4/2019 Convex Hull for Dynamic Data

47 Parallel Tree Contraction
Start with a tree In each round: Each node flips a coin If leaf node then rake If degree=2 and flip = H, and neighbors = T then contract Expected O(logn) rounds. 4/4/2019 Convex Hull for Dynamic Data

48 Convex Hull for Dynamic Data
Example H H H T T H T H T 4/4/2019 Convex Hull for Dynamic Data

49 Contracting and Raking
H H H T T H T H T 4/4/2019 Convex Hull for Dynamic Data

50 Contracting and Raking
H T T 4/4/2019 Convex Hull for Dynamic Data

51 Contracting and Raking (cont.)
H T T 4/4/2019 Convex Hull for Dynamic Data

52 Convex Hull for Dynamic Data
Done H 4/4/2019 Convex Hull for Dynamic Data

53 Convex Hull for Dynamic Data
Dynamic Trees Problem Given a forest of weighted trees Operations Link: edge insertion cut: edge deletion Queries Heaviest edge in a subtree? Heaviest edge on a path? 4/4/2019 Convex Hull for Dynamic Data

54 Convex Hull for Dynamic Data
Data Structures for Dynamic Trees Sleator Tarjan ‘85 Amortized O(logn) and worst-case O(logn) Topology Trees [Frederickson ‘93] Ternary (degree-tree) trees Worst case O(logn) Top Trees [AlstrupHoLiTh ‘97] Generalize Topology Trees for arbitrary degree Idea: Trees as paths 4/4/2019 Convex Hull for Dynamic Data

55 Dynamic Parallel Tree Contraction
Keep a copy of each round of the initial run. Each round affects next round. The nodes that “live” to the next round copy their neighbors scars, and pointers to them. Dependencies are based on what the node reads to do its work. 4/4/2019 Convex Hull for Dynamic Data

56 Dynamic Parallel Tree Contraction
H H T T H H H H T T T T H H T T H H T T x x T H T H T T x x x H T T x x 4/4/2019 Convex Hull for Dynamic Data

57 Convex Hull for Dynamic Data
Propagation If any data changes nodes whose action depend on that data are woken up. Wake-up only those nodes that get affected by a change. Run same code as in original run. Expected constant amount of nodes woken up per round. 4/4/2019 Convex Hull for Dynamic Data

58 Convex Hull for Dynamic Data
Change an edge H H T T H H H H T T T T H H T T H H T T x x T H T H T T x x x H T T x x 4/4/2019 Convex Hull for Dynamic Data

59 Convex Hull for Dynamic Data
Three nodes woken up H H T T H H H H T T T T H H T T H H T T x x T H T H T T x x x H T T x x 4/4/2019 Convex Hull for Dynamic Data

60 Nodes rerun code, more nodes woken up
H H T T H H H H T T T T H H T T H H T T x x T H T H T T x x x H T T x x 4/4/2019 Convex Hull for Dynamic Data

61 Propagation continued
H H T T H H H H T T T T H H T T H H T T x x T H T H T T x x x H T T x x 4/4/2019 Convex Hull for Dynamic Data

62 Convex Hull for Dynamic Data
Experimental Results 4/4/2019 Convex Hull for Dynamic Data

63 Convex Hull for Dynamic Data
Work In Progress Analyzing Power of the data structure (what it can and cannot do) Different Applications Analyzing Running times for: Different changes. Unbalanced Trees. 4/4/2019 Convex Hull for Dynamic Data

64 Conclusion and Future Work
ConvexHull 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. Parrallel Tree Contraction Efficient times O(log(n)) expected time for an update. Future Work: More Applications 4/4/2019 Convex Hull for Dynamic Data


Download ppt "June 12, 2003 (joint work with Umut Acar, and Guy Blelloch)"

Similar presentations


Ads by Google