Knapsack and Subset Sum are fundamental NP-hard problems in combinatorial optimization. Recently there has been a growing interest in understanding the best possible pseudopolynomial running times for these problems with respect to various parameters. In this paper we focus on the maximum item size $s$ and the maximum item value $v$. We give algorithms that run in time $O(n + s^3)$ and $O(n + v^3)$ for the Knapsack problem, and in time $\tilde{O}(n + s^{5/3})$ for the Subset Sum problem. Our algorithms work for the more general problem variants with multiplicities, where each input item comes with a (binary encoded) multiplicity, which succinctly describes how many times the item appears in the instance. In these variants $n$ denotes the (possibly much smaller) number of distinct items. Our results follow from combining and optimizing several diverse lines of research, notably proximity arguments for integer programming due to Eisenbrand and Weismantel (TALG 2019), fast structured $(\min,+)$-convolution by Kellerer and Pferschy (J. Comb. Optim. 2004), and additive combinatorics methods originating from Galil and Margalit (SICOMP 1991).
翻译:Knapsack 和 Subset Sum 是组合优化中最根本的NP- 硬性问题。 最近人们越来越有兴趣了解这些问题在各种参数方面的最佳假球运行时间。 在本文中, 我们集中关注项目最大规模$和最大项目价值$v$。 我们给出的算法在时间上为Knapsack 问题和时间为 $\tilde{O}(n + s ⁇ 5/3}(n + s ⁇ 5/3}) 美元, 用于Subset Sum 问题。 我们的算法在多个参数中为更一般性的问题变量工作, 每一个输入项目都包含一个( bine 编码) 多重变量, 简洁地描述了项目在实例中出现的次数 。 在这些变量中, $( 可能更小得多) 表示不同项目的数量 。 我们的结果来自于合并和优化了多个不同的研究线, 特别是由 Eisenbran 和 Weismantel (TAGG 2019) 和 Oblial- Chillial 和 Ollal (Cal 2019) 和 ASyal- Chillial- 和 Oll) 和 Bell (ARIal) 和 BAR- 的快速 方法。