贪婪算法未能解决0-1背包问题的情况

Fre*_*red 0 algorithm knapsack-problem

我正在寻找一个案例,其中贪婪算法选择具有重量<最大重量并且首先放入背包的最高值/重量比的物品将不起作用.有没有人有例子?因为否则,贪婪的最坏情况将是O(nlogn)(nlogn以降序值/权重排序,n来经历它),而动态编程方式的最坏情况是O(nW),使logn <时贪婪更快W.

Joh*_*ger 6

考虑一个容量为4的背包,以及具有以下重量和值的物品:

Item  Weight  Value  value/Weight
 A      3      1.65     0.55
 B      2      1        0.5
 C      2      1        0.5

基于每重量值的贪婪算法首先选择项目A然后退出,剩余的容量不足以用于任何其他项目 - 总值1.65.然而,最佳解决方案是选择项目B和C,它们共同占据全部容量并且具有2的组合值.

更一般地说,贪婪算法在选择一组不占用整个可用容量的项目时可能会失败.填充更多可用容量的不同项目有时是更好的选择.