Convex Hull Algorithms for Dynamic Data Kanat Tangwongsan

  • Slides: 14
Download presentation
Convex Hull Algorithms for Dynamic Data Kanat Tangwongsan Joint work with Guy Blelloch and

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

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++: 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

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

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

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

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

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

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

Kinetic Convex Hull 1 -D Case n n n S(t) = {x 1(t), x

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

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

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?

Questions?

Thank you!!

Thank you!!