ball packings and fat voronoi diagrams
DESCRIPTION
Here's a toy problem: What is the SMALLEST number of unit balls you can fit in a box such that no more will fit? In this talk, I will show how just thinking about a naive greedy approach to this problem leads to a simple derivation of several of the most important theoretical results in the field of mesh generation. We'll prove classic upper and lower bounds on both the number of balls and the complexity of their interrelationships. Then, we'll relate this problem to a similar one called the Fat Voronoi Problem, in which we try to find point sets such that every Voronoi cell is fat (the ratio of the radii of the largest contained to smallest containing ball is bounded). This problem has tremendous promise in the future of mesh generation as it can circumvent the classic lowerbounds presented in the first half of the talk. Unfortunately the simple approach no longer works. In the end we will show that the number of neighbors of any cell in a Fat Voronoi Diagram in the plane is bounded by a constant (if you think that's obvious, spend a minute to try to prove it). We'll also talk a little about the higher dimensional version of the problem and its wide range of applications.TRANSCRIPT
Ball Packings and
Fat Voronoi Diagrams
Don Sheehy
Ball Packings
Ball Packings
Packing unit balls into a square:
Ball Packings
Packing unit balls into a square:Packing means disjoint interiors.
Ball Packings
Packing unit balls into a square:Packing means disjoint interiors.Maximal means no more will fit.
Ball Packings
Packing unit balls into a square:Packing means disjoint interiors.Maximal means no more will fit.
Goal: Find a small, maximal packing.
Ball Packings
Packing unit balls into a square:Packing means disjoint interiors.Maximal means no more will fit.
Goal: Find a small, maximal packing.
Greedy Algorithm: - Find the biggest empty space. - Add another ball there.
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound
Total volume is at most s2.
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound
Total volume is at most s2.
s2
!
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound
Total volume is at most s2.
(Packing Argument)s2
!
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound Lower Bound
Total volume is at most s2.
(Packing Argument)s2
!
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound Lower Bound
Total volume is at most s2. Each Voronoi cell is contained in a ball of radius 2.
(Packing Argument)s2
!
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound Lower Bound
Total volume is at most s2. Each Voronoi cell is contained in a ball of radius 2.
(Packing Argument)s2
!
s2
4!
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound Lower Bound
Total volume is at most s2. Each Voronoi cell is contained in a ball of radius 2.
(Packing Argument) (Covering Argument)s2
!
s2
4!
Problem:
Given n balls in a s x s box, how many total will there be after running the greedy algorithm?
Upper Bound Lower Bound
Total volume is at most s2. Each Voronoi cell is contained in a ball of radius 2.
(Packing Argument) (Covering Argument)
Why care about a factor of 4? Because 4 = 2d
.
s2
!
s2
4!
Voronoi Aspect Ratio
Voronoi Aspect Ratio
Ball Packing
r ! 1, R < 2
Voronoi Aspect Ratio
Ball Packing
r ! 1, R < 2R
r< constant
Voronoi Aspect Ratio
Ball Packing Meshing
r ! 1, R < 2R
r< constant
Voronoi Aspect Ratio
Ball Packing Meshing
r ! 1, R < 2R
r< constant
Good Aspect Ratio Voronoi Diagram
Good Quality Delaunay Triangulation
Voronoi Aspect Ratio
Ball Packing Meshing
r ! 1, R < 2R
r< constant
Good Aspect Ratio Voronoi Diagram
Good Quality Delaunay Triangulation
Voronoi Refinement Meshing:While any Voronoi cell has “bad” aspect ratio,add its farthest corner.
The Local Feature Size
f(x) = distance to second nearest point of P.
P: inputM: output
The Local Feature Size
f(x) = distance to second nearest point of P.
P: inputM: output
Key fact about Greedy Voronoi refinement:
for all vertices v in M.
rv ! f(v) ! krv
The Local Feature Size
f(x) = distance to second nearest point of P.
P: inputM: output
Key fact about Greedy Voronoi refinement:
for all vertices v in M.
rv ! f(v) ! krv
The local feature size tells us how big the ball for v is.
The Upper Bound
The Upper BoundTheorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
The Upper BoundTheorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
The Upper Bound
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
>"v!M
!bv
1
f(x)ddx
!"v!M
!bv
1
((k + 1)rv)ddx
="v!M
rdv!d
((k + 1)rv)d
= |M |!d
(k + 1)d.
Theorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
The Upper Bound
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
>"v!M
!bv
1
f(x)ddx
!"v!M
!bv
1
((k + 1)rv)ddx
="v!M
rdv!d
((k + 1)rv)d
= |M |!d
(k + 1)d.
Theorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
The Upper Bound
Recall: f(v) ! krv.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
>"v!M
!bv
1
f(x)ddx
!"v!M
!bv
1
((k + 1)rv)ddx
="v!M
rdv!d
((k + 1)rv)d
= |M |!d
(k + 1)d.
Theorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
The Upper Bound
Recall: f(v) ! krv.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
>"v!M
!bv
1
f(x)ddx
!"v!M
!bv
1
((k + 1)rv)ddx
="v!M
rdv!d
((k + 1)rv)d
= |M |!d
(k + 1)d.
Theorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
Claim: If x ! bv,then f(x) " (k + 1)rv.
The Upper Bound
Recall: f(v) ! krv.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
>"v!M
!bv
1
f(x)ddx
!"v!M
!bv
1
((k + 1)rv)ddx
="v!M
rdv!d
((k + 1)rv)d
= |M |!d
(k + 1)d.
Theorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
Claim: If x ! bv,then f(x) " (k + 1)rv.
The Upper Bound
Recall: f(v) ! krv.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
>"v!M
!bv
1
f(x)ddx
!"v!M
!bv
1
((k + 1)rv)ddx
="v!M
rdv!d
((k + 1)rv)d
= |M |!d
(k + 1)d.
Theorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
Claim: If x ! bv,then f(x) " (k + 1)rv.
The Upper Bound
Recall: f(v) ! krv.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
>"v!M
!bv
1
f(x)ddx
!"v!M
!bv
1
((k + 1)rv)ddx
="v!M
rdv!d
((k + 1)rv)d
= |M |!d
(k + 1)d.
Theorem: |M | < (k+1)d
!d
!B
1f(x)d dx.
proof.
Claim: If x ! bv,then f(x) " (k + 1)rv.
The Lower Bound
The Lower BoundTheorem: |M | > 1
kd!d
!B
1f(x)d dx.
The Lower BoundTheorem: |M | > 1
kd!d
!B
1f(x)d dx.
proof.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
!"v!M
!Vor(v)
1
rdvdx
<"v!M
!kbv
1
rdvdx
="v!M
kdrdv!d
rdv
= |M |kd!d.
The Lower BoundTheorem: |M | > 1
kd!d
!B
1f(x)d dx.
proof.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
!"v!M
!Vor(v)
1
rdvdx
<"v!M
!kbv
1
rdvdx
="v!M
kdrdv!d
rdv
= |M |kd!d.
The Lower Bound
Claim: If x ! Vor(v) then f(x) " rv.
Theorem: |M | > 1kd!d
!B
1f(x)d dx.
proof.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
!"v!M
!Vor(v)
1
rdvdx
<"v!M
!kbv
1
rdvdx
="v!M
kdrdv!d
rdv
= |M |kd!d.
The Lower Bound
Claim: If x ! Vor(v) then f(x) " rv.
Theorem: |M | > 1kd!d
!B
1f(x)d dx.
proof.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
!"v!M
!Vor(v)
1
rdvdx
<"v!M
!kbv
1
rdvdx
="v!M
kdrdv!d
rdv
= |M |kd!d.
The Lower Bound
Claim: If x ! Vor(v) then f(x) " rv.
Theorem: |M | > 1kd!d
!B
1f(x)d dx.
Claim: Vor(v) ! kbv.
proof.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
!"v!M
!Vor(v)
1
rdvdx
<"v!M
!kbv
1
rdvdx
="v!M
kdrdv!d
rdv
= |M |kd!d.
The Lower Bound
Claim: If x ! Vor(v) then f(x) " rv.
Theorem: |M | > 1kd!d
!B
1f(x)d dx.
Claim: Vor(v) ! kbv.
proof.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
!"v!M
!Vor(v)
1
rdvdx
<"v!M
!kbv
1
rdvdx
="v!M
kdrdv!d
rdv
= |M |kd!d.
The Lower Bound
Claim: If x ! Vor(v) then f(x) " rv.
Theorem: |M | > 1kd!d
!B
1f(x)d dx.
Claim: Vor(v) ! kbv.
proof.
!B
1
f(x)ddx =
"v!M
!Vor(v)
1
f(x)ddx
!"v!M
!Vor(v)
1
rdvdx
<"v!M
!kbv
1
rdvdx
="v!M
kdrdv!d
rdv
= |M |kd!d.
The Lower Bound
Claim: If x ! Vor(v) then f(x) " rv.
Theorem: |M | > 1kd!d
!B
1f(x)d dx.
Claim: Vor(v) ! kbv.
proof.
Degree BoundsHow many neighbors can any point have?
Degree BoundsHow many neighbors can any point have?
!
q!Q
vol(bq) >!
q!Q
vol
"
bp
k
#
= |Q|$rp
k
%d
!d.
Degree BoundsHow many neighbors can any point have?
!
q!Q
vol(bq) < vol(3kbp) = (3krp)d!d.
!
q!Q
vol(bq) >!
q!Q
vol
"
bp
k
#
= |Q|$rp
k
%d
!d.
Degree BoundsHow many neighbors can any point have?
!
q!Q
vol(bq) < vol(3kbp) = (3krp)d!d.
!
q!Q
vol(bq) >!
q!Q
vol
"
bp
k
#
= |Q|$rp
k
%d
!d.
! |Q| < 3d
Degree BoundsHow many neighbors can any point have?
!
q!Q
vol(bq) < vol(3kbp) = (3krp)d!d.
!
q!Q
vol(bq) >!
q!Q
vol
"
bp
k
#
= |Q|$rp
k
%d
!d.
! |Q| < 3d
Total Voronoi Edges < 3d|M|
Degree BoundsHow many neighbors can any point have?
!
q!Q
vol(bq) < vol(3kbp) = (3krp)d!d.
!
q!Q
vol(bq) >!
q!Q
vol
"
bp
k
#
= |Q|$rp
k
%d
!d.
! |Q| < 3d
Total Voronoi Edges < 3d|M|
Same tricks as before!(Packing Argument)
Fat Voronoi DiagramsIdea: Let the center shift.
Fat Voronoi DiagramsIdea: Let the center shift.
Good Aspect Ratio Fat
Fat Voronoi DiagramsIdea: Let the center shift.
Good Aspect Ratio Fat
Fat Voronoi Conjecture:
The number of neighbors of any cell in a fat Voronoi diagram is 2O(d).
Fat Voronoi diagrams in the plane.
Fat Voronoi diagrams in the plane.Here’s the trick.
Fat Voronoi diagrams in the plane.Here’s the trick.
Fat Voronoi diagrams in the plane.Here’s the trick.
Fat Voronoi diagrams in the plane.Here’s the trick.
Fat Voronoi diagrams in the plane.Here’s the trick.
Fat Voronoi diagrams in the plane.
!q
Here’s the trick.
Fat Voronoi diagrams in the plane.
!q
!q
Here’s the trick.
Fat Voronoi diagrams in the plane.
!q
!q
2! =
!
q!Q
"q =
!
q!Q
#q
Here’s the trick.
Fat Voronoi diagrams in the plane.
!q
!q
2! =
!
q!Q
"q =
!
q!Q
#q
Here’s the trick.
Is this new?
Fat Voronoi diagrams in the plane.
!q
!q
2! =
!
q!Q
"q =
!
q!Q
#q
Here’s the trick.
Is this new?
Punchline: Fat Voronoi Conjecture Holds in the plane.
Fat Voronoi diagrams in the plane.
!q
!q
2! =
!
q!Q
"q =
!
q!Q
#q
Here’s the trick.
Is this new?
Punchline: Fat Voronoi Conjecture Holds in the plane.
3D?
Thank you.