Title: August 20, 2002
1Convex Hull for Dynamic Data
Jorge L. Vittes
- August 20, 2002
- (joint work with Umut Acar, and Guy Blelloch)
2Motivation
- 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
3Dynamic Algorithms Changing Data
a
a
b
b
c
c
e
d
d
a
b
c
e
d
4Kinetic Algorithms Moving Data
a
a
b
b
c
c
d
Time 1
d
Time 0
b
a
c
Time 1e ... 1
d
5How to invent Dynamic/Kinetic Algorithms
- Just like any other algorithm. Think, ponder,
divide, conquer... - Or, use adaptivity...
6Adaptivity
- 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
7How 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
8Adaptivity Example
1
3
2
b
c
fun f (a,b,c) let u ab in if (u gt
0) then g(u) else g(bc) end
a
ab
1b
u
3
if ugt0 then g(u) else g(bc)
g(u)
r
0.33
9Adaptivity Example Change
3
2
-2
b
c
a
fun f (a,b,c) let u ab in if (u gt
0) then g(u) else g(bc) end
ab
1b
u
3
if ugt0 then g(u) else g(bc)
g(u)
r
0.33
10Update
-2
3
2
b
c
a
fun f (a,b,c) let u ab in if (u gt
0) then g(u) else g(bc) end
ab
-2b
u
v
0
5
if ugt0 then g(u) else g(bc)
g(u)
g(v)
r
0.5
11Update
-2
3
2
b
c
a
fun f (a,b,c) let u ab in if (u gt
0) then g(u) else g(bc) end
ab
-2b
bc
2c
u
v
0
5
g'(v)
if ugt0 then g(u) else g(bc)
g(v)
r
0.5
12Adaptivity 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
131-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
14Kinetic Maximum
- Numbers increase/decrease continuously in time
ni(t) ni ci t
ni
n1(t) 2t
n2(t) 5
n3(t) 6-t
time
tgreen 1
tblue 3
tred 0
15Sampling
n1(t) 2t
ni
n2(t) 5
n3(t) 6-t
time
tgreen 1
tblue 3
tred 0
16Internal and External Events
External event Final result changes
Internal event Final result does not change
but a test fails
17Proof 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
18Kinetic March
0.66
0.5
4
Time0
0.66
Time0.5e
Time0.66e
19Kinetic 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)
20The Kinetic Tournament
Time 0
f 2
21The Kinetic Tournament
Time2e
7
f6
1t
5-t
22The Kinetic Tournament
f7
8
Time6e
1t
1t
5-t
23The Kinetic Tournament
f7
1t
Time7e
1t
1t
5-t
24Performance 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
252-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
26Quick Hull Example
J
O
K
P
A
L
N
A B C D E F G H I J K L M N O P
27Quick Hull Example - Filter
J
O
K
P
A
L
N
A B D F G H J K M O P
28Quick Hull Example - Maximum
J
O
K
P
A
L
N
A B D F G H J K M O P
29Quick Hull Example - Filter
J
O
K
P
A
L
N
A B F J J O P
30Quick Hull Example - Maximum
J
O
B
K
P
A
L
N
A B F J J O P
31Quick Hull Example - Base Case
J
O
B
K
P
A
L
N
A B B J J O P
32Quick Hull Example - Done
J
O
B
K
P
A
L
N
A B B J J O O P
33Kinetic Quick Hull
- Two kinds of tests Line-side and distance
comparisons - Filtering gt Line Side
- Finding the furthest point gt Distance
comparisons - Have certificates for these two events that is all
34Line Side Test Fails
J
O
K
P
A
L
I
N
A B D F G H J K M O P
35I is inserted in the middle of the list
J
O
K
P
I
A
L
N
A B D F G I H J K M O P
36Recompute Maximum
J
O
K
P
I
A
L
N
A B D F G I H J K M O P
37Dynamic Tournament - Random Trees
38Dynamic Tournament - Random Trees
6
9
39Dynamic Tournament - Random Trees
9
9
9
9
6
9
40Distance Comparison Fails - Case 1
J
O
K
P
A
L
N
A B D F G H J K M O P
41Distance Comparison Fails - Case 2
J
O
K
P
A
L
N
A B D F G H J K M O P
42B is the new maximum
B
J
O
K
P
A
L
N
A B D F G H J K M O P
43New recursive calls
B
J
O
K
P
A
L
N
A B J M O
44Experiments
45Experiments
Events per External Event
25
20
events/external event
5logn
5logn2
15
event/external
10
5
0
0
20
40
60
80
100
120
Points
46Experiments
47Summary 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
48Work In Progress
- Timothy Chans 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
49Conclusion 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.