逆背包问题

时间:2011-10-29 13:15:47

标签: algorithm dynamic-programming

我正在尝试解决下一个任务: 给定一组具有权重和值的项目,确定给定总值的背包最小承载能力。

例如 输入:

item1: w = 3.4, v = 3
item2: w = 0.4, v = 1
total value = 7

输出:

我们应该采取:

item1 x0, item2 x7

minimal capacity = 0 * 3.4 + 0.4 * 7 = 2.8
total value = 7

我应该使用动态编程的一般算法使用哪些递归公式?任何人都可以用微小的输入数据展示解决这个问题的例子吗?

P.S。抱歉我的英文。

1 个答案:

答案 0 :(得分:1)

传统(最大化)背包算法应该可以正常工作。只需将max的{​​{1}}的所有匹配项交换为min,您就应该差不多了。另一种看待这种情况的方法是使用负成本,因此最小化变得最大化(尽管如此,你需要特别注意空壳)。