贪心算法在 0-1 背包 p‌r‌o‌b‌l‌e‌m 失败的情况

Posted

技术标签:

【中文标题】贪心算法在 0-1 背包 p‌r‌o‌b‌l‌e‌m 失败的情况【英文标题】:Cases where the greedy algorithm fails the 0-1 knapsack p‌r‌o‌b‌l‌e‌m 【发布时间】: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 背包 p‌r‌o‌b‌l‌e‌m 失败的情况的主要内容,如果未能解决你的问题,请参考以下文章

如何使用动态规划自顶向下方法解决这个 p‌r‌o‌b‌l‌e‌m?

贪心算法之背包问题

算法贪心算法(0-1背包问题)

贪心算法背包问题

0-1背包的贪心算法

贪心算法求解0-1背包问题