【发布时间】:2015-11-03 08:20:10
【问题描述】:
我想知道是否存在仅使用一种或另一种可以解决的情况(即仅使用重复的背包或不重复的背包),或者两者是否总是可以相互还原。
为了清楚起见,给定 n 个项目 [1...n],其中项目 i 的权重为 w_i,价值为 v_i,并试图选择项目的组合以使总价值最大化,而总重量小于一些 W。
不重复的背包公式(就动态规划而言)是
K(w, j) = max{K(w-w_j, j-1) + v_j, K(w, j-1)}
其中 K(w, j) 是指使用容量为 k 的背包和物品 1...j 可达到的最大值,而重复背包的公式为
K(w) = max{K(w-w_i) + v_i | w_i <= w}
其中 K(w) 是容量为 w 的背包可实现的最大重量。
【问题讨论】:
标签: algorithm dynamic-programming