LINGO快速入门

上传人:猪** 文档编号:243040744 上传时间:2024-09-14 格式:PPT 页数:59 大小:287KB
返回 下载 相关 举报
LINGO快速入门_第1页
第1页 / 共59页
LINGO快速入门_第2页
第2页 / 共59页
LINGO快速入门_第3页
第3页 / 共59页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,LINGO,快速入门,在模型窗口中输入如下代码:,Model:,min=2*x1+3*x2;,x1+x2=350;,x1=100;,2*x1+x2=600;,end,注:非负约束可省略,例,1.1,如何在,LINGO,中求解如下的,LP,问题:,例,1.2,使用,LINGO,软件计算,:,6,个发点,8,个收点的最小费用运输问题。产销单位运价如下表,。,6,个发点,8,个收点的最小费用运输问题共有,48,个变量,,14,个约束条件。,使用,LINGO,软件,编制程序如下:,model: !6,发点,8,收点运输问题,;,sets:,warehouses/wh1.wh6/: capacity;,vendors/v1.v8/: demand;,links(warehouses,vendors,): cost, volume;,Endsets,min=,sum(links,: cost*volume); !,目标函数,;,for(vendors(J):sum(warehouses(I,):,volume(I,J,)=,demand(J,); !,需求约束,;,for(warehouses(I):sum(vendors(J,):,volume(I,J,)=,capacity(I,); !,产量约束,;,data: !,这里是数据,;,capacity=60 55 51 43 41 52;,demand=35 37 22 32 41 32 43 38;,cost=6 2 6 7 4 2 9 5,4 9 5 3 8 5 8 2,5 2 1 9 7 4 3 3,7 6 7 3 9 2 7 1,2 3 9 5 7 2 6 5,5 5 2 2 8 1 4 3;,enddata,end,模型的集部分,例,2.2,!,集部分,;,sets:,students:sex,age,;,endsets,!,数据部分,;,data:,students,sex,age,= John 1 16,Jill 0 14,Rose 0 17,Mike 1 13;,enddata,Variable Value,SEX( JOHN) 1.000000 SEX( JILL) 0.000000 SEX( ROSE) 0.000000,SEX( MIKE) 1.000000 AGE( JOHN) 16.00000,AGE( JILL) 14.00000 AGE( ROSE) 17.00000,AGE( MIKE) 13.00000,LINGO,会自动创建父集成员的所有组合作为派生集的成员,编号 成员,1 (A,M,1),2 (A,M,2),3 (A,N,1),4 (A,N,2),5 (B,M,1),6 (B,M,2),7 (B,N,1),8 (B,N,2),例,2.3,sets:,product/A B/;,machine/M N/;,week/1.2/;,allowed(product,machine,week):x,;,endsets,如果限制派生集的成员,使它成为父集成员所有组合构成的集合的一个子集,这样的派生集成为稀疏集,例,2.4,sets:,!,学生集:性别属性,sex,,,1,表示男性,,0,表示女性;年龄属性,age. ;,students/,John,Jill,Rose,Mike/:sex,age,;,!,男学生和女学生的联系集:友好程度属性,friend,,,0,,,1,之间的数。,;,linkmf(students,students)|sex(&1) #,eq,# 1 #and# sex(&2) #,eq,# 0: friend;,!,男学生和女学生的友好程度大于,0.5,的集,;,linkmf2(linkmf) | friend(&1,&2) #,ge,# 0.5 : x;,endsets,data:,sex,age,= 1 16,0 14,0 17,0 13;,friend = 0.3 0.5 0.6;,enddata,基本运算符,乘方,乘,除,加,减,LINGO,具有种逻辑运算符,:,#not#,否定该操作数的逻辑值,,not,是一个一元运算符,#,eq,#,若两个运算数相等,则为,true,;否则为,flase,#,ne,#,若两个运算符不相等,则为,true,;否则为,flase,#,gt,#,若左边的运算符严格大于右边的运算符,则为,true,;否则为,flase,#,ge,#,若左边的运算符大于或等于右边的运算符,则为,true,;否则为,flase,#,lt,#,若左边的运算符严格小于右边的运算符,则为,true,;否则为,flase,#le#,若左边的运算符小于或等于右边的运算符,则为,true,;否则为,flase,#and#,仅当两个参数都为,true,时,结果为,true,;否则为,flase,#or#,仅当两个参数都为,false,时,结果为,false,;否则为,true,LINGO,有三种关系运算符:“,=”,、“,=”,下面给出以上三类操作符的优先级:,高,#not# ,(取反),#eq# #ne# #gt# #ge# #lt# #le#,#and# #or#,低,=,LINGO,提供了大量的标准数学函数,abs(x,),返回,x,的绝对值,sin(x,),返回,x,的正弦值,,x,采用弧度制,cos(x,),返回,x,的余弦值,tan(x,),返回,x,的正切值,exp(x,),返回常数,e,的,x,次方,log(x,),返回,x,的自然对数,lgm(x,),返回,x,的,gamma,函数的自然对数,sign(x,),如果,x0,返回,1,;,=0,返回,0,;,x=0,时,返回不超过,x,的最大整数;当,x=,required(J,);,end,计算的部分结果为,Global optimal solution found at iteration: 0,Objective value: 22.00000,Variable Value Reduced Cost,REQUIRED( MON) 20.00000 0.000000,REQUIRED( TUE) 16.00000 0.000000,REQUIRED( WED) 13.00000 0.000000,REQUIRED( THU) 16.00000 0.000000,REQUIRED( FRI) 19.00000 0.000000,REQUIRED( SAT) 14.00000 0.000000,REQUIRED( SUN) 12.00000 0.000000,START( MON) 8.000000 0.000000,START( TUE) 2.000000 0.000000,START( WED) 0.000000 0.3333333,START( THU) 6.000000 0.000000,START( FRI) 3.000000 0.000000,START( SAT) 3.000000 0.000000,START( SUN) 0.000000,0.000000,从而解决方案是:每周最少需要,22,个职员,周一安排,8,人,周二安排,2,人,周三无需安排人,周四安排,6,人,周五和周六都安排,3,人,周日无需安排人。,辅助函数,1,if(logical_condition,true_result,false_result,),if,函数将评价一个逻辑表达式,logical_condition,,如果为真,返回,true_ result,,否则返回,false_result,。,例,4.18,求解最优化问题,其,LINGO,代码如下:,model:,min=,fx+fy,;,fx,=,if(x,#,gt,# 0, 100,0)+2*x;,fy,=,if(y,#,gt,# 0,60,0)+3*y;,x+y,=30;,end,2,warn(text,logical_condition,),如果逻辑条件,logical_condition,为真,则产生一个内容为,text,的信息框。,例,4.19,示例。,model:,x=1;,warn(x,是正数,x #gt# 0);,end,练习一,:,货运公司的运输问题,某地区有,8,个公司(如图一编号至),某天某货运公司要派车将各公司所需的三种原材料,A,B,C,从某港口(编号)分别运往各个公司。路线是唯一的双向道路(如图一)。货运公司现有一种载重,6,吨的运输车,,派车有固定成本,20,元,/,辆,从港口出车有固定成本为,10,元,/,车次(车辆每出动一次为一车次)。每辆车平均需要用,15,分钟的时间装车,到每个公司卸车时间平均为,10,分钟,运输车平均速度为,60,公里小时(不考虑塞车现象),每日工作不超过,8,小时。运输车载重运费,1.8,元,/,吨公里,运输车空载费用,0.4,元,/,公里。一个单位的原材料,A,B,C,分别毛重,4,吨、,3,吨、,1,吨,原材料不能拆分,为了安全,大小件同车时必须小件在上,大件在下。卸货时必须先卸小件,而且不允许卸下来的材料再装上车,另外必须要满足各公司当天的需求量(见图二)。,问题:,1.,货运公司派出运输车,6,辆,每辆车从港口出发(不定方向)后运输途中不允许掉头,应如何调度(每辆车的运载方案,运输成本)使得运费最小。,2.,每辆车在运输途中可随时掉头,若要使得成本最小,货运公司怎么安排车辆数?应如何调度?,3,(,1,)如果有载重量为,4,吨、,6,吨、,8,吨三种运输车,载重运费都是,1.8,元,/,吨公里,空载费用分别为,0.2,,,0.4,,,0.7,元,/,公里,其他费用一样,又如何安排车辆数和调度方案?(,2,)当各个公司间都有或者部分有道路直接相通时,分析运输调度的难度所在,给出你的解决问题的想法(可结合实际情况深入分析)。,图 一)唯一的运输路线图和里程数,各个公司对每种材料的需求量(单位,/,天,),公司,编号各种材料的需求量(单位,/,天),A B C,4 1 5,1 5 2,2 0 4,3 1 2,1 2 4,0 4 3,2 2 5,5 3 1,问题,1:,货运公司派出运输车,6,辆,每辆车从港口出发(不定方向)后运输途中不允许掉头,应如何调度(每辆车的运载方案,运输成本)使得运费最小。,模型,1,分析与假设:,1,),每辆车从港口出发(不定方向)后运输途中不允许掉头,即从港口出发必须沿图 一路程走一圈回到港口,由简单计算可知,走一圈路程为,60KM,,而港口到,路程为,29KM,,港口到,路程为,23KM,,考虑到必须使得运费最小,可以假设从港口到, 四个公司向左,走一圈回到港口,从港口到,四个公司则向右,走一圈回到港口;,(,用,W=(4,3,1),表示,),2,),一个单位的原材料,A,B,C,分别毛重,4,吨、,3,吨、,1,吨,,且原材料不能拆分;而货运公司又只有一种载重,6,吨的运输车,因些所有可能的装运方案有,14,种:,方案,A B C,1,),1 0 2,2,),0 2 0,3,),0 1 3,4,),0 0 6,5,),1 0 1,6,),1 0 0,7,),0 1 0,方案,A B C,8,),0 1 1,9,),0 1 2,10,),0 0 1,11,),0 0 2,12,),0 0 3,13,),0 0 4,14,),0 0 5,其中方案,1,)的含义是装一个单位的,A,,,0,个单位的,B,,,2,个单位的,C,;其他类似。,4,)先不考虑卸货时必须先卸小件的要求,也不考虑装车等待的情况,建立模型,1,如下:,3,)由简单计算可知:走一圈至少需,85,分钟,一部车一天最多可以走,5,次,根据需求量可知至少需出车,26,次;,分别表示货运公司对材料,A,B,C,的需求总数,;,分别表示货运公司对材料,A,B,C,的需求总数,;,其中,=(10,7,13) =(8,11,13),表示货运公司对材料,A,B,C,的需求量,;,表示采用第个方案从港口向左出发的次数;,表示采用第个方案从港口向右出发的次数;,表示采用第,i,个方案从港口向左出发运材料到第,j,个货运公司的次数;,表示采用第,i,个方案从港口向右出发运材料到第,j,个货运公司的次数;,表示采用第,i,个方案装运材料,A,B,C,的单位数,;,模型,1,符号说明:,表示从港口向左出发到货运公司的距离 表示从港口向右出发到货运公司的距离,LINGO,求解无解,建立模型,1,:,由于限制出车次数而导致无解,于是先不考虑出车次数的限制,对模型进行求解,然后再考虑局部优化使之满足出车次数的限制。,不考虑出车次数的限制,对模型进行求解,利用,LINGO,程序可得解为:出,32,次车,费用,4854.4+120+20,x1=0+0+2+0, y1=1+0+2+0,公司,1,:采用方案,5,调运,4,次,,x2=0+2+0+0 , y2=0+1+0+1,采用方案,8,调运,1,次;,y3=0+1+0+0,公司,2,:采用方案,2,调运,2,次,,x5=4+1+0+0,y5=0+0+0+1,采用方案,5,调运,1,次,x6=0+0+0+3,,,y6=0+0+0+4,采用方案,8,调运,1,次,y7=1+1+1+1,公司,3,:采用方案,1,调运,2,次,x8=1+1+0+0,,,y8=0+0+1+0,公司,4,:采用方案,6,调运,3,次,x9=0+0+0+1,,,y9=1+0+0+0,采用方案,9,调运,1,次,模型,1,的求解:,模型,1,的求解:,公司,1,:采用方案,5,调运,4,次,=4(A+C),采用方案,8,调运,1,次,=B+C,公司,2:2(2B)+(A+C)+(B+C),公司,3:2(A+2C),公司,4:3(A)+(B+2C),公司,5,:(A+2C)+(B)+(B+2C),公司,6,:(2B)+(B+3C)+(B),公司,7:2(A+2C)+(B)+(B+C),公司,8:(2B)+(A+C)+4(A)+(B),再考虑卸货时必须先卸小件的要求进行局部优化:,将公司,8,中方案,7,改为方案,2,多运一个,B,而取消公司,7,中的方案,7,由此节省的费用为,32.,将公司,6,中方案,7,改为方案,2,多运一个,B,而取消公司,5,中的方案,7,由此节省的费用为,28.,将公司,1,中方案,5,改,1,个为方案,1,多运一个,C,而方案,8,改为方案,2,多运一个,B,取消公司,2,中的方案,8,由此节省的费用为,30.8.,局部优化后只须,出车,29,次车,费用减少,60+20,总费用为,4854.4+120+20-32-28-30.8-20 =4883.6,派出运输车,6,辆,每辆出车,5,次即可,对应的调运方案如下:,公司,1,:,3(A+C)+(A+2C)+(,2,B),公司,2:2(2B)+(A+2C)+.,公司,3:2(A+2C),公司,4:3(A)+(B+2C),公司,5,:(A+2C)+.+(B+2C),公司,6,:(2B)+(B+3C)+(,2,B),公司,7:2(A+2C)+.+(B+C),公司,8:(2B)+(A+C)+4(A)+(,2,B),公司,1,:采用方案,5,调运,4,次,=4(A+C),采用方案,8,调运,1,次,=B+C,公司,2:2(2B)+(A+C)+(B+C),公司,3:2(A+2C),公司,4:3(A)+(B+2C),公司,5,:(A+2C)+(B)+(B+2C),公司,6,:(2B)+(B+3C)+(B),公司,7:2(A+2C)+(B)+(B+C),公司,8:(2B)+(A+C)+4(A)+(B),再考虑卸货时必须先卸小件的要求进行局部优化:,将公司,8,中方案,7,改为方案,2,多运一个,B,到公司,4,由此节省的费用为,22.,将公司,1,中方案,5,改,1,个为方案,1,多运一个,C,而方案,8,改为方案,2,多运一个,B,取消公司,2,中的方案,8,由此节省的费用为,30.8. .,局部优化后只须,出车,28,次车,费用减少,22+30.8+29.8+28+20,总费用为,4854.4+120+20-110.6-20 =4863.4,派出运输车,6,辆,每辆出车,5,次即可,对应的调运方案如下:,公司,1,:,3,(A+C)+(A+2C)+(,2,B),公司,2:2(2B)+(A+,2,C)+.,公司,3:2(A+2C),公司,4:,2,(A)+(A+2C)+.,公司,5,:(A+2C)+(2B)+.,公司,6,:(2B)+(,2,B)+.,公司,7:2(A+2C)+(,2,B)+(,6,C),公司,8:(2B)+(A+C)+4(A)+(,2,B),模型,1,的求解,:,-1,model:,sets:,comply/1.8/:d,dr;,demand/1.3/:a,b,w;,link1(comply,demand):c;,decide/1.14/:x,y;,link2(decide,demand):r;,link3(decide,comply):xx,yy;,endsets,data:,d=8 15 24 29 37 45 49 55;,dr,=52 45 36 31 23 15 11 5;,a=10 7 13;,b=8 11 13;w=4,3,1;,c=4 1 5,1 5 2,2 0 4,3 1 2,1 2 4,0 4 3,2 2 5,5 3 1;,r=1 0 2,0 2 0,0 1 3,0 0 6,1 0 1,1 0 0,0 1 0,0 1 1,0 1 2,0 0 1,0 0 2,0 0 3,0 0 4,0 0 5;,enddata,模型,1,的改进:,min=sum(comply(h):sum(decide(i):xx(i,h)*d(h)*sum(demand(j):r(i,j)*w(j)*1.8+sum(decide(i):xx(i,h),*(60-d(h)*0.4);)+10*,s+sum(comply(h):sum(decide(i):yy(i,h,)*,dr(h,)*,sum(demand(j):r(i,j,)*,w(j,)*1.8+sum(decide(i):yy(i,h)*(60-dr(h)*0.4););,for(decide(i):x(i,)=,sum(comply(j):xx(i,j,););,for(decide(i):y(i,)=,sum(comply(j):yy(i,j,););,for(link1(h,j):sum(decide(i):xx(i,h)*,r(i,j)+sum(decide(i):yy(i,h,)*,r(i,j,),c(h,j,););,s=,sum(decide(i):x(i)+y(i,);,sum(decide(i):x(i)+y(i,),a(j,););,for(demand(j):sum(decide(i):r(i,j,)*,y(i,),b(j,););,for(link1(h,j):sum(decide(i):xx(i,h)*,r(i,j,),c(h,j,););,s=,sum(decide(i):x(i)+y(i,);,!,sum(decide(i):x(i)+y(i,),a(j,););,for(demand(j):sum(decide(i):r(i,j,)*,y(i,),b(j,););,for(link1(h,j):sum(decide(i):xx(i,h)*,r(i,j,),c(h,j,););,s=,sum(decide(i):x(i)+y(i,);,for(comply(h):m(h,)=25+2*,d(h,);,tt,=,Sum(comply(h):sum(decide(i):xx(i,h,)*m(h)/480;,tt1=floor(tt)+if(tt-floor(tt)#GT#0,1,0);,!,sum(decide(i):x(i)+y(i,)30;,for(link3(i,j):gin(xx(i,j);,end,模型,2,程序,Global optimal solution found at iteration: 1,Objective value:,总费用,4532.000,Variable Value,调运车,辆数,TT1 4.000000,出车次数,S 32.00000,局部优化后只须,出车,29,次车,费用减少,41.2,总费用为,4532-41.2 =4490.8,派出运输车,4,辆,具体方案,(,略,),模型,2,的求解:,不论哪种情况,所有可能的装运方案有,23,种,;,其他同前面类似,问题,3-1:,如果有载重量为,4,吨、,6,吨、,8,吨三种运输车,载重运费都是,1.8,元,/,吨公里,空载费用分别为,0.2,,,0.4,,,0.7,元,/,公里,其他费用一样,又如何安排车辆数和调度方案?分两种情况讨论,(1),每辆车从港口出发(不定方向)后运输途中不允许掉头,;(2),每辆车从港口出发(不定方向)后运输途中可随时掉头,;,4,吨方案,A B C,1,),1 0 0,2,),0 1 0,3,),0 1 1,4,),0 0 1,5,),0 0 2,6,),0 0 3,7,),0 0 4,6,吨方案,A B C,8,),1 0 1,9,),1 0 2,10,),0 2 0,11,),0 1 2,12,),0 1 3,13,),0 0 5,14,),0 0 6,8,吨方案,A B C,15,),2 0 0,16,),1 1 0,17,),1 1 1,18,),1 0 3,19,),1 0 4,20,),0 2 1,21,),0 2 2,22) 0 0 7,23) 0 0 8,Global optimal solution found at iteration: 2,Objective value: 4602.400,Variable Value Reduced Cost,4,吨车出车次数,S4 5.000000 0.000000,6,吨车出车次数,S6 10.00000 0.000000,8,吨车出车次数,S8 10
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!