time space trade offs for voronoi diagrams
play

Time-space Trade-offs for Voronoi Diagrams Matias Korman Wolfgang - PowerPoint PPT Presentation

Time-space Trade-offs for Voronoi Diagrams Matias Korman Wolfgang Mulzer Andr e van Renssen National institute of Institut f ur Informatik, National institute of informatics. Freie Universit at informatics. Tokyo, Japan Berlin,


  1. Time-space Trade-offs for Voronoi Diagrams Matias Korman Wolfgang Mulzer Andr´ e van Renssen National institute of Institut f¨ ur Informatik, National institute of informatics. Freie Universit¨ at informatics. Tokyo, Japan Berlin, Germany Tokyo, Japan Marcel Roeloffzen Paul Seiferth Yannik Stein Tohoku University. Tohoku University. Institut f¨ ur Informatik, Institut f¨ ur Informatik, Tokyo, Japan Tokyo, Japan Freie Universit¨ at Freie Universit¨ at Berlin, Germany Berlin, Germany

  2. Limited Memory Started in the 70’s

  3. Limited Memory Started in the 70’s Increased interest recently

  4. Limited Memory Started in the 70’s Model Input: read-only, random-access Memory: O ( s ) words Output: write-only Increased interest recently

  5. Voronoi Diagram Input: set P of points in R 2 Output: Subdivision of R 2 , such that each region has a common nearest neighbor in P . Output format: vertices of Voronoi diagram in arbitrary order

  6. Voronoi Diagram Input: set P of points in R 2 Output: Subdivision of R 2 , such that each region has a common nearest neighbor in P . Output format: vertices of Voronoi diagram in arbitrary order

  7. Voronoi Diagram Input: set P of points in R 2 Output: Subdivision of R 2 , such that each region has a common nearest neighbor in P . Output format: vertices of Voronoi diagram in arbitrary order

  8. Voronoi Diagram Input: set P of points in R 2 Output: Subdivision of R 2 , such that each region has a common nearest neighbor in P . Output format: vertices of Voronoi diagram in arbitrary order Takes O ( n log n ) time using O ( n ) space Takes O ( n log n ) time using O ( n ) space O ( n 2 ) time using O (1) space [Asano et al. 2011] O ( n 2 ) time using O (1) space [Asano et al. 2011]

  9. General approach • Find R ⊂ P of size O ( s ) • Compute V D ( R ) • Triangulate V D ( R ) • For each triangle, report the vertices of V D ( P ) inside it

  10. General approach • Find R ⊂ P of size O ( s ) • Compute V D ( R ) • Triangulate V D ( R ) • For each triangle, report the vertices of V D ( P ) inside it

  11. General approach • Find R ⊂ P of size O ( s ) • Compute V D ( R ) • Triangulate V D ( R ) • For each triangle, report the vertices of V D ( P ) inside it

  12. General approach • Find R ⊂ P of size O ( s ) • Compute V D ( R ) • Triangulate V D ( R ) • For each triangle, report the vertices of V D ( P ) inside it

  13. General approach • Find R ⊂ P of size O ( s ) • Compute V D ( R ) • Triangulate V D ( R ) • For each triangle, report the vertices of V D ( P ) inside it

  14. General approach • Find R ⊂ P of size O ( s ) • Compute V D ( R ) • Triangulate V D ( R ) • For each triangle, report the vertices of V D ( P ) inside it Difficulty: ensure each triangle requires O ( n/s ) points to compute its Voronoi vertices

  15. Computing the vertices Given R 2 ⊂ P such that: • | R 2 | = O ( s ) • each vertex v ∈ V D ( R 2 ) has conflict set B v with | B v | = O ( n/s ) .

  16. Computing the vertices Given R 2 ⊂ P such that: • | R 2 | = O ( s ) • each vertex v ∈ V D ( R 2 ) has conflict set B v with | B v | = O ( n/s ) .

  17. Computing the vertices Given R 2 ⊂ P such that: • | R 2 | = O ( s ) • each vertex v ∈ V D ( R 2 ) has conflict set B v with | B v | = O ( n/s ) . To report Voronoi vertices in ∆ = { v 1 , v 2 , v 3 } ⊆ R 2 only consider points in B v 1 , B v 2 , B v 3

  18. Computing the vertices Given R 2 ⊂ P such that: • | R 2 | = O ( s ) • each vertex v ∈ V D ( R 2 ) has conflict set B v with | B v | = O ( n/s ) . To report Voronoi vertices in ∆ = { v 1 , v 2 , v 3 } ⊆ R 2 only consider points in B v 1 , B v 2 , B v 3

  19. Computing the vertices Given R 2 ⊂ P such that: • | R 2 | = O ( s ) • each vertex v ∈ V D ( R 2 ) has conflict set B v with | B v | = O ( n/s ) . To report Voronoi vertices in ∆ = { v 1 , v 2 , v 3 } ⊆ R 2 only consider points in B v 1 , B v 2 , B v 3

  20. Computing the vertices Given R 2 ⊂ P such that: • | R 2 | = O ( s ) • each vertex v ∈ V D ( R 2 ) has conflict set B v with | B v | = O ( n/s ) . To report Voronoi vertices in ∆ = { v 1 , v 2 , v 3 } ⊆ R 2 only consider points in B v 1 , B v 2 , B v 3

  21. Computing the Voronoi vertices Problem: O ( s ) voronoi diagrams of size O ( n/s ) to compute

  22. Computing the Voronoi vertices Problem: O ( s ) voronoi diagrams of size O ( n/s ) to compute Solution: Use O (1) -memory algorithm on each triangle: • Allocate each triangle O (1) memory • Scan points O ( n/s ) times and O ( n log s ) per scan

  23. Computing the Voronoi vertices Problem: O ( s ) voronoi diagrams of size O ( n/s ) to compute Solution: Use O (1) -memory algorithm on each triangle: • Allocate each triangle O (1) memory • Scan points O ( n/s ) times and O ( n log s ) per scan

  24. Computing the Voronoi vertices Problem: O ( s ) voronoi diagrams of size O ( n/s ) to compute Solution: Use O (1) -memory algorithm on each triangle: • Allocate each triangle O (1) memory • Scan points O ( n/s ) times and O ( n log s ) per scan

  25. Computing the Voronoi vertices Problem: O ( s ) voronoi diagrams of size O ( n/s ) to compute Solution: Use O (1) -memory algorithm on each triangle: • Allocate each triangle O (1) memory • Scan points O ( n/s ) times and O ( n log s ) per scan

  26. Computing R 2 • Take random set R ⊂ P of size Θ( s ) • Compute and triangulate V D ( R ) • Compute sizes of conflict sets B v for v ∈ V D ( R )

  27. Computing R 2 • Take random set R ⊂ P of size Θ( s ) • Compute and triangulate V D ( R ) • Compute sizes of conflict sets B v for v ∈ V D ( R )

  28. Computing R 2 • Take random set R ⊂ P of size Θ( s ) • Compute and triangulate V D ( R ) • Compute sizes of conflict sets B v for v ∈ V D ( R )

  29. Computing R 2 • Take random set R ⊂ P of size Θ( s ) • Compute and triangulate V D ( R ) • Compute sizes of conflict sets B v for v ∈ V D ( R ) • If size of conflict sets is too large, restart t v = | B v | · s/n � v ∈ V D ( R ) t v log t v = O ( s )

  30. Computing R 2 • Take random set R ⊂ P of size Θ( s ) • Compute and triangulate V D ( R ) • Compute sizes of conflict sets B v for v ∈ V D ( R ) • If size of conflict sets is too large, restart t v = | B v | · s/n � v ∈ V D ( R ) t v log t v = O ( s ) time to sample: O ( n + s log s ) count conflict size: O ( n log s ) total: O ( n log s )

  31. Computing R 2 Problem : For some v ∈ V D ( R ) we may have B v ≫ n/s Solution : • Sample Θ( t v log t v ) extra points from B v for any v ∈ V D ( R ) with t v ≥ 2 . • Recompute conflict sizes • Continue sampling in large conflict sets 1 sampling round: O ( n log s + s log s ) expected #rounds: O (log ∗ s ) total: O ( n log s log ∗ s )

  32. Computing R 2 Problem : For some v ∈ V D ( R ) we may have B v ≫ n/s Solution : • Sample Θ( t v log t v ) extra points from B v for any v ∈ V D ( R ) with t v ≥ 2 . • Recompute conflict sizes • Continue sampling in large conflict sets 1 sampling round: O ( n log s + s log s ) expected #rounds: O (log ∗ s ) total: O ( n log s log ∗ s )

  33. Computing R 2 Problem : For some v ∈ V D ( R ) we may have B v ≫ n/s Solution : • Sample Θ( t v log t v ) extra points from B v for any v ∈ V D ( R ) with t v ≥ 2 . • Recompute conflict sizes • Continue sampling in large conflict sets 1 sampling round: O ( n log s + s log s ) expected #rounds: O (log ∗ s ) total: O ( n log s log ∗ s )

  34. Computing R 2 Problem : For some v ∈ V D ( R ) we may have B v ≫ n/s Solution : • Sample Θ( t v log t v ) extra points from B v for any v ∈ V D ( R ) with t v ≥ 2 . • Recompute conflict sizes • Continue sampling in large conflict sets 1 sampling round: O ( n log s + s log s ) expected #rounds: O (log ∗ s ) total: O ( n log s log ∗ s )

  35. Putting it together Computing R 2 : expected O ( n log s log ∗ s ) Computing for each triangle: expected O (( n 2 /s ) log s ) ⇒ Reporting Voronoi diagrams of a set of n points in the plane can be done in O (( n 2 /s ) log s + n log s log ∗ s ) expected time. (Almost optimal for both linear and constant memory) Open Problem: Can we do the same in worst-case time?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend