- 76 Views
- Uploaded on
- Presentation posted in: General

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

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

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

Pankaj K. Agarwal

Joint work with Hai Yu

- 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

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

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

- ε-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

- Previous results
- Our main result: a space-optimal data-stream algorithm in R2
- O(1/ε1/2) space, O(log1/ε) update time (amortized)

- Problem is easy if point set is fat

- Problem is easy if point set is fat

- 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

- Epochs and subepochs

o

- Epochs and subepochs

o

xi

- Epochs and subepochs

o

xi

2·||oxi||

an epoch

- Epochs and subepochs

yj

o

xi

2·||oxi||

- Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

- Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch

- Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch

- Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch

- Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch

- Epochs and subepochs

yj

2·d(yj,oxi)

o

xi

2·||oxi||

a subepoch

- Epochs and subepochs

Starting a new subepoch

yj+1

2·d(yj+1,oxi)

o

xi

2·||oxi||

- Epochs and subepochs

yj+1

2·d(yj+1,oxi)

o

xi

Starting a new epoch

2·||oxi||

- Epochs and subepochs

2·||oxi+1||

o

Starting a new epoch

xi+1

- Chan’s algorithm

o

x

- Chan’s algorithm

- Keep last log(1/ε) epochs alive

o

x

Too close to point o

- Chan’s algorithm

- Keep last log(1/ε) epochs alive

o

x

Too close to point o

- 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

- 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

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

- last log(1/ε) epochs

o

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

- last log(1/ε) epochs

o

x

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

- last log(1/ε) epochs

o

x

- 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) !

- 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

- 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

- Splitting and pruning

π/2

π/2

π/4

π/4

…

…

π/2j

π/2j

π/2j+1

0

0

- Point set is stretched in several directions

π/2

π/4

…

π/2j

0

- Point set is stretched in several directions

π/2

π/4

…

π/2j

0

- Point set is stretched in several directions

π/2

π/4

…

π/2j

π/2

0

π/4

…

π/2j+1

0

- Point set is stretched in several directions
- Overlay two angular partitions and maintain proper invariants

π/2

π/4

…

π/2j

π/2

0

π/4

…

π/2j+1

0

- 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

- Is the query time log (1/e) optimal if O(1/e1/2) space allowed?
- Coresets in the sliding window model?