Making Quickhull More Like Quicksort: A Simple Randomized Output-Sensitive Convex Hull Algorithm
Michael T. Goodrich, Ryuto Kitagawa

TL;DR
This paper introduces a simple, randomized, output-sensitive convex hull algorithm called Ray-shooting Quickhull, which achieves expected O(n log h) time and performs well in practice, improving upon the original Quickhull's worst-case performance.
Contribution
The paper presents a new randomized convex hull algorithm that is simpler, output-sensitive, and has improved expected performance bounds compared to existing methods.
Findings
Expected runtime of O(n log h) for the algorithm.
Performance matches or exceeds deterministic Quickhull in practice.
Expected O(n) time for uniformly random points in a convex region.
Abstract
In this paper, we present Ray-shooting Quickhull, which is a simple, randomized, outputsensitive version of the Quickhull algorithm for constructing the convex hull of a set of n points in the plane. We show that the randomized Ray-shooting Quickhull algorithm runs in O(n log h) expected time, where h is the number of points on the boundary of the convex hull. Keeping with the spirit of the original Quickhull algorithm, our algorithm is quite simple and is, in fact, closer in spirit to the well-known randomized Quicksort algorithm. Unlike the original Quickhull algorithm, however, which can run in for some input distributions, the expected performance bounds for the randomized Ray-shooting Quickhull algorithm match or improve the performance bounds of more complicated algorithms. Importantly, the expectation in our output-sensitive performance bound does not depend…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsMetaheuristic Optimization Algorithms Research · Evolutionary Algorithms and Applications · Machine Learning and Data Classification
