algorithm - 连续背包与连续背包0-1 背包

标签 algorithm knapsack-problem

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

最佳答案

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

对于 0-1 背包,其中是朴素贪心算法的反例。考虑重量为 6, 5, 4 且成本为 8, 5, 4 的元素。让允许的总重量为9。显然,最佳解决方案是选择第二个和第三个项目的总成本为 9,但是第一个项目无论是绝对值还是相对于其重量都更有值(value),因此应该通过`贪心算法。

关于algorithm - 连续背包与连续背包0-1 背包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35967159/

相关文章:

javascript - 使用 JavaScript 的罗马数字转换器

algorithm - 动态规划计算子集和(背包)中子集解的个数

algorithm - 双背包算法

performance - 在F#: performance中解决背包问题

haskell - Haskell中动态规划的高效表

algorithm - 解决背包动态规划调试

algorithm - 复杂性和伪代码解释

java - 概率模拟误差不收敛

c++ - 联赛赛程算法讲解

python - 如何在存储在字典中的图形上启动 Dijkstra 算法