Combinatorial n-fold Integer Programming and Applications
Integer Linear Programming is a famous NP-complete problem. Lenstra showed that in the case of small dimension, it can be solved in polynomial time. This algorithm became a ubiquitous tool, especially in the design of parameterized algorithms for NP-complete problems, where we wish to isolate the hardness of an instance to some parameter. However, it was discovered that in many cases using Lenstra's algorithm has two drawbacks. First, the dependence of the resulting algorithms is often doubly-exponential in the parameter, and second, an ILP formulation in small dimension can not easily express problems which involve many different costs.
Inspired by the work of Hemmecke, Onn and Romanchuk~[Math. Prog. 2013], we develop a single-exponential algorithm for so called combinatorial $n$-fold integer programs, which are remarkably similar to prior ILP formulations for various problems, but unlike them, also allow variable dimension. We then apply our algorithm to a few representative problems like Closest String, Swap Bribery, Weighted Set Multicover etc., and obtain exponential speedups in the dependence on the respective parameters, the input size, or both.
Unlike Lenstra's algorithm, which is essentially a bounded search tree algorithm, our result uses the technique of augmenting steps. At its heart is a deep result stating that in combinatorial $n$-fold IPs an existence of an augmenting step implies an existence of a "local" augmenting step, which can be found using dynamic programming. Our results provide an important insight into many problems by showing that they exhibit this phenomenon, and highlights the importance of augmentation techniques.
This is joint work with Martin Koutecký and Matthias Mnich. This work was supported by NSERC grant 12345. This research was supported by the CE-ITI grant project P202/12/G061 of GA ČR, the GA UK grant project 1784214, and ERC Starting Grant 306465 (BeyondWorstCase). An extended abstract of these results appeared in the Proceedings of the 25th European Symposium of Algorithms. Available at https://arxiv.org/abs/1705.08657.