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 Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
for computing the
convex hull In geometry, the convex hull, convex envelope or convex closure of a shape is the smallest convex set that contains it. The convex hull may be defined either as the intersection of all convex sets containing a given subset of a Euclidean space, ...
of a set of points in the plane, with \mathcal(n \log h)
time complexity In theoretical 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 ...
, 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 publishe ...
, 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 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 earned his M.Sc. in 1 ...
. 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 dir ...
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 occurs when the definition of a concept or process depends on a simpler or previous version of itself. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in m ...
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 cu ...
s that connect the two hulls from above and below. The Kirkpatrick–Seidel algorithm splits the input as before, by finding the
median The median of a set of numbers is the value separating the higher half from the lower half of a Sample (statistics), data sample, a statistical population, population, or a probability distribution. For a data set, it may be thought of as the “ ...
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 Convex hull#Applications, broad range of applications in mathematics and computer science. In computational geometry, numerous algorithms are proposed for computing the convex hull o ...


References

{{DEFAULTSORT:Kirkpatrick-Seidel algorithm Convex hull algorithms