1 / 41 Convex Hulls in 3-space Jason C. Yang. 2 / 41 Problem Statement Given P: set of n points in 3-space Return: –Convex hull of P: CH (P) –Smallest.

Slides:



Advertisements
Similar presentations
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Advertisements

Convex drawing chapter 5 Ingeborg Groeneweg. Summery What is convex drawing What is convex drawing Some definitions Some definitions Testing convexity.
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Convex hulls Gift wrapping, d > 2 Problem definition CONVEX HULL, D > 2 INSTANCE. Set S = { p 1, p 2, … p N } of points in d-space (E d ). QUESTION. Construct.
COSC 6114 Prof. Andy Mirzaian. TOICS  General Facts on Polytopes  Algorithms  Gift Wrapping  Beneath Beyond  Divide-&-Conquer  Randomized Incremental.
CS16: Introduction to Data Structures & Algorithms
C o m p u t i n g C O N V E X H U L L S by Kok Lim Low 10 Nov 1998 COMP Presentation.
1 Voronoi Diagrams. 2 Voronoi Diagram Input: A set of points locations (sites) in the plane.Input: A set of points locations (sites) in the plane. Output:
Convex Hulls in Two Dimensions Definitions Basic algorithms Gift Wrapping (algorithm of Jarvis ) Graham scan Divide and conquer Convex Hull for line intersections.
Ruslana Mys Delaunay Triangulation Delaunay Triangulation (DT)  Introduction  Delaunay-Voronoi based method  Algorithms to compute the convex hull 
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
Convex Hulls in 3-space Jason C. Yang.
1 Constructing Convex 3-Polytopes From Two Triangulations of a Polygon Benjamin Marlin Dept. of Mathematics & Statistics McGill University Godfried Toussaint.
The Structure of Polyhedra Gabriel Indik March 2006 CAS 746 – Advanced Topics in Combinatorial Optimization.
What does that mean? To get the taste we will just look only at some sample problems... [Adapted from S.Suri]
3/5/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Delaunay Triangulations II Carola Wenk Based on: Computational.
CHAPTER 5: CONVEX POLYTOPES Anastasiya Yeremenko 1.
Applied Combinatorics, 4th Ed. Alan Tucker
Computational Geometry -- Voronoi Diagram
17. Computational Geometry Chapter 7 Voronoi Diagrams.
A Randomized Polynomial-Time Simplex Algorithm for Linear Programming Daniel A. Spielman, Yale Joint work with Jonathan Kelner, M.I.T.
Delaunay Triangulation Computational Geometry, WS 2006/07 Lecture 11 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Duality and Arrangements Computational Geometry, WS 2007/08 Lecture 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Half-Space Intersections
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Chapter 4: 3D Convex Hulls Friday, 2/9/07.
Lecture 10 : Delaunay Triangulation Computational Geometry Prof. Dr. Th. Ottmann 1 Overview Motivation. Triangulation of Planar Point Sets. Definition.
Lecture 8 : Arrangements and Duality Computational Geometry Prof. Dr. Th. Ottmann 1 Duality and Arrangements Duality between lines and points Computing.
Computing the Delaunay Triangulation By Nacha Chavez Math 870 Computational Geometry; Ch.9; de Berg, van Kreveld, Overmars, Schwarzkopf By Nacha Chavez.
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Chapter 4: 3D Convex Hulls Monday, 2/23/04.
Drawing of G. Planar Embedding of G Proposition Proof. 1. Consider a drawing of K 5 or K 3,3 in the plane. Let C be a spanning cycle. 2. If the.
Duality and Arrangements Computational Geometry, WS 2006/07 Lecture 7 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Curve Curve: The image of a continous map from [0,1] to R 2. Polygonal curve: A curve composed of finitely many line segments. Polygonal u,v-curve: A polygonal.
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
Matthew Bowling Euler’s Theorem Mathfest Spring ‘15.
Graph Theory Ch6 Planar Graphs. Basic Definitions  curve, polygon curve, drawing  crossing, planar, planar embedding, and plane graph  open set  region,
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
Graph Theory Chapter 6 Planar Graphs Ch. 6. Planar Graphs.
A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2.
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
Triangulating a monotone polygon
UNC Chapel Hill M. C. Lin Linear Programming Reading: Chapter 4 of the Textbook Driving Applications –Casting/Metal Molding –Collision Detection Randomized.
Line Arrangement Chapter 6. Line Arrangement Problem: Given a set L of n lines in the plane, compute their arrangement which is a planar subdivision.
C o m p u t i n g C O N V E X H U L L S. Presentation Outline 2D Convex Hulls –Definitions and Properties –Approaches: Brute Force Gift Wrapping QuickHull.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
Computational Geometry Piyush Kumar (Lecture 10: Point Location) Welcome to CIS5930.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
An Introduction to Computational Geometry: Polyhedra Joseph S. B. Mitchell Stony Brook University Chapter 6: Devadoss-O’Rourke.
Chapter Area, Pythagorean Theorem, and Volume 14 Copyright © 2013, 2010, and 2007, Pearson Education, Inc.
12.1 Exploring Solids.
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
Computational Geometry 2D Convex Hulls
February 17, 2005Lecture 6: Point Location Point Location (most slides by Sergi Elizalde and David Pritchard)
Section 12-1 Exploring Solids. Polyhedron Three dimensional closed figure formed by joining three or more polygons at their side. Plural: polyhedra.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 O’Rourke Chapter 6 with some material.
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 9 Line Arrangements.
Convex hulls in 3D Maciej Kot. Finding convex hull Given a set of points, find a convex hull that contains all of them and is minimal.
An Introduction to Computational Geometry: Arrangements and Duality Joseph S. B. Mitchell Stony Brook University Some images from [O’Rourke, Computational.
Polygon Triangulation
1 Schnyder’s Method. 2 Motivation Given a planar graph, we want to embed it in a grid We want the grid to be relatively small And we want an efficient.
Incremental convex hulls BEN LEVY| DISCRETE ALGORITHMIC GEOMETRY
CMPS 3130/6130 Computational Geometry Spring 2017
Outline 1 Properties of Planar Graphs 5/4/2018.
Applied Combinatorics, 4th Ed. Alan Tucker
Algorithm design techniques Dr. M. Gavrilova
Planarity Testing.
Depth Estimation via Sampling
Computational Geometry
14 Chapter Area, Pythagorean Theorem, and Volume
Presentation transcript:

1 / 41 Convex Hulls in 3-space Jason C. Yang

2 / 41 Problem Statement Given P: set of n points in 3-space Return: –Convex hull of P: CH (P) –Smallest polyhedron s.t. all elements of P on or in the interior of CH (P).

3 / 41 Algorithm Randomized incremental algorithm Steps: –Initialize the algorithm –Loop over remaining points Add p r to the convex hull of P r-1 to transform CH (P r-1 ) to CH (P r ) [for integer r  1, let P r :={p 1,…,p r }] Main Idea: Incrementally insert new points into the running/intermediate Convex Hull.

4 / 41 Initialization Need a CH to start with Build a tetrahedron using 4 points in P –Start with two distinct points in P: p 1 and p 2 –Walk through P to find p 3 that does not lie on the line through p 1 and p 2 –Find p 4 that does not lie on the plane through p 1, p 2, p 3 –Special case: No such points exist? Compute random permutation p 5,…,p n of the remaining points Need a CH to start with Build a tetrahedron using 4 points in P –Start with two distinct points in P: p 1 and p 2 –Walk through P to find p 3 that does not lie on the line through p 1 and p 2 –Find p 4 that does not lie on the plane through p 1, p 2, p 3 –Special case: No such points exist? All points lie on a plane. Use planar CH algorithm! Compute random permutation p 5,…,p n of the remaining points

5 / 41 Inserting Points into CH Add p r to the convex hull of P r-1 to transform CH (P r-1 ) to CH (P r ) [for integer r  1, let P r :={p 1,…,p r }] Two Cases: 1) P r is inside or on the boundary of CH (P r-1 ) Trivial: CH (P r ) = CH (P r-1 ) 2) P r is outside of CH (P r-1 )

