我在教授给我们的问题时遇到了麻烦:
丈夫和妻子正在旅行,并希望最大化带来某些物品的好处。丈夫可带20公斤,妻子可带17公斤。他们应该带什么?
这是我用'lp_solve'linux命令编写和运行的:
max 10 hs + 9 hl + 6 ha + 3 hb + 14 hr + 10 ws + 9 wl + 6 wa + 3 wb + 14 wr;
7 hs + 6 hl + 13 ha + 4 hb + 9 hr <= 20;
7 ws + 6 wl+ 13 wa + 4 wb + 9 wr <=17;
hs + ws <= 1;
hl + wl <= 1;
ha + wa <= 1;
hb + wb <= 1;
hr + wr <= 1;
bin hs,hl,ha,hb,hr,ws,wl,wa,wb,wr;
这是我的结果:
我的结果表明,丈夫应该拿起炉子和斧头,而妻子应该拿起灯和双筒望远镜。这是一个有效的结果,但它不是最有益的......有人可以向我解释我做错了吗?
非常感谢。
答案 0 :(得分:3)
正在发生一些非常微妙的事情。您在:
后缺少冒号max
。因此lp_solver
认为max
是一个无界变量。你的目标函数值是让我失望的原因。
将目标函数修改为:
max: 10 hs + 9 hl + 6 ha + 3 hb + 14 hr + 10 ws + 9 wl + 6 wa + 3 wb + 14 wr;
您将获得正确的解决方案:
hs, ha, wl and wr will be 1.