A space optimal data stream algorithm for coresets in the plane
This presentation is the property of its rightful owner.
Sponsored Links
1 / 39

A Space-Optimal Data-Stream Algorithm for Coresets in the Plane PowerPoint PPT Presentation


  • 64 Views
  • Uploaded on
  • Presentation posted in: General

A Space-Optimal Data-Stream Algorithm for Coresets in the Plane. Pankaj K. Agarwal Joint work with Hai Yu. Extent Measures. Diameter, width, convex hull Simple shapes that enclose point sets Min-radius ball, min-volume box, min-radius cylinder

Download Presentation

A Space-Optimal Data-Stream Algorithm for Coresets in the Plane

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


A space optimal data stream algorithm for coresets in the plane

A Space-Optimal Data-Stream Algorithm for Coresets in the Plane

Pankaj K. Agarwal

Joint work with Hai Yu


Extent measures

Extent 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


Approximation

Approximation

  • ε-Kernel[A., Har-Peled, Varadarajan,04]

a small subset that ε-approximate directional width of input points in all directions


Approximation1

Approximation

  • ε-Kernel[A., Har-Peled, Varadarajan,04]

  • This talk: maintaining an ε-kernel Q of a stream S of points

a small subset that ε-approximate directional width of input points in all directions

wu

u

computable an e-kernel of size 1/ed/2 in O(n+1/εd-3/2) time [A. etal, Chan]

Wu

results in linear-time approx algorithm for many extent measures


Results

Results

  • Previous results

  • Our main result: a space-optimal data-stream algorithm in R2

    • O(1/ε1/2) space, O(log1/ε) update time (amortized)


Algorithm overview

Algorithm Overview

  • Problem is easy if point set is fat


Algorithm overview1

Algorithm Overview

  • Problem is easy if point set is fat


Algorithm overview2

Algorithm Overview

  • 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

Apply affine transform if point set not fat


Algorithm overview3

Algorithm Overview

  • Epochs and subepochs

o


Algorithm overview4

Algorithm Overview

  • Epochs and subepochs

o

xi


Algorithm overview5

Algorithm Overview

  • Epochs and subepochs

o

xi

2·||oxi||

an epoch


Algorithm overview6

Algorithm Overview

  • Epochs and subepochs

yj

o

xi

2·||oxi||


Algorithm overview7

Algorithm Overview

  • Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||


Algorithm overview8

Algorithm Overview

  • Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch


Algorithm overview9

Algorithm Overview

  • Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch


Algorithm overview10

Algorithm Overview

  • Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch


Algorithm overview11

Algorithm Overview

  • Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch


Algorithm overview12

Algorithm Overview

  • Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch


Algorithm overview13

Algorithm Overview

  • Epochs and subepochs

Starting a new subepoch

yj+1

2·d(yj+1,oxi)

o

xi

2·||oxi||


Algorithm overview14

Algorithm Overview

  • Epochs and subepochs

yj+1

2·d(yj+1,oxi)

o

xi

Starting a new epoch

2·||oxi||


Algorithm overview15

Algorithm Overview

  • Epochs and subepochs

2·||oxi+1||

o

Starting a new epoch

xi+1


Algorithm overview16

Algorithm Overview

  • Chan’s algorithm

o

x


Algorithm overview17

Algorithm Overview

  • Chan’s algorithm

  • Keep last log(1/ε) epochs alive

o

x

Too close to point o


Algorithm overview18

Algorithm Overview

  • Chan’s algorithm

  • Keep last log(1/ε) epochs alive

o

x

Too close to point o


Algorithm overview19

Algorithm Overview

  • Chan’s algorithm

  • Keep last log(1/ε) epochs alive

o

x

Too close to point o

Too close to line ox

  • Keep last log(1/ε) subepochs alive


Algorithm overview20

Algorithm Overview

  • Chan’s algorithm

  • Total space: (1/ε1/2) log2(1/ε)

  • Keep last log(1/ε) epochs alive

o

x

Too close to point o

Too close to line ox

  • Keep last log(1/ε) subepochs alive


New ingredient

New Ingredient

  • Prune points of previous epochs at the beginning of each new epoch

  • last log(1/ε) epochs

o


New ingredient1

New Ingredient

  • Prune points of previous epochs at the beginning of each new epoch

  • last log(1/ε) epochs

o

x


New ingredient2

New Ingredient

  • Prune points of previous epochs at the beginning of each new epoch

  • last log(1/ε) epochs

o

x


New ingredient3

New Ingredient

  • Prune points of previous epochs at the beginning of each new epoch

  • last log(1/ε) epochs

o

x

  • j-th last: O(j2/(2jε)1/2)

  • O(1)

  • O(1/ε1/2)

  • Total space remains O(1/ε1/2) !


New ingredient4

New 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ε)1/2)

  • O(1/ε1/2)

  • O(1)

  • last log(1/ε) subepochs


Intuition for subepoch

Intuition for Subepoch

  • Point set is always stretched in vertical direction

yi

2·d(yi,ox)

yi-j

2·d(yi-j,ox)

o

x

π/2

2·||ox||

π/4

π/2j

0


Starting a subepoch

Starting a Subepoch

  • Splitting and pruning

π/2

π/2

π/4

π/4

π/2j

π/2j

π/2j+1

0

0


Intuition for epoch

Intuition for Epoch

  • Point set is stretched in several directions

π/2

π/4

π/2j

0


Intuition for epoch1

Intuition for Epoch

  • Point set is stretched in several directions

π/2

π/4

π/2j

0


Intuition for epoch2

Intuition for Epoch

  • Point set is stretched in several directions

π/2

π/4

π/2j

π/2

0

π/4

π/2j+1

0


Intuition for epoch3

Intuition for Epoch

  • Point set is stretched in several directions

  • Overlay two angular partitions and maintain proper invariants

π/2

π/4

π/2j

π/2

0

π/4

π/2j+1

0


Extensions

Extensions

  • Space-optimal approximation algorithm for maintaining width (smallest enclosing box, etc) in R2

  • Space-optimal algorithm for maintaining (k, ε)-kernels in R2

    • O(k /ε1/2) space, O(k log 1/ε) update time

  • Improved algorithm for maintaining ε-kernels in Rd

    • O(1/εd-3/2) space, O(log 1/ε) update time

    • Similar results for (k, ε)-kernels

  • Improved algorithms for numerous data-stream problems related to extent measures


Open problems

Open Problems

  • Is the query time log (1/e) optimal if O(1/e1/2) space allowed?

  • Coresets in the sliding window model?


  • Login