Kirkpatrick–Seidel Algorithm
   HOME

TheInfoList



OR:

The Kirkpatrick–Seidel algorithm, proposed by its authors as a potential "ultimate planar convex hull algorithm", is an
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
for computing the convex hull of a set of points in the plane, with \mathcal(n \log h)
time complexity In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
, where n is the number of input points and h is the number of points (non dominated or maximal points, as called in some texts) in the hull. Thus, the algorithm is output-sensitive: its running time depends on both the input size and the output size. Another output-sensitive algorithm, the
gift wrapping algorithm In computational geometry, the gift wrapping algorithm is an algorithm for computing the convex hull of a given set of points. Planar case In the two-dimensional case the algorithm is also known as Jarvis march, after R. A. Jarvis, who publish ...
, was known much earlier, but the Kirkpatrick–Seidel algorithm has an asymptotic running time that is significantly smaller and that always improves on the \mathcal(n \log n) bounds of non-output-sensitive algorithms. The Kirkpatrick–Seidel algorithm is named after its inventors,
David G. Kirkpatrick David Galer Kirkpatrick is a Professor Emeritus of computer science at the University of British Columbia. He is known for the Kirkpatrick–Seidel algorithm and his work on polygon triangulation, and for co-inventing α-shapes and the β-skel ...
and
Raimund Seidel Raimund G. Seidel is a German and Austrian theoretical computer scientist and an expert in computational geometry. Seidel was born in Graz, Austria, and studied with Hermann Maurer at the Graz University of Technology. He received his M. Sc. in ...
. Although the algorithm is asymptotically optimal, it is not very practical for moderate-sized problems.


Algorithm

The basic idea of the algorithm is a kind of reversal of the
divide-and-conquer algorithm In computer science, divide and conquer is an algorithm design paradigm. A divide-and-conquer algorithm recursively breaks down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved dire ...
for convex hulls of Preparata and Hong, dubbed "marriage-before-conquest" by the authors. The traditional divide-and-conquer algorithm splits the input points into two equal parts, e.g., by a vertical line,
recursively Recursion (adjective: ''recursive'') occurs when a thing is defined in terms of itself or of its type. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in mathematic ...
finds convex hulls for the left and right subsets of the input, and then merges the two hulls into one by finding the "bridge edges",
bitangent In geometry, a bitangent to a curve is a line that touches in two distinct points and and that has the same direction as at these points. That is, is a tangent line at and at . Bitangents of algebraic curves In general, an algebraic c ...
s that connect the two hulls from above and below. The Kirkpatrick–Seidel algorithm splits the input as before, by finding the median of the ''x''-coordinates of the input points. However, the algorithm reverses the order of the subsequent steps: its next step is to find the edges of the convex hull that intersect the vertical line defined by this median x-coordinate, which turns out to require linear time.Original paper by Kirkpatrick / Seidel (1986), p. 10, theorem 3.1 The points on the left and right sides of the splitting line that cannot contribute to the eventual hull are discarded, and the algorithm proceeds recursively on the remaining points. In more detail, the algorithm performs a separate recursion for the upper and lower parts of the convex hull; in the recursion for the upper hull, the noncontributing points to be discarded are those below the bridge edge vertically, while in the recursion for the lower hull the points above the bridge edge vertically are discarded. At the ith level of the recursion, the algorithm solves at most 2^i subproblems, each of size at most \frac. The total number of subproblems considered is at most h, since each subproblem finds a new convex hull edge. The worst case occurs when no points can be discarded and the subproblems are as large as possible; that is, when there are exactly 2^i subproblems in each level of recursion up to level \log_2 h . For this worst case, there are \mathcal(\log h) levels of recursion and \mathcal(n) points considered within each level, so the total running time is \mathcal(n \log h) as stated.


See also

*
Convex hull algorithms Algorithms that construct convex hulls of various objects have a broad range of applications in mathematics and computer science. In computational geometry, numerous algorithms are proposed for computing the convex hull of a finite set of poin ...


References

{{DEFAULTSORT:Kirkpatrick-Seidel algorithm Convex hull algorithms