Document

# Evaluating and Tuning n-fold Integer Programming

## File

LIPIcs.SEA.2018.10.pdf
• Filesize: 0.82 MB
• 14 pages

## Cite As

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)
https://doi.org/10.4230/LIPIcs.SEA.2018.10

## Abstract

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
##### Keywords
• n-fold integer programming
• integer programming
• analysis of algorithms
• primal heuristic
• local search

## Metrics

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

## References

1. 4ti2 team. 4ti2 - a software package for algebraic, geometric and combinatorial problems on linear spaces. Available at www.4ti2.de.
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.
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.
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.
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.
7. Emilie Danna, Edward Rothberg, and Claude Le Pape. Exploring relaxation induced neighborhoods to improve mip solutions. Mathematical Programming, 102(1):71-90, 2005.
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.
9. Friedrich Eisenbrand, Christoph Hunkenschröder, and Kim-Manuel Klein. Faster algorithms for integer programs with block structure. arXiv preprint arXiv:1802.06289, 2018.
10. Elisabeth Finhold and Raymond Hemmecke. Lower bounds on the graver complexity of m-fold matrices. Annals of Combinatorics, 20(1):73-85, 2016.
11. Matteo Fischetti and Andrea Lodi. Local branching. Mathematical programming, 98(1-3):23-47, 2003.
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.
14. Raymond Hemmecke. Exploiting symmetries in the computation of graver bases. arXiv preprint math/0410334, 2004.
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.
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.
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.
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.
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.
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.
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.
24. Martin Koutecký, Asaf Levin, and Shmuel Onn. A parameterized strongly polynomial algorithm for block structured integer programs. arXiv preprint arXiv:1802.05859, 2018.
25. Andrea Lodi. Mixed integer programming computation. In 50 Years of Integer Programming 1958-2008, pages 619-645. Springer, 2010.
26. Shmuel Onn. Nonlinear discrete optimization. Zurich Lectures in Advanced Mathematics, European Mathematical Society, 2010.
27. David Pisinger and Stefan Ropke. Large neighborhood search. In Handbook of metaheuristics, pages 399-419. Springer, 2010.
28. Yves Pochet and Laurence A Wolsey. Production planning by mixed integer programming. Springer Science &Business Media, 2006.
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.
30. Tommi Sottinen. Operations research with gnu linear programming kit. ORMS, 1020:200, 2009.
31. The Sage Developers. SageMath, the Sage Mathematics Software System (Version 7.6), 2017. http://www.sagemath.org.