连续背包VS. 0-1背包

时间:2016-03-13 06:13:01

标签: algorithm knapsack-problem

为什么贪婪的方法适用于连续背包问题,而同样的方法不适用于0-1背包问题?

2 个答案:

答案 0 :(得分:2)

对于连续背包,在最佳解决方案中,您不能拥有q > 0每个单位成本为c的项目,同时保留另一项目的q' > 0费用c' > c。否则,您只需将第一项的min(q, q')金额替换为相同数量的第二项,从而使总费用增加min(q,q')*(c' - c)

对于0-1背包,这是一个天真贪婪算法的反例。考虑权重为6, 5, 4且费用为8, 5, 4的项目。让允许的总重量为9。显然,最佳解决方案是将第二项和第三项作为9的总成本,但第一项是绝对值和相对于其权重的更多值,所以应该选择`贪婪&#39 ;算法

答案 1 :(得分:1)

在0-1背包中,贪婪的方法不起作用,因为它确实要求你权衡所有可能的组合,因为与分数背包不同,我们可以使用贪婪算法获得最大利润,空白空间降低每个有效利润磅(重量)的负荷。在0-1背包中,当我们考虑是否在背包中包含一个项目时,我们必须将解决方案与包含该项目的子问题进行比较,然后在我们可以做出选择之前将该项解决方案与排除该项目的子问题进行比较。

因此解决方案运行O(nW),其中n是项目数,W是可放入背包的项目的权重

希望它澄清!