Convex Hull Algorithms for Dynamic Data Kanat Tangwongsan














- Slides: 14

Convex Hull Algorithms for Dynamic Data Kanat Tangwongsan Joint work with Guy Blelloch and Umut Acar (TTI-C)

The Convex Hull Problem Output: CH(S) Input: S n Extensively studied: n n Graham Scan, Gift-Wrapping, Incremental Hull, Overmars, Quick-Hull, Ultimate Hull. Matched Lower-bound already!

Convex Hull++: Dynamic Case n Maintain the Hull under insertion and deletion. insert delete

Convex Hull#: Kinetic Case n n each point has velocity (v) maintain the hull (efficiently)

Known Solutions and Issues n Dynamic Convex Hull Overmars, Brodal, Mulmuley, Schwarzkopf, Preparata, Hershberger and Suri, Chan n complicated!! n hard to compose algorithms together n n Kinetic Convex Hull n n Guibas, de Berg, … None existed for 3 or higher dimensions

Self-Adjusting Computation Idea: Record who reads what and when main g f h k g f h m k m Memory Some parts of the input change

SAC vs. Dynamic Convex Hull n n n Automatic “dynamization” Allow composition of programs Down-side: not always efficient! n n Stability (=input-sensitivity) [Acar et al. SODA’ 04] Our Job: n n Design a stable static convex hull algorithm Focus: 3 -D case.

Our Approach Self-Adjusting Tree Suitable Convex Hull in 3 D + Dynamic Convex Hull in 3 D j Face k i Give orientation to edges Store (i, j) as key and k as data

Self-Adjusting Binary Tree Initial Run: Re-execution: Time

Kinetic Convex Hull 1 -D Case n n n S(t) = {x 1(t), x 2(t), …, xn(t)}, where xi(t) = xi(0) + vit Maintain min and max Observation: x 1 Value n x 2 x 3 Time

Idea: Certificates n Each comparison is associated with a certificate, where certificate = comparsion result + expiration time n Self-Adjusting Computation n n account for changes in order of expiration times

Summary n n Focus: 3 D {dynamic, kinetic} convex hull Dynamic Convex Hull n n n Amortized expected O(log n) in certain models. Worst-case bound: O(n log n) More performance analysis to come n n n Real-time bound: can it be better than O(n)? Practical performance: implemented, being evaluated. Kinetic Convex Hull n in progress!

Questions?

Thank you!!