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^* \in (K \cap \mathbb{Z}^n)$ 的每个分量 $x_i^*$ 模某个任意固定 $\ell \geq 5(n+1)$ 的余数,则可在 $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)}$。