37
A Space-Optimal Data-Stream A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

Embed Size (px)

Citation preview

Page 1: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 2: A Space-Optimal Data-Stream Algorithm for Coresets 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

Page 3: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 4: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 5: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 6: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 7: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 8: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 9: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 10: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 11: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 12: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 13: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 14: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 15: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 16: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 17: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 18: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 19: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 20: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 21: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 22: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 23: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 24: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 25: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 26: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 27: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 28: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 29: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 30: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 31: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 32: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 33: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 34: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 35: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 36: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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

Page 37: A Space-Optimal Data-Stream Algorithm for Coresets in the Plane Pankaj K. Agarwal Joint work with Hai Yu

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