Solving Knapsack with Small Items via L0-Proximity
We study pseudo-polynomial time algorithms for the fundamental 0-1 Knapsack problem. In terms of n and w_max, previous algorithms for 0-1 Knapsack have cubic time complexities: O(n^2w_max) (Bellman 1957), O(nw_max^2) (Kellerer and Pferschy 2004), and O(n + w_max^3) (Polak, Rohwedder, and Węgrzycki 2021). On the other hand, fine-grained complexity only rules out O((n+w_max)^2-δ) running time, and it is an important question in this area whether Õ(n+w_max^2) time is achievable. Our main result makes significant progress towards solving this question: - The 0-1 Knapsack problem has a deterministic algorithm in Õ(n + w_max^2.5) time. Our techniques also apply to the easier Subset Sum problem: - The Subset Sum problem has a randomized algorithm in Õ(n + w_max^1.5) time. This improves (and simplifies) the previous Õ(n + w_max^5/3)-time algorithm by Polak, Rohwedder, and Węgrzycki (2021) (based on Galil and Margalit (1991), and Bringmann and Wellnitz (2021)). Similar to recent works on Knapsack (and integer programs in general), our algorithms also utilize the proximity between optimal integral solutions and fractional solutions. Our new ideas are as follows: - Previous works used an O(w_max) proximity bound in the ℓ_1-norm. As our main conceptual contribution, we use an additive-combinatorial theorem by Erdős and Sárközy (1990) to derive an ℓ_0-proximity bound of Õ(√(w_max)). - Then, the main technical component of our Knapsack result is a dynamic programming algorithm that exploits both ℓ_0- and ℓ_1-proximity. It is based on a vast extension of the “witness propagation” method, originally designed by Deng, Mao, and Zhong (2023) for the easier unbounded setting only.
READ FULL TEXT