Upload
julio-youell
View
216
Download
1
Embed Size (px)
Citation preview
A Space-Optimal Data-Stream Algorithm for A Space-Optimal Data-Stream Algorithm for Coresets in the PlaneCoresets in the Plane
Pankaj K Agarwal
Joint work with Hai Yu
2
Extent MeasuresExtent Measures
Diameter width convex hull Simple shapes that enclose point sets
Min-radius ball min-volume box min-radius cylinder Min-width cylindrical shell min-width spherical shell
Maintaining shape descriptors for moving points Applications
Computer graphics Solid modeling Machine learning Data mining Sensor networks
3
ApproximationApproximation
ε-Kernel [A Har-Peled Varadarajan04]
This talk maintaining an ε-kernel Q of a stream S of points
a small subset that ε-approximate width of original input in all directions u
wu
Wu
computable an -kernel of size 1d2 in O(n+1εd-32) time [A etal Chan]
results in linear-time approx algorithm for many extent measures
4
ResultsResults Previous results
Our main result a space-optimal data-stream algorithm in R2
O(1ε12) space O(log 1ε) update time (amortized)
Dimension Space Update time Ref
Rd (1ε(d-1)2)logd
n1ε3(d-1)2 [A Har-Peled
Varadarajan 04]
Rd 1εd-32logd
(1ε)1ε12 [Chan 04]
R2 1ε12 log (1ε) [HershbergerSuri04]
5
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
6
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
7
Problem is easy if point set is fat
Keep track of nearest neighbor of each grid point Can be implemented efficiently in O(log 1ε) time per point
Algorithm OverviewAlgorithm Overview
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
2
Extent MeasuresExtent Measures
Diameter width convex hull Simple shapes that enclose point sets
Min-radius ball min-volume box min-radius cylinder Min-width cylindrical shell min-width spherical shell
Maintaining shape descriptors for moving points Applications
Computer graphics Solid modeling Machine learning Data mining Sensor networks
3
ApproximationApproximation
ε-Kernel [A Har-Peled Varadarajan04]
This talk maintaining an ε-kernel Q of a stream S of points
a small subset that ε-approximate width of original input in all directions u
wu
Wu
computable an -kernel of size 1d2 in O(n+1εd-32) time [A etal Chan]
results in linear-time approx algorithm for many extent measures
4
ResultsResults Previous results
Our main result a space-optimal data-stream algorithm in R2
O(1ε12) space O(log 1ε) update time (amortized)
Dimension Space Update time Ref
Rd (1ε(d-1)2)logd
n1ε3(d-1)2 [A Har-Peled
Varadarajan 04]
Rd 1εd-32logd
(1ε)1ε12 [Chan 04]
R2 1ε12 log (1ε) [HershbergerSuri04]
5
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
6
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
7
Problem is easy if point set is fat
Keep track of nearest neighbor of each grid point Can be implemented efficiently in O(log 1ε) time per point
Algorithm OverviewAlgorithm Overview
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
3
ApproximationApproximation
ε-Kernel [A Har-Peled Varadarajan04]
This talk maintaining an ε-kernel Q of a stream S of points
a small subset that ε-approximate width of original input in all directions u
wu
Wu
computable an -kernel of size 1d2 in O(n+1εd-32) time [A etal Chan]
results in linear-time approx algorithm for many extent measures
4
ResultsResults Previous results
Our main result a space-optimal data-stream algorithm in R2
O(1ε12) space O(log 1ε) update time (amortized)
Dimension Space Update time Ref
Rd (1ε(d-1)2)logd
n1ε3(d-1)2 [A Har-Peled
Varadarajan 04]
Rd 1εd-32logd
(1ε)1ε12 [Chan 04]
R2 1ε12 log (1ε) [HershbergerSuri04]
5
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
6
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
7
Problem is easy if point set is fat
Keep track of nearest neighbor of each grid point Can be implemented efficiently in O(log 1ε) time per point
Algorithm OverviewAlgorithm Overview
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
4
ResultsResults Previous results
Our main result a space-optimal data-stream algorithm in R2
O(1ε12) space O(log 1ε) update time (amortized)
Dimension Space Update time Ref
Rd (1ε(d-1)2)logd
n1ε3(d-1)2 [A Har-Peled
Varadarajan 04]
Rd 1εd-32logd
(1ε)1ε12 [Chan 04]
R2 1ε12 log (1ε) [HershbergerSuri04]
5
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
6
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
7
Problem is easy if point set is fat
Keep track of nearest neighbor of each grid point Can be implemented efficiently in O(log 1ε) time per point
Algorithm OverviewAlgorithm Overview
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
5
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
6
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
7
Problem is easy if point set is fat
Keep track of nearest neighbor of each grid point Can be implemented efficiently in O(log 1ε) time per point
Algorithm OverviewAlgorithm Overview
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
6
Problem is easy if point set is fat
Algorithm OverviewAlgorithm Overview
7
Problem is easy if point set is fat
Keep track of nearest neighbor of each grid point Can be implemented efficiently in O(log 1ε) time per point
Algorithm OverviewAlgorithm Overview
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
7
Problem is easy if point set is fat
Keep track of nearest neighbor of each grid point Can be implemented efficiently in O(log 1ε) time per point
Algorithm OverviewAlgorithm Overview
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
8
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
9
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o xi
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
10
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
2||oxi||
xi
an epoch
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
11
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
12
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
o
yj
2||oxi||
xi
2d(yjoxi
)
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
13
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
a subepoch
2d(yjoxi
)
yj
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
14
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
15
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
16
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
2d(yjoxi
)
yj
a subepoch
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
17
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
o xi
yj 2d(yjoxi
)
a subepoch
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
18
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
yj+1
Starting a new subepoch
o xi
2d(yj+1oxi)
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
19
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
2||oxi||
2d(yj+1oxi)
Starting a new epoch
o xi
yj+1
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
20
Epochs and subepochs
Algorithm OverviewAlgorithm Overview
Starting a new epoch
o
xi+1
2||oxi+1||
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
21
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
o x
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
22
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
23
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Too close to point o
o x
Keep last log(1ε) epochs alive
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
24
Algorithm OverviewAlgorithm Overview
Chanrsquos algorithm
Keep last log(1ε) epochs alive
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
25
Algorithm OverviewAlgorithm Overview Chanrsquos algorithm
Total space (1ε12) log2(1ε)
Keep last log(1ε) subepochs alive
Too close to point o
Too close to line ox
o x
Keep last log(1ε) epochs alive
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
26
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o
last log(1ε) epochs
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
27
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
28
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
29
New IngredientNew Ingredient
Prune points of previous epochs at the beginning of each new epoch
o x
last log(1ε) epochs
j-th last O(j2(2jε)12)
Total space remains O(1ε12)
O(1) O(1ε12)
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
30
New IngredientNew Ingredient Prune points of previous subepochs at the beginning of each new
subepoch
Algorithm for subepoch does not touch points of previous epochs
o x
j-th last O(j(2jε)12)
last log(1ε) subepochs
O(1) O(1ε12)
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
31
Point set is always stretched in vertical direction
Intuition for SubepochIntuition for Subepoch
2||ox||
o x
2d(yi-
jox)
yi-j
yi
2d(yiox)
π2π4
0π2j
hellip
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
32
Starting a SubepochStarting a Subepoch
Splitting and pruning π2
π4
0
π2j
hellip
π2
π4
0
π2j
hellip
π2j+1
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
33
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
34
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2π4
0π2j
hellip
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
35
Point set is stretched in several directions
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
36
Point set is stretched in several directions
Overlay two angular partitions and maintain proper invariants
Intuition for EpochIntuition for Epoch
π2
π4
0
hellipπ2j+1
π2π4
0π2j
hellip
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures
37
ExtensionsExtensions
Space-optimal approximation algorithm for maintaining width (smallest enclosing box etc) in R2
Space-optimal algorithm for maintaining (k ε)-kernels in R2
O(k ε12) space O(k log 1ε) update time
Improved algorithm for maintaining ε-kernels in Rd
O(1εd-32) space O(log 1ε) update time Similar results for (k ε)-kernels
Improved algorithms for numerous data-stream problems related to extent measures