Space-Efficient Algorithm for Integer Programming with Few Constraints

Lars Rohwedder,Karol Węgrzycki
2024-09-06
Abstract:Integer linear programs $\min\{c^T x : A x = b, x \in \mathbb{Z}^n_{\ge 0}\}$, where $A \in \mathbb{Z}^{m \times n}$, $b \in \mathbb{Z}^m$, and $c \in \mathbb{Z}^n$, can be solved in pseudopolynomial time for any fixed number of constraints $m = O(1)$. More precisely, in time $(m\Delta)^{O(m)} \text{poly}(I)$, where $\Delta$ is the maximum absolute value of an entry in $A$ and $I$ the input size. Known algorithms rely heavily on dynamic programming, which leads to a space complexity of similar order of magnitude as the running time. In this paper, we present a polynomial space algorithm that solves integer linear programs in $(m\Delta)^{O(m (\log m + \log\log\Delta))} \text{poly}(I)$ time, that is, in almost the same time as previous dynamic programming algorithms.
Data Structures and Algorithms
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the space - efficiency problem of integer linear programming (ILP) when the number of constraint conditions is small. Specifically, for the integer linear programming problem in the form of \( \text{min}\{c^Tx : Ax = b, x \in \mathbb{Z}_+^n\} \), where \( A \in \mathbb{Z}^{m \times n} \), \( b \in \mathbb{Z}^m \), \( c \in \mathbb{Z}^n \), although existing algorithms can be solved in pseudo - polynomial time, these algorithms usually require a space complexity similar to the running time. This leads to the fact that in practical applications, the storage requirement has become a bottleneck. The main contribution of the paper lies in proposing a new algorithm, which can run in polynomial space, and its running time is almost the same as that of the existing dynamic programming methods. Specifically, the running time of the new algorithm is \( (m\Delta)^{O(m(\log m+\log \log \Delta))} \cdot \text{poly}(I) \), where \( \Delta \) is the maximum absolute value of the elements in matrix \( A \), and \( I \) is the encoding size of the input. ### Main problems 1. **Space efficiency**: When solving integer linear programming problems, existing algorithms have a high space complexity, which limits their practical applications. 2. **Running time**: Although existing algorithms can be solved in pseudo - polynomial time under a fixed number \( m \) of constraint conditions, the space complexity of these algorithms is also high. ### Main contributions of the paper - **Polynomial - space algorithm**: A new algorithm is proposed, which can solve integer linear programming problems in polynomial space. - **Near - optimal running time**: The running time of the new algorithm is almost the same as that of the existing dynamic programming methods, that is, \( (m\Delta)^{O(m(\log m+\log \log \Delta))} \cdot \text{poly}(I) \). ### Solutions - **Branch algorithm**: By recursively guessing the support set of the solution and decomposing the problem into smaller sub - problems to reduce the space complexity. - **Candidate support set**: By enumerating candidate support sets, the running time and space complexity of the algorithm are further optimized. ### Conclusion The paper successfully proposes a new algorithm for solving integer linear programming problems in polynomial space, and the running time of this algorithm is close to the existing best dynamic programming methods. This result is of great significance for resource management in practical applications, especially when the storage resources are limited.