主题:高手帮一下忙
cheny0000
[专家分:0] 发布于 2009-09-02 16:45:00
[color=00FFFF]有容积为1.5立方米的背包和6件物品。已知物品的价格分别为
0.7,0.5,0.4,0.6,0.8,0.55,物品的[/color]
哪位高手帮忙用MATLAB解答一下哈,感激不尽[em2]
回复列表 (共3个回复)
沙发
cheny0000 [专家分:0] 发布于 2009-09-02 16:49:00
不好意思,错了[em10]
是有容积为1.5立方米的背包和6件物品。已知物品的价格分别为
0.7,0.5,0.4,0.6,0.8,0.55,物品的体积分别为0.35,0.3,0.6,0.4,0.7,0.5(立方米),确
定一种方案选取哪几件物品装入包内,可使背包所装物品的总价值最大?
板凳
永恒的回忆 [专家分:810] 发布于 2009-09-05 18:27:00
背包问题,matlab7.0是没有整数规划函数的,所以要自己写,或去下一个现成的。
如果是仅仅针对这个小规模的不讲究算法的话,硬搜也很快。如果需要一点效率的话,找些智能算法,比如用matlab中的遗传工具箱比较方便,只需简单写个适应函数
3 楼
永恒的回忆 [专家分:810] 发布于 2009-09-05 18:49:00
适应函数为:
function y=fitness(x)
value=[0.7,0.5,0.4,0.6,0.8,0.55];
volume=[0.35,0.3,0.6,0.4,0.7,0.5];
if volume*x'>1
y=1;
else
y=-value*x';
end
在gatool工具箱里选择嵌入该函数,同时把种族改成bit string,一运行就行了
答案为:0 1 0 0 1 0
我来回复