Mathematical Programming Computation

, Volume 9, Issue 1, pp 1–38 | Cite as

Computing convex hulls and counting integer points with polymake

  • Benjamin Assarf
  • Ewgenij Gawrilow
  • Katrin Herr
  • Michael JoswigEmail author
  • Benjamin Lorenz
  • Andreas Paffenholz
  • Thomas Rehn
Full Length Paper


The main purpose of this paper is to report on the state of the art of computing integer hulls and their facets as well as counting lattice points in convex polytopes. Using the polymake system we explore various algorithms and implementations. Our experience in this area is summarized in ten “rules of thumb”.


Convex hull computation Lattice point enumeration Facets of integer hulls 

Mathematics Subject Classification

90-08 52-04 



We thank Thomas Opfer for contributing his implementation of the dual simplex method, originally written for his Master’s Thesis [53], to the polymake project, and this includes the code maintenance until today. Moreover, we are very grateful to the developers of cdd, lrs, normaliz and ppl as they gave us various kind of valuable feedback. The comments by David Avis and Winfried Bruns were particularly detailed. What we found most rewarding is the fact that, partially in reaction to the 2014 preprint version of this paper, the teams of lrs and normaliz published new releases of their codes. Throughout these show improvements which are sometimes very substantial, e.g., for normaliz ’ handling of non-symmetric cut polytopes. The interested reader may find it worth-while to compare the results below with that preprint version (which is still available as arXiv:1408.4653v1).


  1. 1.
    4ti2 team, 4ti2—A software package for algebraic, geometric and combinatorial problems on linear spaces. (2015)
  2. 2.
    Achterberg, T.: SCIP: solving constraint integer programs. Math. Program. Comput. 1(1), 1–41. (2009)
  3. 3.
    Avis, D.: lrslib, version 6.0, (2015)
  4. 4.
    Avis, D., Bremner, D. and Seidel, R.: How good are convex hull algorithms? Comput. Geom. 7(5–6), 265–301 (1997) (11th ACM Symposium on Computational Geometry (Vancouver, BC, 1995))Google Scholar
  5. 5.
    Avis, D., Fukuda, K.: A pivoting algorithm for convex hulls and vertex enumeration of arrangements and polyhedra, Discrete Comput. Geom. 8(3), 295–313 (1992) (ACM Symposium on Computational Geometry (North Conway, NH, 1991))Google Scholar
  6. 6.
    Avis, D., Fukuda, K.: Reverse search for enumeration, Discrete Appl. Math. 65(1–3), 21–46 (1996) (First International Colloquium on Graphs and Optimization (GOI), 1992 (Grimentz))Google Scholar
  7. 7.
    Avis, D., Imai, H., Ito, T.: Generating facets for the cut polytope of a graph by triangular elimination. Math. Program. Ser. A 112(2), 303–325 (2008)Google Scholar
  8. 8.
    Avis, D., Jordan, C.: Comparative computational results for some vertex and facet enumeration codes, preprint arXiv:1510.02545 (2015)
  9. 9.
    Bagnara, R., Hill, P. M., Zaffanella, E.: The Parma Polyhedra Library: Toward a complete set of numerical abstractions for the analysis and verification of hardware and software systems. Sci. Comp. Program. 72(1–2), 3–21 (2008)Google Scholar
  10. 10.
    Baldoni, V., Berline, N., De Loera, J., Dutra, B., Koeppe, M., Vergne, M.: Coefficients of Sylvester’s denumerant, Integers 15, Paper No. A11 (2015)Google Scholar
  11. 11.
    Barahona, F.: The max-cut problem on graphs not contractible to \(K_{s}\). Oper. Res. Lett. 2(3), 107–111 (1983)Google Scholar
  12. 12.
    Barvinok, A. I.: A polynomial time algorithm for counting integral points in polyhedra when the dimension is fixed. Math. Oper. Res. 19(4), 769–779 (1994)Google Scholar
  13. 13.
    Behle, M.: On threshold BDDs and the optimal variable ordering problem, Combinatorial Optimization and Applications. In: Andreas, D., Yinfeng, X., Binhai, Z. (eds) Lecture Notes in Computer Science, vol. 4616, pp. 124–135, Springer Berlin Heidelberg (English) (2007)Google Scholar
  14. 14.
    Bejraburnin, N.: On facet inequalities of correlation polytopes,
  15. 15.
    Karl, H.B.: Average-case analysis of the double description method and the beneath-beyond algorithm. Discrete Comput. Geom. 37(2), 175–204 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Bremner, D.: Incremental convex hull algorithms are not output sensitive. Discrete Comput. Geom. 21(1), 57–68 (1999)Google Scholar
  17. 17.
    Bremner, D., Dutour Sikirić, M., Schürmann, A.: Polyhedral representation conversion up to symmetries. Polyhedral computation, CRM Proc. Lecture Notes, vol. 48, Amer. Math. Soc., Providence, RI, pp. 45–71 (2009)Google Scholar
  18. 18.
    Bruns, W., Ichim, B., Söger, C.: The power of pyramid decomposition in Normaliz, J. Symbolic Comput. 74, 513–536 (2016)Google Scholar
  19. 19.
    Bruns, W., Ichim, B., Söger, C., Römer, T.: Normaliz. Algorithms for rational cones and affine monoids, version 2.99.4, (2015)
  20. 20.
    Chazelle, B.: An optimal convex hull algorithm in any fixed dimension. Discrete Comput. Geom. 10(4), 377–409 (1993)Google Scholar
  21. 21.
    Chernikova, N.V.: Algorithm for finding a general formula for the non-negative solutions of system of linear equations. USSR Comput. Math. Math. Phys. 4(4), 151–158 (1964)CrossRefzbMATHGoogle Scholar
  22. 22.
    Christof, T.: SMAPO, a library of linear descriptions of low-dimensional 0/1-polytopes connected with small instances of combinatorial optimization problems. (2010)
  23. 23.
    Christof, T., Loebel, A.: PORTA, version 1.4.1-20090921. (2009)
  24. 24.
  25. 25.
    De Loera, J.A.: The many aspects of counting lattice points in polytopes. Math. Semesterber. 52(2), 175–195 (2005)Google Scholar
  26. 26.
    De Loera, J.A., Berline, N., Baldoni, V., Dutra, B., Köppe, M., Moreinis, S., Pinto, G., Vergne, M., Wu, J.: A user’s guide for LattE integrale v1.7.3, software package LattE is available at, (2015)
  27. 27.
    De Loera, J. A., Dutra, B., Köppe, M., Moreinis, S., Pinto, G., Wu, J.: Software for exact integration of polynomials over polyhedra. Comput. Geom. 46(3), 232–252 (2013)Google Scholar
  28. 28.
    Dewey, C., Woods, K.: Parametric Sequence Alignment, Algebraic Statistics for Computational Biology. Cambridge Univ. Press, New York (2005)Google Scholar
  29. 29.
    Edelsbrunner, H.: Algorithms in combinatorial geometry, EATCS Monographs on Theoretical Computer Science, vol. 10. Springer-Verlag, Berlin (1987)Google Scholar
  30. 30.
    Koch, T. et al.: MIPLIB 2010. Math. Program. Comput. 3(2) 103–163 (english), (2011)
  31. 31.
    Granlund, T. et al.: GNU multiple precision arithmetic library 5.1.2,
  32. 32.
    Fukuda, K.: cddlib, version 0.94h, (2015)
  33. 33.
    Fukuda, K., Prodon, A.: Double description method revisited, Combinatorics and computer science (Brest 1995), Lecture Notes in Comput. Sci., vol. 1120, pp 91–111, Springer, Berlin (1996)Google Scholar
  34. 34.
    Garey, M. R., Johnson, D. S.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman & Co., New York (1979)Google Scholar
  35. 35.
    Gawrilow, E., Joswig, M.: Polymake: a framework for analyzing convex polytopes, Polytopes–combinatorics and computation (Oberwolfach 1997), DMV Sem., vol. 29, pp. 43–73, Birkhäuser, Basel, (2000)Google Scholar
  36. 36.
    Gawrilow, E., Joswig, M.: Flexible object hierarchies in polymake. In: Andrés, I., Nobuki, T. (eds.) Proceedings of the 2nd International Congress of Mathematical Software, 1–3. September 2006, pp. 219–221, Castro Urdiales, Spanien (2006)Google Scholar
  37. 37.
    Ghemawat, S., Menage, P.: Thread-Caching Malloc part of the Google Performance Tools.
  38. 38.
    Gurobi Optimization, Inc., Gurobi optimizer reference manual (2013)Google Scholar
  39. 39.
    Hayes, A.C., David, G., Larman, : The vertices of the knapsack polytope. Discrete Appl. Math. 6(2), 135–138 (1983)MathSciNetCrossRefzbMATHGoogle Scholar
  40. 40.
    Hemmecke, R.: On the computation of Hilbert bases of cones, Mathematical software (Beijing, 2002) World Sci. Publ. River Edge, NJ 2002, pp. 307–317Google Scholar
  41. 41.
    The MathWorks Inc., MATLAB version (r2013b),, Natick, Massachusetts (2010)
  42. 42.
    Joswig, M.: Beneath-and-Beyond Revisited, Algebra, Geometry, and Software Systems. Springer, Berlin (2003)Google Scholar
  43. 43.
    Joswig, M., Loho, G., Lorenz, B., Schröter, B.: Linear programs and convex hulls over fields of Puiseux fractions. In: Mathematical Aspects of Computer and Information Sciences: 6th International Conference, MACIS 2015, Berlin, Germany, November 11–13, 2015, Revised Selected Papers, Lecture Notes in Comput. Sci., vol. 9582, pp 429–445, Springer, Berlin (2016)Google Scholar
  44. 44.
    Joswig, M., Theobald, T.: Polyhedral and algebraic methods in computational geometry, Universitext, Springer, London, 2013, Revised and updated translation of the 2008 German originalGoogle Scholar
  45. 45.
    Joswig, M., Ziegler, G. M.: Convex hulls, oracles, and homology. J. Symbolic Comput. 38(4), 1247–1259 (2004)Google Scholar
  46. 46.
    Khachiyan, L., Boros, E., Borys, K., Elbassioni, K., Gurvich, V.: Generating all vertices of a polyhedron is hard. Discrete Comput. Geom. 39(1–3), 174–190 (2008)Google Scholar
  47. 47.
    Klee, V., Minty, G.J.: How good is the simplex algorithm? Inequalities III. In: Proceedings of Third Symposium University California, Los Angeles, Calif., 1969; dedicated to the memory of Theodore S. Motzkin, pp. 159–175, Academic Press, New York (1972)Google Scholar
  48. 48.
    Koeppe, M., Verdoolaege, S., Woods, K.: An implementation of the Barvinok-Woods integer projection algorithm. In: Proceedings of the International Conference on Information Theory and Statistical Learning, pp. 53–59 (2008)Google Scholar
  49. 49.
    Köppe, M.: A primal Barvinok algorithm based on irrational decompositions. SIAM J. Discrete Math. 21(1), 220–236 (electronic) (2007)Google Scholar
  50. 50.
    McMullen, P.: The numbers of faces of simplicial polytopes. Israel J. Math. 9, 559–570 (1971)Google Scholar
  51. 51.
    Motzkin, T.S., Raiffa, H., Thompson, G.L., Thrall, R.M.: The double description method, Contributions to the theory of games, vol. 2, Annals of Mathematics Studies, no. 28, pp. 51–73, Princeton University Press, Princeton, (1953)Google Scholar
  52. 52.
    Murai, S., Nevo, E.: On the generalized lower bound conjecture for polytopes and spheres. Acta Math. 210(1), 185–202 (2013)Google Scholar
  53. 53.
    Opfer, T.: Entwicklung eines exakten rationalen dualen Simplex-Lösers, Master’s thesis, TU Darmstadt, (2011)Google Scholar
  54. 54.
    The polymake team, Computing convex hulls and counting integer points with polymake,, Experimental data and source code (2015)
  55. 55.
    The polymake team, polymake, version 2.14, (2015)
  56. 56.
    Loïc, P.: The Euclidean algorithm in dimension \(n\), ISSAC ’96. Proceedings of the 1996 international symposium on Symbolic and algebraic computation, pp. 40–42 (1996)Google Scholar
  57. 57.
    Rehn, T.: Polyhedral description conversion up to symmetries, Master’s thesis, Otto-von-Guericke-Universität Magdeburg, (2010)Google Scholar
  58. 58.
    Schrijver, A.: Combinatorial optimization. Polyhedra and efficiency. Vol. C, Algorithms and Combinatorics, vol. 24, pp. 70–83, Springer-Verlag, Berlin, Disjoint paths, hypergraphs, Chapters (2003)Google Scholar
  59. 59.
    Seidel, R.: A convex hull algorithm optimal for point sets in even dimensions. Tech. report, University of British Columbia, Department of Computer Science (1981)Google Scholar
  60. 60.
    Tantau, T.: TikZ ist kein Zeichenprogramm PGF/TikZ,
  61. 61.
    The CGAL Project, CGAL user and reference manual, 4.7 ed., CGAL Editorial Board, (2015)Google Scholar
  62. 62.
    Valiant, L.G.: The complexity of enumeration and reliability problems. SIAM J. Comput. 8(3), 410–421 (1979)MathSciNetCrossRefzbMATHGoogle Scholar
  63. 63.
    Verdoolaege, S.: barvinok,
  64. 64.
    Walter, M.: Unimodularity-test extension for polymake,
  65. 65.
    Walter, M., Truemper, K.: Implementation of a unimodularity test. Math. Program. Comput. 5(1), 57–73 (2013)Google Scholar
  66. 66.
    Ziegler, G.M.: Lectures on polytopes, Graduate Texts in Mathematics, vol. 152. Springer-Verlag, New York (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg and The Mathematical Programming Society 2016

Authors and Affiliations

  • Benjamin Assarf
    • 1
  • Ewgenij Gawrilow
    • 2
  • Katrin Herr
    • 3
  • Michael Joswig
    • 1
    Email author
  • Benjamin Lorenz
    • 1
  • Andreas Paffenholz
    • 3
  • Thomas Rehn
    • 4
  1. 1.Institut für Mathematik, TU BerlinBerlinGermany
  2. 2.TomTom International BVAmsterdamThe Netherlands
  3. 3.Fachbereich Mathematik, TU DarmstadtDarmstadtGermany
  4. 4.initOS GmbH & Co. KGMagdeburgGermany

Personalised recommendations