tools from computational geometry bernard chazelle princeton university bernard chazelle princeton...
TRANSCRIPT
Tools from Computational Tools from Computational GeometryGeometry
Tools from Computational Tools from Computational GeometryGeometry
Bernard ChazelleBernard Chazelle
Princeton UniversityPrinceton University
Bernard ChazelleBernard Chazelle
Princeton UniversityPrinceton University
Tutorial FOCS 2005Tutorial FOCS 2005Tutorial FOCS 2005Tutorial FOCS 2005
Tools from Computational Tools from Computational GeometryGeometry
Tools from Computational Tools from Computational GeometryGeometry
Bernard ChazelleBernard Chazelle
Princeton UniversityPrinceton University
Bernard ChazelleBernard Chazelle
Princeton UniversityPrinceton University
Tutorial FOCS 1905Tutorial FOCS 1905Tutorial FOCS 1905Tutorial FOCS 1905
Ruler & Compass AlgorithmsRuler & Compass AlgorithmsRuler & Compass AlgorithmsRuler & Compass Algorithms
Gauss: 17-gonGauss: 17-gonGauss: 17-gonGauss: 17-gon
Gauss: 17-gonGauss: 17-gonGauss: 17-gonGauss: 17-gon
)17/sin(
Constructing Regular N-gonsConstructing Regular N-gonsConstructing Regular N-gonsConstructing Regular N-gons
33 folklorefolklore
55 antiquityantiquity
1717 Gauss (1796)Gauss (1796)
257257 Richelot (1832)Richelot (1832)
6553765537 Hermes (1879)Hermes (1879)
Gauss Gauss Fermat primes 2 Fermat primes 2
22 kk
can’t do can’t do heptagonsheptagons
+1 +1
proof coversproof coversa gyma gym
Hilbert proved lower bounds on number of stepsHilbert proved lower bounds on number of steps
Tools from Computational Tools from Computational GeometryGeometry
Tools from Computational Tools from Computational GeometryGeometry
Bernard ChazelleBernard Chazelle
Princeton UniversityPrinceton University
Bernard ChazelleBernard Chazelle
Princeton UniversityPrinceton University
Tutorial FOCS 2005Tutorial FOCS 2005Tutorial FOCS 2005Tutorial FOCS 2005
algorithmicalgorithmic algorithmicalgorithmic
analyticalanalytical analyticalanalytical
TOOLS FROM COMPUTATIONAL GEOMETRYTOOLS FROM COMPUTATIONAL GEOMETRY TOOLS FROM COMPUTATIONAL GEOMETRYTOOLS FROM COMPUTATIONAL GEOMETRY
1 Algorithmic tools1 Algorithmic tools 1 Algorithmic tools1 Algorithmic tools
geometric divide & geometric divide & conquerconquer
geometric divide & geometric divide & conquerconquer
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
Hopcroft’s problemHopcroft’s problemAny point/line incidence?N points and N lines
Naïve divide & conquer
N
O(N logN) time
N
Point location in line arrangement
~O(N ) time
3/2
1 Algorithmic tools1 Algorithmic tools 1 Algorithmic tools1 Algorithmic tools
geometric divide & geometric divide & conquerconquer
geometric divide & geometric divide & conquerconquer
1 Algorithmic tools1 Algorithmic tools 1 Algorithmic tools1 Algorithmic tools
geometric divide & geometric divide & conquerconquer
geometric divide & geometric divide & conquerconquer
[2, p.123]
N points
N points number of intersections = O( )
N
for any line
Often, the number of simple polygons is exponential.
Sometimes, it’s unique…
Often, the number of simple polygons is exponential.
Sometimes, it’s unique…
Often, the number of simple polygons is exponential.
N points number of intersections = O( )
N
SPANNING PATH THEOREM
for any line
N points number of intersections = O( )
N
SPANNING PATH THEOREM
for random line
Join two closest points; remove; repeat
number of intersections = O( )
N
for random line
Difficulty 1: Produces a matching, not a simple polygon
Matching Tree
Remove each edge and one of its adjacent vertices
number of intersections =
O( ) = O( ) 8/4/2/ NNNN
for random line
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.
NNext goal A random line cuts O( ) edges
Euclidean is wrong metric
prob [ line(random pair) cuts ab ]
b
a
New metric: d(a,b)=
pick random pair
New metric has “dimension” 2
b
a
pick random pair
NThis ensures that a random line cuts O( ) edges
N
Final goal: A line between any 2 points picked
at cuts O( ) edges
Increase d(a,b) multiplicatively (as in BOOSTING )
a
b
double probability of picking pair
ANY line cuts O( ) edgesN
Spanning Path Theorem
APPLICATION: SIMPLEX RANGE COUNTING [2, p.214]
How many points in the triangle?
66
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( ) timeN~
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( ) Size of A is O( )
Independent of NIndependent of N
Better than random! Better than random!
Size of A is O( ) Size of A is O( )
Independent of NIndependent of N
Better than random! Better than random!
-4/3-4/3~
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( ) points left~ -4/3
Subset A such that:
any triangle T
A is called an -approximationA is called an -approximation (for triangles)(for triangles)
A is called an -approximationA is called an -approximation (for triangles)(for triangles)
Its size O( ) is Its size O( ) is independent of N independent of N Its size O( ) is Its size O( ) is independent of N independent of N
-4/3-4/3
~
A is computable in poly(N)A is computable in poly(N) A is computable in poly(N)A is computable in poly(N)
Set System (X,Set System (X, ) ) Set System (X,Set System (X, ) )
22 22 XXXX
VC dim = max |shattered set|VC dim = max |shattered set|VC dim = max |shattered set|VC dim = max |shattered set|
VC dim = VC dim = 33 VC dim = VC dim = 33
Unbounded VC dimension
Bounded VC dim implies Bounded VC dim implies thatthat Bounded VC dim implies Bounded VC dim implies thatthat
Given any Y X, number Given any Y X, number ofofdistinct sets Y S, where distinct sets Y S, where S , is O(|Y| )S , is O(|Y| )
Given any Y X, number Given any Y X, number ofofdistinct sets Y S, where distinct sets Y S, where S , is O(|Y| )S , is O(|Y| )
cccc
Dual set system Dual set system dual shatter dual shatter exponentexponentDual set system Dual set system dual shatter dual shatter exponentexponent
primal shatter exponent
primal shatter exponent
easy to determine
easy to determine
VC dim = VC dim = ?? VC dim = VC dim = ??
(points, ellipsoids) in d-(points, ellipsoids) in d-dimdim
dual shatter function = O(N )dual shatter function = O(N )
(points, ellipsoids) in d-dim(points, ellipsoids) in d-dim
dd
by Thom-Milnorby Thom-Milnor
Set System (V,Set System (V, S)S) Set System (V,Set System (V, S)S)
O( ) O( ) O( ) O( ) -2+2/(d+1)-2+2/(d+1)~
d= VC dimensiond= VC dimensiond= VC dimensiond= VC dimension
Size of -approximation isSize of -approximation isSize of -approximation isSize of -approximation is
or primal/dual shatter exponentor primal/dual shatter exponentor primal/dual shatter exponentor primal/dual shatter exponent
[2, p.179][2, p.179][2, p.179][2, p.179]
Set System (V,Set System (V, S)S) Set System (V,Set System (V, S)S)
O( ) O( ) O( ) O( ) -2-2~
Size of -approximation isSize of -approximation isSize of -approximation isSize of -approximation is
Computable in O(N) Computable in O(N) poly( )poly( )Computable in O(N) Computable in O(N) poly( )poly( )
/1
In comp geom, random bits help In comp geom, random bits help with simplicity but not with with simplicity but not with complexitycomplexity
In comp geom, random bits help In comp geom, random bits help with simplicity but not with with simplicity but not with complexitycomplexity
[2, p.175][2, p.175][2, p.175][2, p.175]
-cutting-cutting -cutting-cutting
N lines
[2, p.204][2, p.204][2, p.204][2, p.204]
ApplicationApplication Hopcroft’s problem Hopcroft’s problem [2, p.213][2, p.213]
DualizeDualize point (a,b)point (a,b) line line aX+bY=1aX+bY=1
RecurseRecurse
Hopcroft’s problemHopcroft’s problem
N lines
Standard samplingStandard sampling Standard samplingStandard sampling
How many lines?How many lines?
Set System (X,Set System (X, ) ) Set System (X,Set System (X, ) )
XX = set of N lines= set of N lines XX = set of N lines= set of N lines
= = = =
N lines
easy to do with an -easy to do with an -approximationapproximationeasy to do with an -easy to do with an -approximationapproximation
How many lines?How many lines?
N lines
Product samplingProduct sampling Product samplingProduct sampling
How many vertices?How many vertices?
[2, p.183][2, p.183][2, p.183][2, p.183]
N lines
Unbounded VC-dim: Unbounded VC-dim: yet can be yet can be done!done! Unbounded VC-dim: Unbounded VC-dim: yet can be yet can be done!done!
How many vertices?How many vertices?
Convex hull of N points in RConvex hull of N points in RConvex hull of N points in RConvex hull of N points in Rdddd
[2, p.283]
Voronoi diagram of N points in EVoronoi diagram of N points in EVoronoi diagram of N points in EVoronoi diagram of N points in Edddd
http://www.math.psu.edu/qdu/Res/Pic/gulf.jpg
Linear programming in linear time Linear programming in linear time with fixed number of variableswith fixed number of variablesLinear programming in linear time Linear programming in linear time with fixed number of variableswith fixed number of variables
LP-type programming in linear LP-type programming in linear time with fixed number of time with fixed number of variablesvariables
[1, p.82]
Linear programming in linear time Linear programming in linear time with fixed number of variableswith fixed number of variables
LP-type programming in linear LP-type programming in linear time with fixed number of time with fixed number of variablesvariables
LP-type programming in linear LP-type programming in linear time with fixed number of time with fixed number of variablesvariables [2, p.307]
dSmallest ellipsoid enclosing N points in R
[2, p.313]
in O (N) time!d
[0]
Sampling tool for approximate
geometric optimization
2 Analytical tools2 Analytical tools 2 Analytical tools2 Analytical tools
2.1 randomized scaling2.1 randomized scaling
2.2 backward analysis2.2 backward analysis
2.1 randomized scaling2.1 randomized scaling
2.2 backward analysis2.2 backward analysis
2 Analytical tools2 Analytical tools 2 Analytical tools2 Analytical tools
2.1 randomized scaling2.1 randomized scaling 2.1.2 k-sets2.1.2 k-sets 2.1.2 crossing lemma2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
2.1 randomized scaling2.1 randomized scaling 2.1.2 k-sets2.1.2 k-sets 2.1.2 crossing lemma2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
2 Analytical tools2 Analytical tools 2 Analytical tools2 Analytical tools
2.1 randomized scaling2.1 randomized scaling 2.1.2 k-sets 2.1.2 k-sets 2.1.2 crossing lemma2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
2.1 randomized scaling2.1 randomized scaling 2.1.2 k-sets 2.1.2 k-sets 2.1.2 crossing lemma2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
K-SETS
n(i,j) = 9n(i,j) = 9
pp
i
j
f = { (i,j) | i<j and n(i,j)= f = { (i,j) | i<j and n(i,j)= k }k }kk
f = 6f = 600
TheoremTheorem: : TheoremTheorem: :
[4, p.141]
X = 3X = 3
TheoremTheorem: : TheoremTheorem: :
TheoremTheorem: : TheoremTheorem: :
2 Analytical tools2 Analytical tools 2 Analytical tools2 Analytical tools
2.1 randomized scaling2.1 randomized scaling 2.1.2 k-sets2.1.2 k-sets 2.1.2 crossing lemma 2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
2.1 randomized scaling2.1 randomized scaling 2.1.2 k-sets2.1.2 k-sets 2.1.2 crossing lemma 2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
The Crossing Lemma: The Crossing Lemma: The Crossing Lemma: The Crossing Lemma:
[4, p.55]
Pick each vertex with prob p
Set p= 4n/m
Corollary:Corollary:Corollary:Corollary:# point/line incidences = O(N # point/line incidences = O(N ) ) # point/line incidences = O(N # point/line incidences = O(N ) )
4/34/34/34/3
Corollary:Corollary:Corollary:Corollary:# unit-distance pairs = # unit-distance pairs = O(N ) O(N ) # unit-distance pairs = # unit-distance pairs = O(N ) O(N )
4/34/34/34/3
2 Analytical tools2 Analytical tools 2 Analytical tools2 Analytical tools
2.1 2.1 randomized scalingrandomized scaling 2.1.2 k-sets2.1.2 k-sets 2.1.2 crossing lemma2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
2.1 2.1 randomized scalingrandomized scaling 2.1.2 k-sets2.1.2 k-sets 2.1.2 crossing lemma2.1.2 crossing lemma
2.2 backward analysis2.2 backward analysis
Linear ProgrammingLinear Programming Linear ProgrammingLinear Programming[1, p76]
N constraints and d variablesN constraints and d variables
N constraints and d variablesN constraints and d variables
Planar GraphPlanar Graph
Planar Separator TheoremPlanar Separator Theorem
Remove O( ) vertices Remove O( ) vertices (1/3-2/3) (1/3-2/3) cutcut
N
[5, p96][5, p96]
Stereographic liftingStereographic lifting
Centerpoint Theorem
(1/3,2/3) cut
(1/4,3/4) cut in 3D
Can assume centerpoint is center of sphere
Can assume centerpoint is center of sphere
BIBLIOGRAPHYBIBLIOGRAPHYBIBLIOGRAPHYBIBLIOGRAPHY
The results mentioned in this tutorial, as well as the history behind The results mentioned in this tutorial, as well as the history behind them, are discussed in detail in the surveys and monographs below.them, are discussed in detail in the surveys and monographs below.The results mentioned in this tutorial, as well as the history behind The results mentioned in this tutorial, as well as the history behind them, are discussed in detail in the surveys and monographs below.them, are discussed in detail in the surveys and monographs below.