6 / 41 Case 2: P r outside CH (P r-1 ) Determine horizon of p r on CH (P r-1 ) –Closed curve of edges enclosing the visible region of p r on CH (P r-1 )

7 / 41 Visibility Consider plane h f containing a facet f of CH (P r-1 ) f is visible from a point if that point lies in the open half-space on the other side of h f

8 / 41 Rethinking the Horizon –Boundary of polygon obtained from projecting CH (P r-1 ) onto a plane with p r as the center of projection

9 / 41 CH (P r-1 )  CH (P r ) Remove visible facets from CH (P r-1 ) Found horizon: Closed curve of edges of CH (P r-1 ) Form CH (P r ) by connecting each horizon edge to p r to create a new triangular facet

10 / 41 Algorithm So Far… Initialization –Form tetrahedron CH (P 4 ) from 4 points in P –Compute random permutation of remaining pts. For each remaining point in P –p r is point to be inserted –If p r is outside CH (P r-1 ) then Determine visible region Find horizon and remove visible facets Add new facets by connecting each horizon edge to p r How do we determine the visible region?

11 / 41 How to Find Visible Region Naïve approach: –Test every facet with respect to p r –O(n 2 ) Trick is to work ahead: Maintain information to aid in determining visible facets.

12 / 41 Conflict Lists For each facet f maintain P conflict ( f )  {p r+1, …, p n } containing points to be inserted that can see f For each p t, where t > r, maintain F conflict (p t ) containing facets of CH (P r ) visible from p t p and f are in conflict because they cannot coexist on the same convex hull

