Evaluating and Tuning n-fold Integer Programming

Authors Katerina Altmanová, Dusan Knop , Martin Koutecký

Thumbnail PDF


  • Filesize: 0.82 MB
  • 14 pages

Document Identifiers

Author Details

Katerina Altmanová
  • Department of Applied Mathematics, Charles University, Prague, Czech Republic
Dusan Knop
  • Department of Informatics, University of Bergen, Bergen, Norway and, Department of Applied Mathematics, Charles University, Prague, Czech Republic
Martin Koutecký
  • Faculty of Industrial Engineering and Management, Technion -- Israel Institute of Technology, Haifa, Israel

Cite AsGet BibTex

Katerina Altmanová, Dusan Knop, and Martin Koutecký. Evaluating and Tuning n-fold Integer Programming. In 17th International Symposium on Experimental Algorithms (SEA 2018). Leibniz International Proceedings in Informatics (LIPIcs), Volume 103, pp. 10:1-10:14, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)


In recent years, algorithmic breakthroughs in stringology, computational social choice, scheduling, etc., were achieved by applying the theory of so-called n-fold integer programming. An n-fold integer program (IP) has a highly uniform block structured constraint matrix. Hemmecke, Onn, and Romanchuk [Math. Programming, 2013] showed an algorithm with runtime a^{O(rst + r^2s)} n^3, where a is the largest coefficient, r,s, and t are dimensions of blocks of the constraint matrix and n is the total dimension of the IP; thus, an algorithm efficient if the blocks are of small size and with small coefficients. The algorithm works by iteratively improving a feasible solution with augmenting steps, and n-fold IPs have the special property that augmenting steps are guaranteed to exist in a not-too-large neighborhood. However, this algorithm has never been implemented and evaluated. We have implemented the algorithm and learned the following along the way. The original algorithm is practically unusable, but we discover a series of improvements which make its evaluation possible. Crucially, we observe that a certain constant in the algorithm can be treated as a tuning parameter, which yields an efficient heuristic (essentially searching in a smaller-than-guaranteed neighborhood). Furthermore, the algorithm uses an overly expensive strategy to find a "best" step, while finding only an "approximatelly best" step is much cheaper, yet sufficient for quick convergence. Using this insight, we improve the asymptotic dependence on n from n^3 to n^2 log n which yields the currently asymptotically fastest algorithm for n-fold IP. Finally, we tested the behavior of the algorithm with various values of the tuning parameter and different strategies of finding improving steps. First, we show that decreasing the tuning parameter initially leads to an increased number of iterations needed for convergence and eventually to getting stuck in local optima, as expected. However, surprisingly small values of the parameter already exhibit good behavior. Second, our new strategy for finding "approximatelly best" steps wildly outperforms the original construction.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Software design engineering
  • Theory of computation → Parameterized complexity and exact algorithms
  • n-fold integer programming
  • integer programming
  • analysis of algorithms
  • primal heuristic
  • local search


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. 4ti2 team. 4ti2 - a software package for algebraic, geometric and combinatorial problems on linear spaces. Available at www.4ti2.de. Google Scholar
  2. Livio Bertacco, Matteo Fischetti, and Andrea Lodi. A feasibility pump heuristic for general mixed-integer problems. Discrete Optimization, 4(1):63-76, 2007. Mixed Integer Programming. URL: http://dx.doi.org/10.1016/j.disopt.2006.10.001.
  3. Timo Berthold. Measuring the impact of primal heuristics. Operations Research Letters, 41(6):611-614, 2013. Google Scholar
  4. Ralf Borndörfer, Martin Grötschel, and Ulrich Jäger. Planning problems in public transit. In Production Factor Mathematics, pages 95-121. Springer, 2010. Google Scholar
  5. Lin Chen and Daniel Marx. Covering a tree with rooted subtrees-parameterized and approximation algorithms. In Proceedings of the Twenty-Ninth Annual ACM-SIAM Symposium on Discrete Algorithms, pages 2801-2820. SIAM, 2018. Google Scholar
  6. Markus Chimani, Matthias Woste, and Sebastian Böcker. A closer look at the closest string and closest substring problem. In 2011 Proceedings of the Thirteenth Workshop on Algorithm Engineering and Experiments (ALENEX), pages 13-24. SIAM, 2011. Google Scholar
  7. Emilie Danna, Edward Rothberg, and Claude Le Pape. Exploring relaxation induced neighborhoods to improve mip solutions. Mathematical Programming, 102(1):71-90, 2005. Google Scholar
  8. Jesus A. De Loera, Raymond Hemmecke, and Matthias Köppe. Algebraic and Geometric Ideas in the Theory of Discrete Optimization, volume 14 of MOS-SIAM Series on Optimization. SIAM, 2013. Google Scholar
  9. Friedrich Eisenbrand, Christoph Hunkenschröder, and Kim-Manuel Klein. Faster algorithms for integer programs with block structure. arXiv preprint arXiv:1802.06289, 2018. Google Scholar
  10. Elisabeth Finhold and Raymond Hemmecke. Lower bounds on the graver complexity of m-fold matrices. Annals of Combinatorics, 20(1):73-85, 2016. Google Scholar
  11. Matteo Fischetti and Andrea Lodi. Local branching. Mathematical programming, 98(1-3):23-47, 2003. Google Scholar
  12. Gurobi Optimization, Inc. Gurobi optimizer reference manual, 2016. URL: http://www.gurobi.com.
  13. Stefan Heinz, Wen-Yang Ku, and Christopher J. Beck. Recent improvements using constraint integer programming for resource allocation and scheduling. In International Conference on AI and OR Techniques in Constriant Programming for Combinatorial Optimization Problems, pages 12-27. Springer, 2013. Google Scholar
  14. Raymond Hemmecke. Exploiting symmetries in the computation of graver bases. arXiv preprint math/0410334, 2004. Google Scholar
  15. Raymond Hemmecke, Matthias Köppe, and Robert Weismantel. Graver basis and proximity techniques for block-structured separable convex integer minimization problems. Math. Program., 145(1-2, Ser. A):1-18, 2014. Google Scholar
  16. Raymond Hemmecke, Shmuel Onn, and Lyubov Romanchuk. n-fold integer programming in cubic time. Math. Program., 137(1-2, Ser. A):325-341, 2013. Google Scholar
  17. John D. Hunter. Matplotlib: A 2d graphics environment. Computing In Science &Engineering, 9(3):90-95, 2007. URL: http://dx.doi.org/10.1109/MCSE.2007.55.
  18. Klaus Jansen, Kim-Manuel Klein, Marten Maack, and Malin Rau. Empowering the configuration-ip-new ptas results for scheduling with setups times. arXiv preprint arXiv:1801.06460, 2018. Google Scholar
  19. Thomas Kluyver, Benjamin Ragan-Kelley, Fernando Pérez, Brian E Granger, Matthias Bussonnier, Jonathan Frederic, Kyle Kelley, Jessica B Hamrick, Jason Grout, Sylvain Corlay, et al. Jupyter notebooks-a publishing format for reproducible computational workflows. In ELPUB, pages 87-90, 2016. Google Scholar
  20. Dušan Knop, Martin Koutecký, and Matthias Mnich. Combinatorial n-fold integer programming and applications. In Proc. ESA 2017, volume 87 of Leibniz Int. Proc. Informatics, pages 54:1-54:14, 2017. Google Scholar
  21. Dušan Knop, Martin Koutecký, and Matthias Mnich. Voting and bribing in single-exponential time. In Proc. STACS 2017, volume 66 of Leibniz Int. Proc. Informatics, pages 46:1-46:14, 2017. Google Scholar
  22. Dušan Knop and Martin Koutecký. Scheduling meets n-fold integer programming. Journal of Scheduling, Nov 2017. URL: http://dx.doi.org/10.1007/s10951-017-0550-0.
  23. Thorsten Koch, Tobias Achterberg, Erling Andersen, Oliver Bastert, Timo Berthold, Robert E Bixby, Emilie Danna, Gerald Gamrath, Ambros M Gleixner, Stefan Heinz, et al. Miplib 2010. Mathematical Programming Computation, 3(2):103, 2011. Google Scholar
  24. Martin Koutecký, Asaf Levin, and Shmuel Onn. A parameterized strongly polynomial algorithm for block structured integer programs. arXiv preprint arXiv:1802.05859, 2018. Google Scholar
  25. Andrea Lodi. Mixed integer programming computation. In 50 Years of Integer Programming 1958-2008, pages 619-645. Springer, 2010. Google Scholar
  26. Shmuel Onn. Nonlinear discrete optimization. Zurich Lectures in Advanced Mathematics, European Mathematical Society, 2010. Google Scholar
  27. David Pisinger and Stefan Ropke. Large neighborhood search. In Handbook of metaheuristics, pages 399-419. Springer, 2010. Google Scholar
  28. Yves Pochet and Laurence A Wolsey. Production planning by mixed integer programming. Springer Science &Business Media, 2006. Google Scholar
  29. Matthew J. Saltzman. Coin-or: an open-source library for optimization. In Programming languages and systems in computational economics and finance, pages 3-32. Springer, 2002. Google Scholar
  30. Tommi Sottinen. Operations research with gnu linear programming kit. ORMS, 1020:200, 2009. Google Scholar
  31. The Sage Developers. SageMath, the Sage Mathematics Software System (Version 7.6), 2017. http://www.sagemath.org. Google Scholar