Randomized Incremental Convex Hull Is Highly Parallel
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Gscan: Accelerating Graham Scan on The
gScan:AcceleratingGrahamScanontheGPU Gang Mei Institute of Earth and Environmental Science, University of Freiburg Albertstr.23B, D-79104, Freiburg im Breisgau, Germany E-mail: [email protected] Abstract This paper presents a fast implementation of the Graham scan on the GPU. The proposed algorithm is composed of two stages: (1) two rounds of preprocessing performed on the GPU and (2) the finalization of finding the convex hull on the CPU. We first discard the interior points that locate inside a quadrilateral formed by four extreme points, sort the remaining points according to the angles, and then divide them into the left and the right regions. For each region, we perform a second round of filtering using the proposed preprocessing approach to discard the interior points in further. We finally obtain the expected convex hull by calculating the convex hull of the remaining points on the CPU. We directly employ the parallel sorting, reduction, and partitioning provided by the library Thrust for better efficiency and simplicity. Experimental results show that our implementation achieves 6x ~ 7x speedups over the Qhull implementation for 20M points. Keywords: GPU, CUDA, Convex Hull, Graham Scan, Divide-and-Conquer, Data Dependency 1.Introduction Given a set of planar points S, the 2D convex hull problem is to find the smallest polygon that contains all the points in S. This problem is a fundamental issue in computer science and has been studied extensively. Several classic convex hull algorithms have been proposed [1-7]; most of them run in O(nlogn) time. Among them, the Graham scan algorithm [1] is the first practical convex hull algorithm, while QuickHull [7] is the most efficient and popular one in practice. -
Geometric Algorithms
Geometric Algorithms primitive operations convex hull closest pair voronoi diagram References: Algorithms in C (2nd edition), Chapters 24-25 http://www.cs.princeton.edu/introalgsds/71primitives http://www.cs.princeton.edu/introalgsds/72hull 1 Geometric Algorithms Applications. • Data mining. • VLSI design. • Computer vision. • Mathematical models. • Astronomical simulation. • Geographic information systems. airflow around an aircraft wing • Computer graphics (movies, games, virtual reality). • Models of physical world (maps, architecture, medical imaging). Reference: http://www.ics.uci.edu/~eppstein/geom.html History. • Ancient mathematical foundations. • Most geometric algorithms less than 25 years old. 2 primitive operations convex hull closest pair voronoi diagram 3 Geometric Primitives Point: two numbers (x, y). any line not through origin Line: two numbers a and b [ax + by = 1] Line segment: two points. Polygon: sequence of points. Primitive operations. • Is a point inside a polygon? • Compare slopes of two lines. • Distance between two points. • Do two line segments intersect? Given three points p , p , p , is p -p -p a counterclockwise turn? • 1 2 3 1 2 3 Other geometric shapes. • Triangle, rectangle, circle, sphere, cone, … • 3D and higher dimensions sometimes more complicated. 4 Intuition Warning: intuition may be misleading. • Humans have spatial intuition in 2D and 3D. • Computers do not. • Neither has good intuition in higher dimensions! Is a given polygon simple? no crossings 1 6 5 8 7 2 7 8 6 4 2 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 18 4 18 4 19 4 19 4 20 3 20 3 20 1 10 3 7 2 8 8 3 4 6 5 15 1 11 3 14 2 16 we think of this algorithm sees this 5 Polygon Inside, Outside Jordan curve theorem. -
Optimal Output-Sensitive Convex Hull Algorithms in Two and Three Dimensions*
Discrete Comput Geom 16:361-368 (1996) GeometryDiscrete & Computational ~) 1996Springer-Verlag New YorkInc. Optimal Output-Sensitive Convex Hull Algorithms in Two and Three Dimensions* T. M. Chan Department of Computer Science, University of British Columbia, Vancouver, British Columbia, Canada V6T 1Z4 Abstract. We present simple output-sensitive algorithms that construct the convex hull of a set of n points in two or three dimensions in worst-case optimal O (n log h) time and O(n) space, where h denotes the number of vertices of the convex hull. 1. Introduction Given a set P ofn points in the Euclidean plane E 2 or Euclidean space E 3, we consider the problem of computing the convex hull of P, cony(P), which is defined as the smallest convex set containing P. The convex hull problem has received considerable attention in computational geometry [11], [21], [23], [25]. In E 2 an algorithm known as Graham's scan [15] achieves O(n logn) rtmning time, and in E 3 an algorithm by Preparata and Hong [24] has the same complexity. These algorithms are optimal in the worst case, but if h, the number of hull vertices, is small, then it is possible to obtain better time bounds. For example, in E 2, a simple algorithm called Jarvis's march [ 19] can construct the convex hull in O(nh) time. This bound was later improved to O(nlogh) by an algorithm due to Kirkpatrick and Seidel [20], who also provided a matching lower bound; a simplification of their algorithm has been recently reported by Chan et al. -
A Framework for Multi-Core Implementations of Divide and Conquer Algorithms and Its Application to the Convex Hull Problem ∗
CCCG 2008, Montr´eal, Qu´ebec, August 13–15, 2008 A Framework for Multi-Core Implementations of Divide and Conquer Algorithms and its Application to the Convex Hull Problem ∗ Stefan N¨aher Daniel Schmitt † Abstract 2 Divide and Conquer Algorithms We present a framework for multi-core implementations Divide and conquer algorithms solve problems by di- of divide and conquer algorithms and show its efficiency viding them into subproblems, solving each subprob- and ease of use by applying it to the fundamental geo- lem recursively and merging the corresponding results metric problem of computing the convex hull of a point to a complete solution. All subproblems have exactly set. We concentrate on the Quickhull algorithm intro- the same structure as the original problem and can be duced in [2]. In general the framework can easily be solved independently from each other, and so can eas- used for any D&C-algorithm. It is only required that ily be distributed over a number of parallel processes the algorithm is implemented by a C++ class imple- or threads. This is probably the most straightforward menting the job-interface introduced in section 3 of this parallelization strategy. However, in general it can not paper. be guaranteed that always enough subproblems exist, which leads to non-optimal speedups. This is in partic- 1 Introduction ular true for the first divide step and the final merging step but is also a problem in cases where the recur- Performance gain in computing is no longer achieved sion tree is unbalanced such that the number of open by increasing cpu clock rates but by multiple cpu cores sub-problems is smaller than the number of available working on shared memory and a common cache. -
Convex Hulls
CONVEX HULLS PETR FELKEL FEL CTU PRAGUE [email protected] https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start Based on [Berg] and [Mount] Version from 16.11.2017 Talk overview Motivation and Definitions Graham’s scan – incremental algorithm Divide & Conquer Quick hull Jarvis’s March – selection by gift wrapping Chan’s algorithm – optimal algorithm www.cguu.com Felkel: Computational geometry (2) Convex hull (CH) – why to deal with it? Shape approximation of a point set or complex shapes (other common approximations include: minimal area enclosing rectangle, circle, and ellipse,…) – e.g., for collision detection Initial stage of many algorithms to filter out irrelevant points, e.g.: – diameter of a point set – minimum enclosing convex shapes (such as rectangle, circle, and ellipse) depend only on points on CH Felkel: Computational geometry (3) Convexity Line test !!! A set S is convex convex not convex – if for any points p,q S the lines segment pq S, or – if any convex combination of p and q is in S Convex combination of points p, q is any point that can be expressed as q p =1 (1 – ) p + q, where 0 1 =0 Convex hull CH(S) of set S – is (similar definitions) – the smallest set that contains S (convex) – or: intersection of all convex sets that contain S – Or in 2D for points: the smallest convex polygon containing all given points Felkel: Computational geometry (5) Definitions from topology in metric spaces Metric space – each two of points have defined a distance r r-neighborhood of a point p and radius r> 0 p = set of -
Convex Hull in 3 Dimensions
CONVEX HULL IN 3 DIMENSIONS PETR FELKEL FEL CTU PRAGUE [email protected] https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start Based on [Berg], [Preparata], [Rourke] and [Boissonnat] Version from 16.11.2017 Talk overview Upper bounds for convex hull in 2D and 3D Other criteria for CH algorithm classification Recapitulation of CH algorithms Terminology refresh Convex hull in 3D – Terminology – Algorithms • Gift wrapping • D&C Merge • Randomized Incremental www.cguu.com www.cguu.com Computational geometry (2 / 41) Upper bounds for Convex hull algorithms O(n) for sorted points and for simple polygon 2 3 O(n log n) in E ,E with sorting – insensitive about output O(n h), O(n logh), h is number of CH facets – output sensitive –O(n2) or O(n logn) for n ~ h O(log n) for new point insertion in realtime algs. => O(n log n) for n-points O(log n) search where to insert Computational geometry (3 / 41) Other criteria for CH algorithm classification Optimality – depends on data order (or distribution) In the worst case x In the expected case Output sensitivity – depends on the result ~ O(f(h)) Extendable to higher dimensions? Off-line versus on-line – Off-line – all points available, preprocessing for search speedup – On-line – stream of points, new point pi on demand, just one new point at a time, CH valid for {p1,p2 ,…, pi } – Real-time – points come as they “want” (come not faster than optimal constant O(log n) inter-arrival delay) Parallelizable x serial Dynamic – points can be deleted Deterministic x approximate (lecture 13) Computational -
An Overview of Computational Geometry
An Overview of Computational Geometry Alex Scheffelin Contents 1 Abstract 2 2 Introduction 3 2.1 Basic Definitions . .3 3 Floating Point Error 4 3.1 Imprecision in Floating Point Operations . .4 3.2 Precision in the Calculation of the Area of a Polygon . .5 4 Speed 7 4.1 Big O Notation . .7 4.2 A More Efficient Algorithm to Calculate Intersections of Lines . .8 4.3 Recap on Speed . 15 5 How Can Pure Mathematics Influence Computational Geometry? 16 5.1 Point in Polygon Calculation . 16 5.2 Why Do We Care? . 19 6 Convex Hull Algorithms 19 6.1 What is a Convex Hull . 19 6.2 The Jarvis March Algorithm . 19 6.3 The Graham Scan Algorithm . 21 6.4 Other Efficient Algorithms . 22 6.5 Generalizations to the Convex Hull . 23 7 Conclusion 23 1 1 Abstract Computational geometry is an applied math field which can be described as the intersection of geometry and computer science. It has many real world applications, including in 3D mod- elling programs, graphics processing, etc. We will provide an overview of the methodology of computational geometry in the limited case of 2D objects, culminating in the discussion of the construction of convex hulls, a type of polygon in the plane which is determined by a set of points. Along the way we will try to explain some unique difficulties one faces when using a computer to compute things, and attempt to highlight the methods of proof used. 2 2 Introduction 2.1 Basic Definitions I will define a few geometric objects, and give example about how one might represent them in a computer. -
An Algorithm for Finding Convex Hulls of Planar Point Sets
An Algorithm for Finding Convex Hulls of Planar Point Sets Gang Mei, John C.Tipper Nengxiong Xu Institut für Geowissenschaften – Geologie School of Engineering and Technology Albert-Ludwigs-Universität Freiburg China University of Geosciences (Beijing) Freiburg im Breisgau, Germany Beijing, China {gang.mei, john.tipper}@geologie.uni-freiburg.de [email protected] Abstract —This paper presents an alternate choice of computing Liu and Wang [13] propose a reliable and effective CH the convex hulls (CHs) for planar point sets. We firstly discard algorithm based on a technique named Principle Component the interior points and then sort the remaining vertices by x- / y- Analysis for preprocessing the planar point set. A fast CH coordinates separately, and later create a group of quadrilaterals algorithm with maximum inscribed circle affine transformation (e-Quads) recursively according to the sequences of the sorted is developed in [14]; and another two quite fast algorithms are lists of points. Finally, the desired CH is built based on a simple both designed based on GPU [15, 16]. polygon derived from all e-Quads. Besides the preprocessing for original planar point sets, this algorithm has another mechanism In this paper, we present an alternate algorithm to produce of discarding interior point when form e-Quads and assemble the the convex hull for points in the plane. The main ideas of the simple polygon. Compared with three popular CH algorithms, proposed algorithms are as follows. A planar point set is firstly the proposed algorithm can generate CHs faster than the three preprocessed by discarding its interior points; secondly the but has a penalty in space cost. -
28 ARRANGEMENTS Dan Halperin and Micha Sharir
28 ARRANGEMENTS Dan Halperin and Micha Sharir INTRODUCTION Given a finite collection of geometric objects such as hyperplanes or spheres in Rd, the arrangement ( S) is the decomposition of Rd into connected open cells of dimensions 0, 1,...,d AinducedS by . Besides being interesting in their own right, ar- rangements of hyperplanes have servedS as a unifying structure for many problems in discrete and computational geometry. With the recent advances in the study of arrangements of curved (algebraic) surfaces, arrangements have emerged as the underlying structure of geometric problems in a variety of “physical world” applica- tion domains such as robot motion planning and computer vision. This chapter is devoted to arrangements of hyperplanes and of curved surfaces in low-dimensional Euclidean space, with an emphasis on combinatorics and algorithms. In the first section we introduce basic terminology and combinatorics of ar- rangements. In Section 28.2 we describe substructures in arrangements and their combinatorial complexity. Section 28.3 deals with data structures for representing arrangements and with special refinements of arrangements. The following two sections focus on algorithms: algorithms for constructing full arrangements are described in Section 28.4, and algorithms for constructing substructures in Sec- tion 28.5. In Section 28.6 we discuss the relation between arrangements and other structures. Several applications of arrangements are reviewed in Section 28.7. Sec- tion 28.8 deals with robustness issues when implementing algorithms and data structures for arrangements and Section 28.9 surveys software implementations. We conclude in Section 28.10 with a brief review of Davenport-Schinzel sequences, a combinatorial structure that plays an important role in the analysis of arrange- ments. -
Computational Geometry
Computational Geometry Third Edition Mark de Berg · Otfried Cheong Marc van Kreveld · Mark Overmars Computational Geometry Algorithms and Applications Third Edition 123 Prof. Dr. Mark de Berg Dr. Marc van Kreveld Department of Mathematics Department of Information and Computer Science and Computing Sciences TU Eindhoven Utrecht University P.O. Box 513 P.O. Box 80.089 5600 MB Eindhoven 3508 TB Utrecht The Netherlands The Netherlands [email protected] [email protected] Dr. Otfried Cheong, ne´ Schwarzkopf Prof. Dr. Mark Overmars Department of Computer Science Department of Information KAIST and Computing Sciences Gwahangno 335, Yuseong-gu Utrecht University Daejeon 305-701 P.O. Box 80.089 Korea 3508 TB Utrecht [email protected] The Netherlands [email protected] ISBN 978-3-540-77973-5 e-ISBN 978-3-540-77974-2 DOI 10.1007/978-3-540-77974-2 ACM Computing Classification (1998): F.2.2, I.3.5 Library of Congress Control Number: 2008921564 © 2008, 2000, 1997 Springer-Verlag Berlin Heidelberg This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer. Violations are liable for prosecution under the German Copyright Law. The use of general descriptive names, registered names, trademarks, etc. -
Computational Geometry Lectures
Computational Geometry Lectures Olivier Devillers & Monique Teillaud Bibliography Books [30, 19, 18, 45, 66, 70] 1 Convex hull: definitions, classical algorithms. • Definition, extremal point. [66] • Jarvis algorithm. [54] • Orientation predicate. [55] • Buggy degenerate example. [36] • Real RAM model and general position hypothesis. [66] • Graham algorithm. [50] • Lower bound. [66] • Other results. [67, 68, 58, 56, 8, 65, 7] • Higher dimensions. [82, 25] 2 Delaunay triangulation: definitions, motivations, proper- ties, classical algorithms. • Space of spheres [31, 32] • Delaunay predicates. [42] • Flipping trianagulation [52] • Incremental algorithm [57] • Sweep-line [48] • Divide&conquer [74] • Deletion [35, 20, 37] 1 3 Probabilistic analyses: randomized algorithms, evenly dis- tributed points. • Randomization [29, 73, 14] – Delaunay tree [16, 17] and variant [51] – Jump and walk [63, 62] – Delaunay hierarchy [34] – Biased random insertion order [6] – Accelerated algorithms [28, 72, 33, 26] • Poisson point processes [71, 64] – Straight walk [44, 27] – Visibility walk [39] – Walks on vertices [27, 41, 59] – Smoothed analysis [75, 38] 4 Robustness issues: numerical issues, degenerate cases. • IEEE754 [49] • Orientation with double [55] • Solution 1: no geometric theorems [76] • Exact geometric computation paradigm [81] • Perturbations – controlled [61] – symbolic: SoS [46], world [2], 4th dim [43], “qualitative” [40] 5 Triangulations in the CGAL library. • https://doc.cgal.org/latest/Manual/packages.html#PartTriangulationsAndDelaunayTriangulations -
Voronoi Diagrams, Delaunay Triangulations and Polytopes
Voronoi Diagrams, Delaunay Triangulations and Polytopes Jean-Daniel Boissonnat Geometrica, INRIA http://www-sop.inria.fr/geometrica Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 1 / 1 Voronoi diagrams in nature Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 2 / 1 The solar system (Descartes) Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 3 / 1 Growth of merystem Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 4 / 1 Euclidean Voronoi diagrams Voronoi cell V(pi) = x : x pi x pj ; j f k − k ≤ k − k 8 g Voronoi diagram (P)= collection of all cells V(pi), pi P f 2 g Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 5 / 1 Voronoi diagrams and polytopes Polytope The intersection of a finite collection of half-spaces : = T h+ V i2I i Each Voronoi cell is a polytope The Voronoi diagram has the structure of a cell complex d+ The Voronoi diagram of P is the projection of a polytope of R 1 Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 6 / 1 Voronoi diagrams and polytopes Polytope The intersection of a finite collection of half-spaces : = T h+ V i2I i Each Voronoi cell is a polytope The Voronoi diagram has the structure of a cell complex d+ The Voronoi diagram of P is the projection of a polytope of R 1 Algorithmic Geometry Triangulations 2 Voronoi& Delaunay 6 / 1 Voronoi diagrams and polytopes Polytope The intersection of a finite collection of half-spaces : = T h+ V i2I i Each Voronoi cell is a polytope The Voronoi diagram has the structure of a cell complex d+ The Voronoi diagram of P is the projection