Tools from Computational Geometry Bernard Chazelle Princeton University Bernard Chazelle Princeton...

Post on 17-Dec-2015

220 views 2 download

Tags:

Transcript of Tools from Computational Geometry Bernard Chazelle Princeton University Bernard Chazelle Princeton...

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.