贪心算法在 0-1 背包 problem 失败的情况
Posted
技术标签:
【中文标题】贪心算法在 0-1 背包 problem 失败的情况【英文标题】:Cases where the greedy algorithm fails the 0-1 knapsack problem 【发布时间】:2015-03-25 22:12:14 【问题描述】:我正在寻找这样一种情况,即挑选重量
【问题讨论】:
有没有你已经考虑过的方法? 【参考方案1】:考虑一个容量为 4 的背包,以及具有以下重量和值的物品:
项目重量值值/重量 A 3 1.65 0.55 乙 2 1 0.5 C 2 1 0.5基于每重量价值的贪心算法将首先选择项目 A 然后退出,剩余的容量不足任何其他项目 - 总值 1.65。然而,最佳解决方案是选择 B 和 C 项,它们一起恰好占据了全部容量,并且组合值为 2。
更一般地说,当贪心算法选择一组不占用全部可用容量的项目时,它可能会失败。填充更多可用容量的一组不同的项目有时会是更好的选择。
【讨论】:
【参考方案2】:我们还可以概括贪心算法无法给出全局最优解的情况。
如下
权重 = 1, x, x+1 目标体重 = z
x 是 z 的倍数 y 小于 z 且大于 x x 和 y 都大于 1 包括 1,以便在所有情况下都有解决贪婪方法的方法对于上述一般情况,大多数时候贪婪方法都失败了。你可以试试例子。
【讨论】:
以上是关于贪心算法在 0-1 背包 problem 失败的情况的主要内容,如果未能解决你的问题,请参考以下文章