13 / 41 Conflict Graph G Bipartite graph –pts not yet inserted –facets on CH (P r ) Arc for every point-facet conflict Conflict sets for a point or facet can be returned in linear time At any step of our algorithm, we know all conflicts between the remaining points and facets on the current CH

14 / 41 Initializing G Initialize G with CH (P 4 ) in linear time Walk through P 5-n to determine which facet each point can see f1f1 f2f2 p6p6 p5p5 p7p7 p6p6 p7p7 p5p5 f2f2 f1f1 G

15 / 41 Updating G Discard visible facets from p r by removing neighbors of p r in G Remove p r from G Determine new conflicts p6p6 p7p7 p5p5 f2f2 f1f1 G f1f1 f2f2 f3f3 f3f3 p6p6 p7p7 p5p5 f2f2 f1f1 G p6p6 p7p7 p5p5 f2f2 f1f1 G p5p5 p7p7 p6p6

16 / 41 Determining New Conflicts If p t can see new f, it can see edge e of f. e on horizon of p r, so e was already in and visible from p t in CH (P r-1 ) If p t sees e, it saw either f 1 or f 2 in CH (P r-1 ) P t was in P conflict (f 1 ) or P conflict (f 2 ) in CH (P r-1 ) ptpt

17 / 41 Determining New Conflicts Conflict list of f can be found by testing the points in the conflict lists of f 1 and f 2 incident to the horizon edge e in CH (P r-1 ) ptpt

18 / 41 What About the Other Facets? P conflict ( f ) for any f unaffected by p r remains unchanged ptpt Deleted facets not on horizon already accounted for

19 / 41 Final Algorithm Initialize CH (P 4 ) and G For each remaining point –Determine visible facets for p r by checking G –Remove F conflict (p r ) from CH –Find horizon and add new facets to CH and G –Update G for new facets by testing the points in existing conflict lists for facets in CH (P r-1 ) incident to e on the new facets –Delete p r and F conflict (p r ) from G

20 / 41 Fine Point Coplanar facets –p r lies in the plane of a face of CH (P r-1 ) f is not visible from p r so we merge created triangles coplanar to f New facet has same conflict list as existing facet

21 / 41 Analysis

22 / 41 Complexity of CH for n points in 3-space is O(n) Number of edges of a convex polytope with n vertices is at most 3n-6 and the number of facets is at most 2n-4 From Euler’s formula: n – n e + n f = 2 Complexity

23 / 41 Complexity Each face has at least 3 arcs Each arc incident to two faces 2n e  3n f Using Euler n f  2n-4n e  3n-6

24 / 41 Expected Number of Facets Created Will show that expected number of facets created by our algorithm is at most 6n-20 Initialized with a tetrahedron = 4 facets

25 / 41 Expected Number of New Facets Backward analysis: –Remove p r from CH (P r ) –Number of facets removed same as those created by p r –Number of edges incident to p r in CH (P r ) is degree of p r : deg(p r, CH (P r ))

26 / 41 Expected Degree of p r Convex polytope of r vertices has at most 3r-6 edges Sum of degrees of vertices of CH (P r ) is 6r-12 Expected degree of p r bounded by (6r-12)/r

27 / 41 Expected Number of Created Facets 4 from initial tetrahedron Expected total number of facets created by adding p 5,…,p n

28 / 41 Running Time Initialization  O(nlogn) Creating and deleting facets  O(n) –Expected number of facets created is O(n) Deleting p r and facets in F conflict (p r ) from G along with incident arcs  O(n) Finding new conflicts  O(?)

29 / 41 Total Time to Find New Conflicts For each edge e on horizon we spend O(card(P(e)) time where P(e)  P confict (f 1 )  P conflict (f 2 ) Total time is O(  e  L card(P(e))) bounded by expected value of  card(P(e)) Lemma 11.6 The expected value of  e card(P(e)), where the summation is over all horizon edges that appear at some stage of the algorithm is O(nlogn)

30 / 41 Randomized Insertion Order

31 / 41 Running Time Initialization  O(nlogn) Creating and deleting facets  O(n) Updating G  O(n) Finding new conflicts  O(nlogn) Total Running Time is O(nlogn)

32 / 41 Higher Dimensional Convex Hulls Upper Bound Theorem: The worst-case combinatorial complexity of the convex hull of n points in d-dimensional space is  (n  d/2  ). Our algorithm generalizes to higher dimensions with expected running time of  (n  d/2  )

33 / 41 Higher Dimensional Convex Hulls Best known output-sensitive algorithm for computing convex hulls in R d is: O(nlogk +(nk) 1-1/(  d/2  +1) log O(n) ) where k is complexity