最佳填充背包的动态规划算法在一个背包的情况下运行良好。但是是否有一种有效的已知算法可以最佳地填充 2 个背包(容量可能不相等)?
我尝试了以下两种方法,但它们都不正确。
- 首先使用原始的 DP 算法填充第一个背包,填充一个背包,然后填充另一个背包。
- 首先填充一个大小为 W1 + W2 的背包,然后将溶液分成两个溶液(其中 W1 和 W2 是两个背包的容量)。
问题陈述(另见Wikipedia 上的背包问题):
我们必须用一组物品(每个物品都有一个重量和一个值)填充背包,以便在总重量小于或等于背包大小的情况下最大化我们可以从这些物品中获得的价值。
我们不能多次使用一个项目。
- 我们不能使用项目的一部分。我们不能拿走一件物品的一小部分。(每个项目都必须完全包含或不包含)。