Knapsack with Small Items in Near-Quadratic Time
The Bounded Knapsack problem is one of the most fundamental NP-complete problems at the intersection of computer science, optimization, and operations research. A recent line of research worked towards understanding the complexity of pseudopolynomial-time algorithms for Bounded Knapsack parameterized by the maximum item weight w_max and the number of items n. A conditional lower bound rules out that Bounded Knapsack can be solved in time O((n+w_max)^2-δ) for any δ > 0 [Cygan, Mucha, Wegrzycki, Wlodarczyk'17, Künnemann, Paturi, Schneider'17]. This raised the question whether Bounded Knapsack can be solved in time Õ((n+w_max)^2). The quest of resolving this question lead to algorithms that run in time Õ(n^3 w_max^2) [Tamir'09], Õ(n^2 w_max^2) and Õ(n w_max^3) [Bateni, Hajiaghayi, Seddighin, Stein'18], O(n^2 w_max^2) and Õ(n w_max^2) [Eisenbrand and Weismantel'18], O(n + w_max^3) [Polak, Rohwedder, Wegrzycki'21], and very recently Õ(n + w_max^12/5) [Chen, Lian, Mao, Zhang'23]. In this paper we resolve this question by designing an algorithm for Bounded Knapsack with running time Õ(n + w_max^2), which is conditionally near-optimal.
READ FULL TEXT