当前位置:嗨网首页>书籍在线阅读

07-问题分析

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.2.1 问题分析

n个物品和1个购物车,每个物品i对应价值为vi,重量wi,购物车的容量为W(你也可以将重量设定为体积)。每个物品只有一件,要么装入,要么不装入,不可拆分。如何选取物品装入购物车,使购物车所装入的物品的总价值最大?

我们可以尝试贪心的策略:

(1)每次挑选价值最大的物品装入背包,得到的结果是否最优?

(2)每次挑选所占空间最小的物品装入,能否得到最优解?

(3)每次选取单位重量价值最大的物品,能否得到价值最高?

思考一下,如果选价值最大的物品,但重量非常大,也是不行的,因为运载能力有限,所以第(1)种策略舍弃;如果选所占空间最小的物品装入,占用空间小不一定重量就轻,也有可能空间小,特别重,所以不能在总重限制的情况下保证价值最高,第(2)种策略舍弃;而第(3)种是每次选取单位重量价值最大的物品,也就是说每次选择性价比最高的物品,如果可以达到运载重量m,那么一定能得到价值最高?不一定。因为物品不可分割,有可能存在购物车没装满,却不能再装剩下的物品,这样价值不一定达到最高。

因此采用贪心策略解决此问题不一定能得到最优解。

我们可以先用普通队列式分支界限法求解,然后在6.3.6节中用优先队列式分支界限法求解,大家可以对比体会有何不同。