【发布时间】:2016-03-13 06:13:01
【问题描述】:
为什么贪心方法适用于连续背包问题,而不适用于 0-1 背包问题?
【问题讨论】:
标签: algorithm knapsack-problem
为什么贪心方法适用于连续背包问题,而不适用于 0-1 背包问题?
【问题讨论】:
标签: algorithm knapsack-problem
对于连续背包,您不能在最佳解决方案中拥有每单位成本为c 的物品q > 0,而在最佳解决方案中留下另一件成本为c' > c 的物品q' > 0。否则,您只需将第一项的 min(q, q') 数量替换为第二项的相同数量,从而将总成本增加 min(q,q')*(c' - c)。
对于 0-1 背包,这里是一个朴素贪心算法的反例。考虑重量6, 5, 4 和成本8, 5, 4 的项目。让总允许重量为9。显然,最优解是在9的总成本中取第二项和第三项,但第一项的绝对值和相对于其权重的价值更高,因此应通过“贪婪”算法进行选择。
【讨论】:
在 0-1 背包中,贪婪方法不起作用,因为它确实希望您权衡所有可能的组合,因为与分数背包不同,我们可以使用贪婪算法来获得最大利润,空白空间会降低每人的有效利润磅(重量)的负载。在0-1背包中,当我们考虑是否在背包中包含一个物品时,我们必须将包含该物品的子问题的解决方案与排除该物品的子问题的解决方案进行比较,然后才能做出选择。
因此解决方案运行 O(nW),其中 n 是物品的数量,W 是您可以放入背包的物品的重量
希望它澄清!
【讨论】: