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

time space trade offs for voronoi diagrams
SMART_READER_LITE
LIVE PREVIEW

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,


slide-1
SLIDE 1

Time-space Trade-offs for Voronoi Diagrams

Matias Korman Wolfgang Mulzer Andr´ e van Renssen Institut f¨ ur Informatik, Freie Universit¨ at Berlin, Germany National institute of informatics. Tokyo, Japan National institute of informatics. Tokyo, Japan Marcel Roeloffzen Paul Seiferth Yannik Stein Institut f¨ ur Informatik, Freie Universit¨ at Berlin, Germany Institut f¨ ur Informatik, Freie Universit¨ at Berlin, Germany Tohoku University. Tokyo, Japan Tohoku University. Tokyo, Japan

slide-2
SLIDE 2

Limited Memory

Started in the 70’s

slide-3
SLIDE 3

Limited Memory

Started in the 70’s Increased interest recently

slide-4
SLIDE 4

Limited Memory

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

slide-5
SLIDE 5

Voronoi Diagram

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

slide-6
SLIDE 6

Voronoi Diagram

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

slide-7
SLIDE 7

Voronoi Diagram

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

slide-8
SLIDE 8

Voronoi Diagram

Input: set P of points in R2 Output: Subdivision of R2, 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 O(n2) time using O(1) space [Asano et al. 2011] Takes O(n log n) time using O(n) space O(n2) time using O(1) space [Asano et al. 2011]

slide-9
SLIDE 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
slide-10
SLIDE 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
slide-11
SLIDE 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
slide-12
SLIDE 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
slide-13
SLIDE 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
slide-14
SLIDE 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

slide-15
SLIDE 15

Computing the vertices

Given R2 ⊂ P such that:

  • |R2| = O(s)
  • each vertex v ∈ V D(R2) has conflict set Bv with

|Bv| = O(n/s).

slide-16
SLIDE 16

Computing the vertices

Given R2 ⊂ P such that:

  • |R2| = O(s)
  • each vertex v ∈ V D(R2) has conflict set Bv with

|Bv| = O(n/s).

slide-17
SLIDE 17

Computing the vertices

Given R2 ⊂ P such that:

  • |R2| = O(s)
  • each vertex v ∈ V D(R2) has conflict set Bv with

|Bv| = O(n/s). To report Voronoi vertices in ∆ = {v1, v2, v3} ⊆ R2 only consider points in Bv1, Bv2, Bv3

slide-18
SLIDE 18

Computing the vertices

Given R2 ⊂ P such that:

  • |R2| = O(s)
  • each vertex v ∈ V D(R2) has conflict set Bv with

|Bv| = O(n/s). To report Voronoi vertices in ∆ = {v1, v2, v3} ⊆ R2 only consider points in Bv1, Bv2, Bv3

slide-19
SLIDE 19

Computing the vertices

Given R2 ⊂ P such that:

  • |R2| = O(s)
  • each vertex v ∈ V D(R2) has conflict set Bv with

|Bv| = O(n/s). To report Voronoi vertices in ∆ = {v1, v2, v3} ⊆ R2 only consider points in Bv1, Bv2, Bv3

slide-20
SLIDE 20

Computing the vertices

Given R2 ⊂ P such that:

  • |R2| = O(s)
  • each vertex v ∈ V D(R2) has conflict set Bv with

|Bv| = O(n/s). To report Voronoi vertices in ∆ = {v1, v2, v3} ⊆ R2 only consider points in Bv1, Bv2, Bv3

slide-21
SLIDE 21

Computing the Voronoi vertices

Problem: O(s) voronoi diagrams of size O(n/s) to compute

slide-22
SLIDE 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
slide-23
SLIDE 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
slide-24
SLIDE 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
slide-25
SLIDE 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
slide-26
SLIDE 26

Computing R2

  • Take random set R ⊂ P of size Θ(s)
  • Compute and triangulate V D(R)
  • Compute sizes of conflict sets Bv for v ∈ V D(R)
slide-27
SLIDE 27

Computing R2

  • Take random set R ⊂ P of size Θ(s)
  • Compute and triangulate V D(R)
  • Compute sizes of conflict sets Bv for v ∈ V D(R)
slide-28
SLIDE 28

Computing R2

  • Take random set R ⊂ P of size Θ(s)
  • Compute and triangulate V D(R)
  • Compute sizes of conflict sets Bv for v ∈ V D(R)
slide-29
SLIDE 29

Computing R2

  • Take random set R ⊂ P of size Θ(s)
  • Compute and triangulate V D(R)
  • Compute sizes of conflict sets Bv for v ∈ V D(R)
  • If size of conflict sets is too large, restart

tv = |Bv| · s/n

  • v∈V D(R) tv log tv = O(s)
slide-30
SLIDE 30

Computing R2

  • Take random set R ⊂ P of size Θ(s)
  • Compute and triangulate V D(R)
  • Compute sizes of conflict sets Bv for v ∈ V D(R)
  • If size of conflict sets is too large, restart

tv = |Bv| · s/n

  • v∈V D(R) tv log tv = O(s)

time to sample: O(n + s log s) count conflict size: O(n log s) total: O(n log s)

slide-31
SLIDE 31

Computing R2

Problem: For some v ∈ V D(R) we may have Bv ≫ n/s Solution: 1 sampling round: O(n log s + s log s) expected #rounds: O(log∗ s) total: O(n log s log∗ s)

  • Sample Θ(tv log tv) extra points from Bv for any

v ∈ V D(R) with tv ≥ 2.

  • Recompute conflict sizes
  • Continue sampling in large conflict sets
slide-32
SLIDE 32

Computing R2

Problem: For some v ∈ V D(R) we may have Bv ≫ n/s Solution: 1 sampling round: O(n log s + s log s) expected #rounds: O(log∗ s) total: O(n log s log∗ s)

  • Sample Θ(tv log tv) extra points from Bv for any

v ∈ V D(R) with tv ≥ 2.

  • Recompute conflict sizes
  • Continue sampling in large conflict sets
slide-33
SLIDE 33

Computing R2

Problem: For some v ∈ V D(R) we may have Bv ≫ n/s Solution: 1 sampling round: O(n log s + s log s) expected #rounds: O(log∗ s) total: O(n log s log∗ s)

  • Sample Θ(tv log tv) extra points from Bv for any

v ∈ V D(R) with tv ≥ 2.

  • Recompute conflict sizes
  • Continue sampling in large conflict sets
slide-34
SLIDE 34

Computing R2

Problem: For some v ∈ V D(R) we may have Bv ≫ n/s Solution: 1 sampling round: O(n log s + s log s) expected #rounds: O(log∗ s) total: O(n log s log∗ s)

  • Sample Θ(tv log tv) extra points from Bv for any

v ∈ V D(R) with tv ≥ 2.

  • Recompute conflict sizes
  • Continue sampling in large conflict sets
slide-35
SLIDE 35

Putting it together

(Almost optimal for both linear and constant memory) Computing R2: expected O(n log s log∗ s) Computing for each triangle: expected O((n2/s) log s)

Reporting Voronoi diagrams of a set of n points in the plane can be done in O((n2/s) log s + n log s log∗ s) expected time. Open Problem: Can we do the same in worst-case time?