Next: Acknowledgements
Up: Frequently Asked Questions in
Previous: What is LP?
  Contents
Polyhedral Computation Codes
- cddlib, cdd and cdd+ [Fuk02]
(C and C++ implementations of the double description method [MRTT53]).
Comments: Floating and exact arithmetic. Efficient for highly
degenerate cases. The exact
version cddr+ is much slower. It can remove redundancies from input data
using a built-in LP code. cddlib is a C-library with basic
polyhedral conversion functions and LP solvers. cddlib can be
compiled with both GMP rational (mpq) and floating point arithmetic.
- lrs [Avi] (C implementation of the reverse search algorithm
[AF92]). A parallel version prs has been developed by A. Marzetta,
see [BMFN96].
Comments: Exact arithmetic only, efficient for nondegenerate cases. Uses a little memory
and perhaps the only available code which can deal with problems generating
huge output (say, one million vertices/facets).
- pd [Mar97] (C implementation of the primal-dual algorithm
[BFM97]).
Comments: Exact arithmetic only, efficient for dually nondegenerate cases.
- qhull [BDH96,BDH03] (C implementation of
the beneath-beyond method, see [Ede87,Mul94],
which is the dual of the dd method).
Comments: Floating arithmetic only but handles numerical problems
well. Highly efficient for nondegenerate cases.
User can call it as a C-libary.
- porta [CL97] (C implementation of
the Fourier-Motzkin elimination method [Zie94]).
Comments: Efficient for combinatorial (e.g. 0-1) polytopes.
Guarantees correct numerical results as long as
double precision integer arithmetic does not overflow.
It can list all integer solutions in a polytope.
- polymake [GJ99] (computational
environment for the algorithmic
treatment of polytopes and polyhedra).
One can generate convex polytopes and do various computations
with convex polyhedra.
It uses cdd+/porta/lrs for representation conversions.
It is extendable by writing own "rules" to generate
new structures/data associated with polyhedra.
- zeRone [Lüb99] (C implementation of
the backtrack vertex enumeration algorithm for
0-1 H-polytopes [BL98].
Comments: In general, the straightforward backtrack algorithm
for the vertex enumeration problem must solve NP-complete
decision problems, as it was shown in [FLM97].
The situation is different for 0-1 polytopes and
the problem is strongly polynomially solvable. The code
can generate all 0-1 points in a general H-polytope.
It relies on the commercial LP solver CPLEX.
- Pointers to many other programs in geometric computations
are stored in [Ame,Eri].
- For linear programming, one should check the Linear Programming
FAQ at [FG]. It lists both public (open source) and commercial
codes.
Next: Acknowledgements
Up: Frequently Asked Questions in
Previous: What is LP?
  Contents
Komei Fukuda
2004-08-26