Benchmark instances for the unbounded knapsack problem are typically generated according to specific criteria within a given constant range $R$, and these instances can be referred to as the unbounded knapsack problem with bounded coefficients (UKPB). In order to increase the difficulty of solving these instances, the knapsack capacity $C$ is usually set to a very large value. Therefore, an exact algorithm that neither time complexity nor space complexity includes the capacity coefficient $C$ is highly anticipated. In this paper, we propose an exact algorithm with time complexity of $O(R^4)$ and space complexity of $O(R^3)$. The algorithm initially divides the multiset $N$ into two multisubsets, $N_1$ and $N_2$, based on the profit density of their types. For the multisubset $N_2$ composed of types with profit density lower than the maximum profit density type, we utilize a recent branch and bound (B\&B) result by Dey et al. (Math. Prog., pp 569-587, 2023) to determine the maximum selection number for types in $N_2$. We then employ the Unbounded-DP algorithm to exactly solve for the types in $N_2$. For the multisubset $N_1$ composed of the maximum profit density type and its counterparts with the same profit density, we transform it into a linear Diophantine equation and leverage relevant conclusions from the Frobenius problem to solve it efficiently. In particular, the proof techniques required by the algorithm are primarily covered in the first-year mathematics curriculum, which is convenient for subsequent researchers to grasp.
翻译:无界背包问题的基准实例通常根据特定标准在给定常数范围$R$内生成,这些实例可称为有界系数无界背包问题(UKPB)。为增加求解难度,背包容量$C$通常设为极大值。因此,时间复杂度和空间复杂度均不包含容量系数$C$的精确算法备受期待。本文提出一种精确算法,时间复杂度为$O(R^4)$,空间复杂度为$O(R^3)$。该算法首先根据类型利润密度将多重集$N$划分为两个子多重集$N_1$和$N_2$。对于由利润密度低于最大利润密度类型的子多重集$N_2$,我们利用Dey等人(Math. Prog., pp 569-587, 2023)最新的分支定界(B&B)结果确定$N_2$中类型的最大选择数量,并采用Unbounded-DP算法精确求解$N_2$中的类型。对于由最大利润密度类型及其同利润密度类型组成的子多重集$N_1$,我们将其转化为线性丢番图方程,并利用弗罗贝尼乌斯问题的相关结论高效求解。值得注意的是,该算法所需的证明技巧主要涵盖于大学一年级数学课程中,便于后续研究者掌握。