Approximate integer programming is the following: For a convex body $K \subseteq \mathbb{R}^n$, either determine whether $K \cap \mathbb{Z}^n$ 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 $2^{O(n)}$ while the fastest known methods for exact integer programming run in time $2^{O(n)} \cdot n^n$. 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^* \in (K \cap \mathbb{Z}^n)$ can be found in time $2^{O(n)}$, provided that the remainders of each component $x_i^* \mod{\ell}$ for some arbitrarily fixed $\ell \geq 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 $2^{O(n)}n^n$ 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, 0 \leq x \leq u, \, x \in \mathbb{Z}^n$ . Such a problem can be reduced to the solution of $\prod_i O(\log u_i +1)$ approximate integer programming problems. This implies, for example that knapsack or subset-sum problems with polynomial variable range $0 \leq x_i \leq p(n)$ can be solved in time $(\log n)^{O(n)}$. For these problems, the best running time so far was $n^n \cdot 2^{O(n)}$.
翻译:近似整数规划问题如下:对于凸体 $K \subseteq \mathbb{R}^n$,要么判定 $K \cap \mathbb{Z}^n$ 是否为空,要么在凸体从其重心 $c$ 缩放 $2$ 倍后找到其中的一个整数点。近似整数规划可在 $2^{O(n)}$ 时间内求解,而目前已知最快的精确整数规划方法运行时间为 $2^{O(n)} \cdot n^n$。迄今为止,尚没有基于近似整数规划的高效整数规划方法。我们的主要贡献是两种这样的方法,每种都产生了新的复杂度结果。首先,我们证明,在给定 $x^*$ 的每个分量 $x_i^*$ 对某个任意固定 $\ell \geq 5(n+1)$ 取模的余数时,整数点 $x^* \in (K \cap \mathbb{Z}^n)$ 可在 $2^{O(n)}$ 时间内找到。该算法基于切割平面技术,迭代地将可行集的体积减半。切割平面通过近似整数规划确定。对可能余数的枚举给出了通用整数规划的一个 $2^{O(n)}n^n$ 算法。这与 Dadush(2012)提出的复杂度更高的当前最优算法界相匹配。我们的算法还依赖于一个新的非对称近似Carathéodory定理,该定理本身可能具有独立意义。我们的第二种方法涉及标准方程形式 $Ax = b, 0 \leq x \leq u, \, x \in \mathbb{Z}^n$ 的整数规划问题。此类问题可归约为求解 $\prod_i O(\log u_i +1)$ 个近似整数规划问题。这意味着,例如,具有多项式变量范围 $0 \leq x_i \leq p(n)$ 的背包或子集和问题可在 $(\log n)^{O(n)}$ 时间内求解。对于这些问题,此前的最佳运行时间为 $n^n \cdot 2^{O(n)}$。