首页 > 其他 > 详细

自己写的一个LINGO程序,欢迎指教

时间:2015-08-28 15:36:55      阅读:405      评论:0      收藏:0      [点我收藏+]

问题

9.一架货机有三个货舱:前舱、中仓和后舱。三个货舱所能装载的货物的最大重
量和体积有限制如表5 所示。并且为了飞机的平衡,三个货舱装载的货物重量必须与其
最大的容许量成比例。
表5 货舱数据
前舱 中仓 后舱
重量限制(吨) 10 16 8
体积限制(立方米) 6800 8700 5300
现有四类货物用该货机进行装运,货物的规格以及装运后获得的利润如表6。
表6 货物规格及利润表
重量(吨) 空间(立方米/吨) 利润(元/吨)
货物1 18 480 3100
货物2 15 650 3800
货物3 23 580 3500
货物4 12 390 2850
-15-
假设:
(1)每种货物可以无限细分;
(2)每种货物可以分布在一个或者多个货舱内;
(3)不同的货物可以放在同一个货舱内,并且可以保证不留空隙。
问应如何装运,使货机飞行利润最大?
-


程序

model:
sets:
huowu/1,2,3,4/:weight,volume,lirun;
huocang/1,2,3/:wtlimit,vllimit;
link(huowu,huocang):a;
endsets
data:
weight=18,15,23,12;
volume=480,650,580,390;
lirun=3100,3800,3500,2850;
wtlimit=10,16,8;
vllimit=6800,8700,5300;
enddata
max=@sum(huowu(i):@sum(huocang(j):a(i,j))*lirun(i));
@for(huocang(j):@sum(huowu(i):a(i,j))/vllimit(j)=b);
@for(huowu(i):@sum(huocang(j):a(i,j))=weight(i));
@bnd(0,b,1);
end


另一个

sets:
hc/1..3/:e,f; 
hw/1..4/:a,b,c; 
link(hc,hw):x; 
endsets
data:
a=18 15 23 12;
b=480 650 580 390;
c=3100 3800 3500 2850;
e=10 18 8;
f=6800 8700 5300;
enddata
max=@sum(hw(j):c(j)*@sum(hc(i):x(i,j)));
@for(hw(j):@sum(hc(i):x(i,j))<=a(j)); !货物吨数限制;
@for(hc(i):@sum(hw(j):x(i,j))<=e(i)); !货仓吨数限制;
@for(hc(i):@sum(hw(j):b(j)*x(i,j))<=f(i)); !货仓体积限制;
@sum(hw(j):x(2,j))*(5/2)/@sum(hw(j):x(3,j))=@sum(hw(j):x(1,j)); !成比例
 10:16:8;

版权声明:本文为博主原创文章,未经博主允许不得转载。

自己写的一个LINGO程序,欢迎指教

原文:http://blog.csdn.net/pingmin2014/article/details/48052427

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!