From approximate to exact integer programming

Daniel Dadush, Friedrich Eisenbrand, Thomas Rothvoss

Submitted on 7 November 2022


Approximate integer programming is the following: For a convex body KRn, either determine whether KZn is empty, or find an integer point in the convex body scaled by 2 from its center of gravity c. Approximate integer programming can be solved in time 2O(n) while the fastest known methods for exact integer programming run in time 2O(n)nn. So far, there are no efficient methods for integer programming known that are based on approximate integer programming. Our main contribution are two such methods, each yielding novel complexity results. First, we show that an integer point x(KZn) can be found in time 2O(n), provided that the remainders of each component ximod for some arbitrarily fixed 5(n+1) of x are given. The algorithm is based on a cutting-plane technique, iteratively halving the volume of the feasible set. The cutting planes are determined via approximate integer programming. Enumeration of the possible remainders gives a 2O(n)nn algorithm for general integer programming. This matches the current best bound of an algorithm by Dadush (2012) that is considerably more involved. Our algorithm also relies on a new asymmetric approximate Carath\'eodory theorem that might be of interest on its own. Our second method concerns integer programming problems in equation-standard form Ax=b,0xu,xZn . Such a problem can be reduced to the solution of iO(logui+1) approximate integer programming problems. This implies, for example that knapsack or subset-sum problems with polynomial variable range 0xip(n) can be solved in time (logn)O(n). For these problems, the best running time so far was nn2O(n).


Subjects: Mathematics - Optimization and Control; Computer Science - Computational Complexity; Computer Science - Discrete Mathematics; Computer Science - Data Structures and Algorithms; Mathematics - Combinatorics; 15A, 52B, 52C, 68Q, 68R, 68W, 90B, 90C; F.2.2; G.1.6