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?

Recommend


More recommend