运用LINGO进行优化模型求解并与EXCEL进行连接Word文档格式.docx
《运用LINGO进行优化模型求解并与EXCEL进行连接Word文档格式.docx》由会员分享,可在线阅读,更多相关《运用LINGO进行优化模型求解并与EXCEL进行连接Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
model:
max=6*x1+2*x2+10*x3+8*x4;
5*x1+6*x2-4*x3-4*x4<
=20;
3*x1-3*x2+2*x3+8*x4<
=25;
4*x1-2*x2+x3+3*x4<
=10;
end
结果:
(2)
max=-5*x1+5*x2+13*x3;
-1*x1+x2+3*x3<
12*x1+4*x2+10*x3<
=90;
(3)
min=2*x+y;
7*x-5*y-23<
=0;
x+7*y-11<
4*x+y+10>
@free(x);
@free(y);
2.用LINGO求解如下整数规划问题
max=5*x1+10*x2+3*x3+6*x4;
x1+4*x2+5*x3+10*x4<
@gin(x);
end
min=2*x1+5*x2+3*x3+4*x4;
-4*x1+x2+x3+x4>
-2*x1+4*x2+2*x3+4*x4>
=1;
x1+x2-x3+x4>
@bin(x1);
@bin(x2);
@bin(x3);
@bin(x4);
max=x+y;
2*x-y-3>
0;
2*x+3*y-6<
3*x-5*y-15<
@gin(y);
习题五:
1、某厂生产A、B、C三种产品其所需劳动力、材料等有关数据见表格。
问题:
1)确定获利最大的产品生产计划;
2)产品A的利润在什么范围内变动时,上述最有计划不变?
3)如果劳动力数量不增,材料不足时可以从市场买,每单位0.4元,问该厂要不要购进原材料扩大生产,以购多少为宜?
资源
消耗定额
产品
A
B
C
可用量
(单位)
劳动力
6
3
5
45
材料
4
30
产品利润(元/件)
1
解:
设A,B,C的产量分别为x1,x2,x3,资源为a,消耗定额为b,利润为c。
从excel表格中读数据。
(1)程序:
sets:
ziyuan/a1,a2/:
a;
xiaohao/A,B,C/:
c,x;
links(ziyuan,xiaohao):
b;
endsets
data:
a=@ole('
Book1.xlsx'
'
aa'
);
c=@ole('
cc'
b=@ole('
bb'
@ole('
xxx'
)=x;
enddata
max=@sum(xiaohao(j):
c(j)*x(j));
@for(ziyuan(i):
@sum(xiaohao(j):
b(i,j)*x(j))<
=a(i));
(2)将结果进行灵敏度分析
即产品A的利润在2.4-4.8之间变动,上述最有计划不变。
(3)从第一问数据中,DUALPRICE给出这两个资源在最优解下,“资源”增加
1个单位时利润的增量:
劳动力增加一个单位利润增加0.2元,原料增加1个单位利润增加0.6元。
由第二问灵敏度分析可知CURRENTRHS的ALLOWABLEINCREASE和ALLOWABLEDECREASE给出了影子价格有意义条件下约束右端的限制范围,即原材料最多增加15个单位。
4、(混合泳接力队的选拔问题)某班准备从5名游泳队员中选择4人组成接力队,参加学校的4x100m混合泳接力比赛。
5名队员4种泳姿的百平米均成绩如表,问应该如何选拔队员组成接力队?
如果最近队员的丁的蛙泳成绩有较大退步,只有1′15″2;
而队员戊经过艰苦训练自由泳成绩有所进步,打到57″5,组成接力队的方案是否应该调整?
泳姿
队员
甲
乙
丙
丁
戊
蝶泳
1′06″8
57″2
1′18″
1′10″
1′07″4
仰泳
1′15″6
1′06″
1′07″8
1′14″2
1′11″
蛙泳
1′27″
1′06″4
1′24″6
1′09″6
1′23″8
自由泳
58″6
53″
59″4
1′02″4
设x(i,j)为第i种泳姿,第j个人,x(i,j)=1为第i种泳姿选第j个人,x(i,j)=0为第i种泳姿不选第j个人。
yongzi/a1..a4/;
duiyuan/b1..b5/;
links(yongzi,duiyuan):
T,x;
T=@ole('
Book2.xlsx'
tt'
xx'
min=@sum(links:
T*x);
@for(yongzi(i):
@sum(duiyuan(j):
x(i,j))=1);
@for(duiyuan(j):
@sum(yongzi(i):
x(i,j))<
=1);
即接力队选乙,丙,丁,甲分别参加蝶泳,仰泳,蛙泳,自由泳。
(2)将丁的蛙泳成绩改为75.2秒,戊的自由泳成绩改为57.5秒。
即接力队选乙,丙,丁,戊分别参加蝶泳,仰泳,蛙泳,自由泳。
选址问题
某公司有6个建筑工地要开工,工地位置(
)和水泥日用量
由表格给出,公司目前有两个临时存放水泥的场地(料场),分别位于A(5,1)和B(2,7),日存储量各20吨,请解决一下问题。
(1)假设从料场到工地之间均有直线道路项链,试制定日运输计划,即从A,B两个料场分别向各工地运送多少水泥,使总的吨千米数最小?
(2)为了进一步减少吨千米数,打算舍弃目前的两个临时料场,改建两个新料场,日存储量仍然为20吨,问建在何处为好?
工地
2
位置
X
1.25
8.75
0.5
5.75
7.25
Y
0.75
4.75
6.5
7.75
日用量
7
11
设料场为lc,工地为gd。
model:
lc/A,B/:
x,y;
gd/1..6/:
a,b,d;
links(lc,gd):
c;
x=5,2;
y=1,7;
a,b,d=@ole('
Book3.xlsx'
dd'
)=c;
min=@sum(links(i,j):
c(i,j)*@sqrt((x(i)-a(i))^2+(y(i)-b(j))^2));
@for(lc(i):
@sum(gd(j):
c(i,j))<
=20);
@for(gd(j):
@sum(lc(i):
c(i,j))=d(j));
(2)程序:
x,y,e;
init:
endinit
e=20,20;
=e(i));
四、实验心得
通过这次实验,我学会了lingo软件的基本操作对于一个较复杂的数学模型能够狠方便的求解。
做题过程中也常出现问题,比如lingo与excel文件之间的数据传递,调用数据是名称要与定义数据块名称一致,要使excel表格处于打开状态。