当前位置:文档之家› 运用LINGO进行优化模型求解,并与EXCEL进行连接

运用LINGO进行优化模型求解,并与EXCEL进行连接

实验报告(二)课程名称数学实验实验项目运用LINGO进行优化模型求解,并与EXCEL进行连接实验环境PC机、LINGO班级/学号/姓名指导教师实验日期2013-11-5成绩一、实验名称:运用LINGO 进行优化模型求解,并与EXCEL 进行连接二、实验目的:1、掌握Lingo 求解线性规划模型的方法及回看求解结果报告;2、掌握Lingo 进行灵敏度分析的方法;3、掌握Lingo 求解整数规划和0-1规划的方法;4、掌握Lingo 中集合的定义方法;5、掌握Lingo 与Excel 之间的链接方法;三、实验内容:习题四:1.用LINGO 求解下列线性规划问题(1)⎪⎪⎩⎪⎪⎨⎧=≥≤++≤++≤++++=.4,...,1,0x 103x x 2x -4x 258x 2x 3x -3x 204x -4x -6x 5x ..8x 10x 2x 6x z max i 4321432143214321i t s 程序: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)⎪⎩⎪⎨⎧≥≤++≤++++=0,,x 9010x 4x 12x 203x x x -s.t.13x 5x -5x z max 321321321321x x 程序:model :max =-5*x1+5*x2+13*x3; -1*x1+x2+3*x3<=20; 12*x1+4*x2+10*x3<=90; end结果:(3)⎪⎩⎪⎨⎧>=++<=+<=+=010y 4x 011-7y x 023-5y -7x ..y 2x z min t s程序:model : min =2*x+y; 7*x-5*y-23<=0; x+7*y-11<=0; 4*x+y+10>=0; @free (x); @free (y); end结果:2.用LINGO 求解如下整数规划问题(1)⎩⎨⎧≤++++++=均是整数432143214321,,,x 2010x 5x 4x x 6x 3x 10x 5x z max x x x程序:model :max =5*x1+10*x2+3*x3+6*x4; x1+4*x2+5*x3+10*x4<=20; @gin (x); end结果:(2)⎪⎪⎩⎪⎪⎨⎧=≥++≥+++≥++++++=10,,,x 1x x -x x 14x 2x 4x 2x -0x x x 4x -4x 3x 5x 2x z min 43214321432143214321或x x x程序:min =2*x1+5*x2+3*x3+4*x4; -4*x1+x2+x3+x4>=0; -2*x1+4*x2+2*x3+4*x4>=1; x1+x2-x3+x4>=1; @bin (x1); @bin (x2); @bin (x3); @bin (x4); end结果:(3)⎪⎪⎩⎪⎪⎨⎧<<+>+=为整数y x,015-5y -3x 06-3y 2x 03-y -2x y x z max 程序:max =x+y; 2*x-y-3>0; 2*x+3*y-6<0; 3*x-5*y-15<0;@gin(x);@gin(y);end结果:习题五:1、某厂生产A、B、C三种产品其所需劳动力、材料等有关数据见表格。

问题:1)确定获利最大的产品生产计划;2)产品A的利润在什么范围内变动时,上述最有计划不变?3)如果劳动力数量不增,材料不足时可以从市场买,每单位0.4元,问该厂要不要购进原材料扩大生产,以购多少为宜?excel表格中读数据。

(1)程序:model:sets:ziyuan/a1,a2/:a;xiaohao/A,B,C/:c,x;links(ziyuan,xiaohao):b;endsetsdata:a=@ole('Book1.xlsx','aa');c=@ole('Book1.xlsx','cc');b=@ole('Book1.xlsx','bb');@ole('Book1.xlsx','xxx')=x;enddatamax=@sum(xiaohao(j):c(j)*x(j));@for(ziyuan(i):@sum(xiaohao(j):b(i,j)*x(j))<=a(i)); end结果:(2)将结果进行灵敏度分析即产品A的利润在2.4-4.8之间变动,上述最有计划不变。

(3)从第一问数据中,DUAL PRICE给出这两个资源在最优解下,“资源”增加1个单位时利润的增量:劳动力增加一个单位利润增加0.2元,原料增加1个单位利润增加0.6元。

由第二问灵敏度分析可知CURRENT RHS的ALLOWABLE INCREASE 和ALLOWABLE DECREASE给出了影子价格有意义条件下约束右端的限制范围,即原材料最多增加15个单位。

4、(混合泳接力队的选拔问题)某班准备从5名游泳队员中选择4人组成接力队,参加学校的4x100m混合泳接力比赛。

5名队员4种泳姿的百平米均成绩如表,问应该如何选拔队员组成接力队?如果最近队员的丁的蛙泳成绩有较大退步,只有1′15″2;而队员戊经过艰解:设x(i,j)为第i种泳姿,第j个人,x(i,j)=1为第i种泳姿选第j个人,x(i,j)=0为第i种泳姿不选第j个人。

从excel表格中读数据。

(1)程序:model:sets:yongzi/a1..a4/;duiyuan/b1..b5/;links(yongzi,duiyuan):T,x;endsetsdata:T=@ole('Book2.xlsx','tt');@ole('Book2.xlsx','xx')=x;enddatamin=@sum(links:T*x);@for(yongzi(i):@sum(duiyuan(j):x(i,j))=1);@for(duiyuan(j):@sum(yongzi(i):x(i,j))<=1);end结果:即接力队选乙,丙,丁,甲分别参加蝶泳,仰泳,蛙泳,自由泳。

(2)将丁的蛙泳成绩改为75.2秒,戊的自由泳成绩改为57.5秒。

结果:即接力队选乙,丙,丁,戊分别参加蝶泳,仰泳,蛙泳,自由泳。

选址问题某公司有6个建筑工地要开工,工地位置(j i y x ,)和水泥日用量i d 由表格给出,公司目前有两个临时存放水泥的场地(料场),分别位于A (5,1)和B (2,7),日存储量各20吨,请解决一下问题。

(1)假设从料场到工地之间均有直线道路项链,试制定日运输计划,即从A,B 两个料场分别向各工地运送多少水泥,使总的吨千米数最小?(2)为了进一步减少吨千米数,打算舍弃目前的两个临时料场,改建两个新料(1)程序:model : sets :lc/A,B/:x,y; gd/1..6/:a,b,d; links(lc,gd):c; endsetsdata : x=5,2; y=1,7;a,b,d=@ole ('Book3.xlsx','aa','bb','dd'); @ole ('Book3.xlsx','cc')=c; enddatamin =@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)); end结果:(2)程序:model :sets :lc/A,B/:x,y,e;gd/1..6/:a,b,d;links(lc,gd):c;endsetsinit:x=5,2;y=1,7;endinitdata:a,b,d=@ole('Book3.xlsx','aa','bb','dd');e=20,20;@ole('Book3.xlsx','cc')=c;enddatamin=@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))<=e(i));@for(gd(j):@sum(lc(i):c(i,j))=d(j));end结果:四、实验心得通过这次实验,我学会了lingo软件的基本操作对于一个较复杂的数学模型能够狠方便的求解。

做题过程中也常出现问题,比如lingo与excel文件之间的数据传递,调用数据是名称要与定义数据块名称一致,要使excel表格处于打开状态。

相关主题