1.6.2 Convex Hull

Problem Input | Problem Output

INPUT                    OUTPUT


Input Description: A set S of n points in d-dimensional space.

Problem: Find the smallest convex polygon containing all the points of S.

Excerpt from The Algorithm Design Manual: Finding the convex hull of a set of points is the most elementary interesting problem in computational geometry, just as minimum spanning tree is the most elementary interesting problem in graph algorithms. It arises because the hull quickly captures a rough idea of the shape or extent of a data set.

Convex hull also serves as a first preprocessing step to many, if not most, geometric algorithms. For example, consider the problem of finding the diameter of a set of points, which is the pair of points a maximum distance apart. The diameter will always be the distance between two points on the convex hull. The O(n \lg n). algorithm for computing diameter proceeds by first constructing the convex hull, then for each hull vertex finding which other hull vertex is farthest away from it. This so-called ``rotating-calipers'' method can be used to move efficiently from one hull vertex to another.

The best books available for this problem are Computational Geometry in C by Joseph O'Rourke and Computational Geometry : Algorithms and Applications by Mark De Berg, Marc Van Kreveld, Mark Overmars, and O. Schwartskopf.


Implementations

  • Qhull - higher dimensional convex hull program (C) (rating 10)
  • 3D Convex Hull algorithm in Java (C) (rating 6)
  • Clarkson's higher dimensional convex hull code (C) (rating 6)
  • LEDA - A Library of Efficient Data Types and Algorithms (C++) (rating 6)
  • 3D Convex Hull algorithm in Java (Java) (rating 5)
  • Xtango and Polka Algorithm Animation Systems (C++) (rating 4)
  • Netlib / TOMS -- Collected Algorithms of the ACM (FORTRAN) (rating 3)
  • Moret and Shapiro's Algorithms P to NP (Pascal) (rating 3)

    Related Problems

  • Simplifying Polygons
  • Sorting
  • Traveling Salesman Problem
  • Voronoi Diagrams


    Previous Problem Next Problem

    View the graph for this file

    Bulletin Board
    About ``The Algorithm Design Manual''.
    Send us Mail
    The Stony Brook Algorithm Repository -- go to front page

    This page last modified on Wed Mar 07, 2001 .