Tools from Computational Geometry

advertisement
Tools from Computational
Geometry
Bernard Chazelle
Princeton University
Tutorial FOCS 2005
Tools from Computational
Geometry
Bernard Chazelle
Princeton University
Tutorial FOCS 1905
Ruler & Compass Algorithms
Gauss:
17-gon
Gauss:
sin(  / 17) 
17-gon
Constructing Regular N-gons
Gauss Fermat primes 2
2
k
+1
3
folklore
5
antiquity
17
Gauss (1796)
257
Richelot (1832)
65537
Hermes (1879)
can’t do
heptagons
proof covers
a gym
Hilbert proved lower bounds on number of steps
Tools from Computational
Geometry
Bernard Chazelle
Princeton University
Tutorial FOCS 2005
TOOLS FROM COMPUTATIONAL GEOMETRY
algorithmic
analytical
1 Algorithmic tools
geometric divide &
conquer
Voronoi Diagram
Voronoi Diagram
Works well also for convex hulls, nearest neighbors
[3,6]
Works not so well for multidimensional searching:
quadtrees, kd-trees: highly sub-optimal
Any
N points
point/line
and N
incidence?
lines
Hopcroft’s problem
N
Naïve divide & conquer
N
Point location in line arrangement
O(N logN) time
~ 3/2
O(N
) time
1 Algorithmic tools
geometric divide &
conquer
1 Algorithmic tools
geometric divide &
conquer
[2, p.123]
N points
for any line
N points
number of intersections = O(
N )
Often, the number of simple polygons is
exponential.
Often, the number of simple polygons is
exponential.
Sometimes, it’s unique…
Often, the number of simple polygons is
exponential.
Sometimes, it’s unique…
SPANNING PATH THEOREM
for any line
N points
number of intersections = O(
N )
SPANNING PATH THEOREM
for
random line
N points
number of intersections = O(
N )
Join two closest points; remove; repeat
for
random line
number of intersections = O(
N )
Difficulty 1: Produces a matching, not a simple polygon
Matching  Tree
Remove each edge and one of its adjacent vertices
for
random line
number of intersections =
O(
N  N / 2  N / 4  N / 8   ) = O(
N )
Tree  Hamiltonian Circuit
(via DFS)
Hamiltonian Circuit  Simple Polygon
(via edge switching)
Simple Polygon
for
random line
number of intersections = O(
N )
Change definition of randomness
New definition: A random line joins 2 of the N points
picked at random.
Next goal
A random line cuts O(
N ) edges
Euclidean is wrong metric
b
pick random pair
a
New metric: d(a,b)= prob [ line(random pair) cuts ab ]
b
pick random pair
a
New metric has “dimension” 2
This ensures that a random line cuts O(
N ) edges
Final goal:
A line between any 2 points picked
at cuts O(
N ) edges
b
a
double probability
of picking pair
Increase d(a,b) multiplicatively (as in BOOSTING )
ANY line cuts O(
N ) edges
Spanning Path Theorem
APPLICATION: SIMPLEX RANGE COUNTING
6
How many points in the triangle?
[2, p.214]
Ray shooting in O(log N) time
Ray shooting in O(log N) time
APPLICATION: SIMPLEX RANGE COUNTING
How many points in the triangle?
APPLICATION: SIMPLEX RANGE COUNTING
~
Triangle range counting in O(
N ) time
Spanning Path Theorem
-APPROXIMATION
(for triangles)
Subset A such that:
any triangle T
Subset A such that:
any triangle T
Subset A such that:
any triangle T
~
Size of A is O(

-4/3
Independent of N
Better than random!
)
Keep every other edge
Keep every other edge
Color randomly red/blue
discrepancy within any triangle = ?
discrepancy within any triangle = 1
discrepancy within any triangle =
discrepancy within any triangle =
Remove red points
Recolor
Remove red points
~
Repeat until O(

-4/3 ) points left
Subset A such that:
any triangle T
A is called an

-approximation

(for triangles)
~

-4/3
Its size O(
) is
independent of N
A is computable in poly(N)

Set System (X,  )

X
2
VC dim = max |shattered set|
VC dim = 3
Unbounded VC dimension
Bounded VC dim implies that
Given any Y X, number of
distinct sets Y  S, where
c
S
 , is O(|Y| )
primal shatter
exponent
easy to
determine
Dual set system  dual shatter exponent
(points, ellipsoids) in d-dim
VC dim = ?
(points, ellipsoids) in d-dim
by Thom-Milnor
d
dual shatter function = O(N )
Set System (V, S)
d= VC dimension
or primal/dual shatter exponent
Size of
~
O(

 -approximation is
-2+2/(d+1)
)
[2, p.179]
Set System (V, S)
 -approximation is
Size of
~
O(

-2
)
Computable in O(N)  poly( 1 /  )
In comp geom, random bits help with
simplicity but not with complexity
[2, p.175]

 -cutting
N lines
[2, p.204]
Application
Hopcroft’s problem
[2, p.213]
Dualize
point (a,b)
line aX+bY=1
Recurse
Hopcroft’s problem
Standard sampling
How many lines?
N lines
Set System (X,  )
X = set of N lines
=
easy to do with an
 -approximation
How many lines?
N lines
Product sampling
How many vertices?
N lines
[2, p.183]
Unbounded VC-dim: yet can be done!
How many vertices?
N lines
[2,
p.283]
d
Convex hull of N points in R
Voronoi diagram of N points in E
http://www.math.psu.edu/qdu/Res/Pic/gulf.jpg
d
Linear programming in linear time with
[1, p.82]
fixed number of variables
LP-type programming in linear time
with fixed number of variables
Linear programming in linear time with
fixed number of variables
LP-type programming in linear time
with fixed number of variables
[2, p.307]
Smallest ellipsoid enclosing N points in R
d
in O (N) time!
d
[2, p.313]
Sampling tool for approximate
geometric optimization [0]
2 Analytical tools
2.1
randomized scaling
2.2
backward analysis
2 Analytical tools
2.1
randomized scaling
2.1.2 k-sets
2.1.2 crossing lemma
2.2
backward analysis
2 Analytical tools
2.1
randomized scaling
2.1.2 k-sets
2.1.2 crossing lemma
2.2
backward analysis
K-SETS
f = { (i,j) | i<j and n(i,j)= k }
k
p
n(i,j) = 9
i
p
j
f0 = 6
[4, p.141]
Theorem:
X=3
Theorem:
Theorem:
2 Analytical tools
2.1
randomized scaling
2.1.2 k-sets
2.1.2 crossing lemma
2.2
backward analysis
The Crossing Lemma:
[4, p.55]
Pick each vertex
with prob p
Set p= 4n/m
4/3
Corollary: # point/line incidences = O(N
)
4/3
Corollary: # unit-distance pairs = O(N
)
2 Analytical tools
2.1
randomized scaling
2.1.2 k-sets
2.1.2 crossing lemma
2.2
backward analysis
[1, p76]
Linear Programming
N constraints and d variables
N constraints and d variables
Planar Graph
Planar Separator Theorem
Remove O( N ) vertices  (1/3-2/3) cut
[5, p96]
Stereographic lifting
Centerpoint Theorem
(1/4,3/4)
cut in
(1/3,2/3)
cut3D
Can assume centerpoint is center of sphere
Can assume centerpoint is center of sphere
BIBLIOGRAPHY
The results mentioned in this tutorial, as well as the history behind them, are
discussed in detail in the surveys and monographs below.
Related documents
Download