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.