Table of Contents
Fetching ...

Making Quickhull More Like Quicksort: A Simple Randomized Output-Sensitive Convex Hull Algorithm

Michael T. Goodrich, Ryuto Kitagawa

TL;DR

Ray-shooting Quickhull is presented, 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, and shows that the randomized Ray-shooting Quickhull algorithm runs in O(n log h) expected time.

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 $Θ(n^2) time$ 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 on assumptions about the distribution of input points. Still, we show that, like the deterministic Quickhull algorithm, our randomized Ray-shooting Quickhull algorithm runs in O(n) expected time for n points chosen uniformly at random from a bounded convex region. We also provide experimental evidence that the randomized Ray-shooting Quickhull algorithm is on par or faster than deterministic Quickhull in practice, depending on the input distribution.

Making Quickhull More Like Quicksort: A Simple Randomized Output-Sensitive Convex Hull Algorithm

TL;DR

Ray-shooting Quickhull is presented, 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, and shows that the randomized Ray-shooting Quickhull algorithm runs in O(n log h) expected time.

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 on assumptions about the distribution of input points. Still, we show that, like the deterministic Quickhull algorithm, our randomized Ray-shooting Quickhull algorithm runs in O(n) expected time for n points chosen uniformly at random from a bounded convex region. We also provide experimental evidence that the randomized Ray-shooting Quickhull algorithm is on par or faster than deterministic Quickhull in practice, depending on the input distribution.
Paper Structure (13 sections, 5 theorems, 13 equations, 9 figures, 1 algorithm)

This paper contains 13 sections, 5 theorems, 13 equations, 9 figures, 1 algorithm.

Key Result

Theorem 1

Algorithm RayShoot is correct.

Figures (9)

  • Figure 1: A two-dimensional convex hull.
  • Figure 2: Illustrating the Quickhull algorithm. (a) the initialization step; (b) a recursive call.
  • Figure 3: Illustrating the randomized Ray-shooting Quickhull algorithm. (a) the initialization step; (b) a recursive call.
  • Figure 4: Illustrating the ray-shooting algorithm. (a) before considering the point $p_i$; (b) after updating the edge $(s,t)$ to be $(p_i,t')$.
  • Figure 5: Illustrating case 1 of the proof of Theorem \ref{['thm:linear']}.
  • ...and 4 more figures

Theorems & Definitions (5)

  • Theorem 1
  • Theorem 2
  • Theorem 3
  • Theorem 4
  • Theorem 5