Discrete & Computational Geometry

, Volume 8, Issue 1, pp 295-313

A pivoting algorithm for convex hulls and vertex enumeration of arrangements and polyhedra

  • David AvisAffiliated withSchool of Computer Science, McGill University
  • , Komei FukudaAffiliated withGraduate School of Systems Management, University of Tsukuba

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access


We present a new pivot-based algorithm which can be used with minor modification for the enumeration of the facets of the convex hull of a set of points, or for the enumeration of the vertices of an arrangement or of a convex polyhedron, in arbitrary dimension. The algorithm has the following properties:
  1. (a)

    Virtually no additional storage is required beyond the input data.

  2. (b)

    The output list produced is free of duplicates.

  3. (c)

    The algorithm is extremely simple, requires no data structures, and handles all degenerate cases.

  4. (d)

    The running time is output sensitive for nondegenerate inputs.

  5. (e)

    The algorithm is easy to parallelize efficiently.


For example, the algorithm finds thev vertices of a polyhedron inR d defined by a nondegenerate system ofn inequalities (or, dually, thev facets of the convex hull ofn points inR d, where each facet contains exactlyd given points) in timeO(ndv) andO(nd) space. Thev vertices in a simple arrangement ofn hyperplanes inR d can be found inO(n 2 dv) time andO(nd) space complexity. The algorithm is based on inverting finite pivot algorithms for linear programming.