Evaluating and Tuning n-fold Integer Programming

by   Kateřina Altmanová, et al.

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. 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 n. 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.


page 1

page 2

page 3

page 4


On the Graver basis of block-structured integer programming

We consider the 4-block n-fold integer programming (IP), in which the co...

A Parameterized Strongly Polynomial Algorithm for Block Structured Integer Programs

The theory of n-fold integer programming has been recently emerging as a...

Faster Algorithms for Integer Programs with Block Structure

We consider integer programming problems { c^T x : A x = b, l ≤ x ≤ u, x...

Learning to Search in Local Branching

Finding high-quality solutions to mixed-integer linear programming probl...

About the Complexity of Two-Stage Stochastic IPs

We consider so called 2-stage stochastic integer programs (IPs) and thei...

Most IPs with bounded determinants can be solved in polynomial time

In 1983 Lenstra showed that an integer program (IP) is fixed parameter t...

When Can You Tile an Integer Rectangle with Integer Squares?

This paper characterizes when an m × n rectangle, where m and n are inte...

Please sign up or login with your details

Forgot password? Click here to reset