背包分支和绑定

时间:2013-12-11 14:05:06

标签: algorithm backtracking knapsack-problem branch-and-bound

我有以下数据:

item   weight   value   value/weight
1      5        40      8
2      2        10      5
3      6        30      5
4      1        12      12
5      2        18      9

容量是10。 如何继续计算节点0的上限? 我正在计算节点0的上限,如下所示:

ub = v + [W-w] * [v/w]
ub = 0 + [10] * [8] = 80

或者我是否需要按照其值/重量的降序对物品进行分类为12,9,8,5,5?然后计算上限? 或者我做得对,没有排序,计算上限并继续下一个项目?

在没有排序的方法中,我不会在节点0获得最大上限,我想是的。

ub = 0 + [10] * [12] = 120 // if sorted

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

节点零的上限是分数背包的贪婪解决方案。 只需取出具有最高值/重量比的元素并继续插入,直到没有剩余空间或完全插入它。并重复这个过程。