Download - Degree-driven algorithm design for computing the Voronoi diagram

Transcript
Page 1: Degree-driven algorithm design for computing the Voronoi diagram

Degree-driven algorithm design for computing the Voronoi

diagram

Jack Snoeyink

FWCG08Oct 31, 2008

David L. Millman

University of North Carolina - Chapel Hill

Page 2: Degree-driven algorithm design for computing the Voronoi diagram

2

Voronoi diagrams

Page 3: Degree-driven algorithm design for computing the Voronoi diagram

3

Voronoi diagrams

Implicit Voronoi Diagram [LPT97]

Page 4: Degree-driven algorithm design for computing the Voronoi diagram

4

Implicit Voronoi Diagram [LPT97] Topological component

• Planar embedding Geometric Component

• Each vertex (vx,vy) of Voronoi diagram of S

vx* =

vx 0 ≤ vx ≤ 2b −1 and vx is an integer

vx⎣ ⎦ + 12

0 ≤ vx ≤ 2b −1 and vx is not an integer

0 vx < 02b − 1

2 vx > 2b −1

⎨ ⎪ ⎪

⎩ ⎪ ⎪

Same for vy*

Page 5: Degree-driven algorithm design for computing the Voronoi diagram

5

Basic ProblemGiven:

sites S ={s1,s2,…,sn} w/ b-bit integer coords

Construct:

implied Voronoi V*(S) with minimum precision.

Note: precision < 5b bits precludes computing the Voronoi Diagram…

Page 6: Degree-driven algorithm design for computing the Voronoi diagram

6

Previous WorkHandling the precision requirements of

geometric computation: Rely on machine precision Exact Geometric Computation [Y97] Arithmetic Filters [FV93][DP99] Adaptive Predicates [P92][S97] Topological Consistency [SI92] Degree-driven algorithmic design [LPT97]

Page 7: Degree-driven algorithm design for computing the Voronoi diagram

7

Cell GraphCell Vertex

Cell Edge

Grid Cell Vertex

Non-Grid Cell Vertex

Page 8: Degree-driven algorithm design for computing the Voronoi diagram

8

Randomized Incramental [SI92]

Page 9: Degree-driven algorithm design for computing the Voronoi diagram

9

bisectorInCellGiven:

Two sites s1, s2, and a grid cell G

Decide: Whether b12 passes through G

g = xg ,yg( )

g− s12 = gx − x1( )

2 + gy − y1( )2

Page 10: Degree-driven algorithm design for computing the Voronoi diagram

10

Arithmetic Degree Arithmetic degree

- monomial, sum of the arithmetic degree of its variables

- polynomial, largest arithmetic degree of its monomials

gx − x1( )2 + gy − y1( )

2

? gx − x2( )2 + gy − y2( )

2

gx − x1

16 7 8 ⎛

⎝ ⎜ ⎜

⎠ ⎟ ⎟

2

26 7 4 8 4

+ gy − y1

16 7 8 ⎛

⎝ ⎜ ⎜

⎠ ⎟ ⎟

2

26 7 4 8 4

gx − x1

16 7 8 ⎛

⎝ ⎜ ⎜

⎠ ⎟ ⎟

2

+ gy − y1

16 7 8 ⎛

⎝ ⎜ ⎜

⎠ ⎟ ⎟

2

gx1}

− x1

1} ⎛

⎝ ⎜

⎠ ⎟2

+ gy1}

− y1

1} ⎛

⎝ ⎜

⎠ ⎟2

gx − x1( )2

26 7 4 8 4 + gy − y1( )

2

26 7 4 8 4

21 2 4 4 4 3 4 4 4

Page 11: Degree-driven algorithm design for computing the Voronoi diagram

11

bisectorInCellGiven:

Two sites s1, s2, and a grid cell G

Decide: Whether b12 passes through G Degree 2 and constant time

g = xg ,yg( )

q− s12 = gx − x1( )

2 + gy − y1( )2

Page 12: Degree-driven algorithm design for computing the Voronoi diagram

12

stabbingOrderingGiven:

Two bisectors b12 & b34 that stab a grid cell G

Determine: The order in which the bisectors intersect the cell walls

Degree 3 and constant time

q = xq ,yq( )

q− s1 = q− s2x1

2 − x22 + y1

2 − y22 = 2 x1 − x2( )xq − 2 y1 − y2( )yq

Page 13: Degree-driven algorithm design for computing the Voronoi diagram

13

bisectorWalkGiven:

Two sites s1, s2 and a direction to walk

bisectorWalk:a traversal of a subset of the cells that b12 passes though. Degree 2 and log(g)

Page 14: Degree-driven algorithm design for computing the Voronoi diagram

14

bisectorIntersection

Degree 3 and log(g)

Given: Four sites si, i={1,2,3,4}

Find: The grid cell that contains the intersection of bisectors b12 & b34

Page 15: Degree-driven algorithm design for computing the Voronoi diagram

15

Results Method for computing the implicit Voronoi

diagram using predicates of max degree 3. Running time is in O(n (log n + log g)),

where g is the max bisector length. First construction of the implicit Voronoi

w/o computing the full Voronoi diagram.

Page 16: Degree-driven algorithm design for computing the Voronoi diagram

16

Future Work Can we do this in degree 2? Generalizing to other diagrams Diagrams with non-linear bisectors Identify the grid cell containing a bisector

intersection in constant time

Page 17: Degree-driven algorithm design for computing the Voronoi diagram

17

Happy Halloween

Thank you!