LINGO快速入门.ppt
《LINGO快速入门.ppt》由会员分享,可在线阅读,更多相关《LINGO快速入门.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、例例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=su
2、m(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
3、 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3;enddataend 模型的集部分模型的集部分 例例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.000000SEX( MIKE) 1.000000 AGE( JOHN) 16.00000 AGE( J
4、ILL) 14.00000 AGE( ROSE) 17.00000AGE( MIKE) 13.00000LINGO会自动创建父集成员的所有组合作为派生集的成员 编号 成员 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如果限制派生集的成员,使它成为父集成员所有组合构成的集合如果限制派生集的成员,使它成为父
5、集成员所有组合构成的集合的一个子集,这样的派生集成为稀疏集的一个子集,这样的派生集成为稀疏集 例例2.4sets: !学生集:性别属性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#
6、0.5 : x;endsetsdata: 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 ;否则为
7、 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
8、 的绝对值 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
9、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 STAR
10、T( 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人,周日无需安排人。辅助函数辅助函数 1if(logical_condition,true_result,false_result) if函数将评价一个逻辑表达式logical_conditi
11、on,如果为真,返回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; end0,300,20,360)(0,20,2100)(. .)()(minyxyxyyyyygxxxxxft sygxf 2warn(text,logical_condition) 如果逻辑条件logical_condition为真,则产生一个内容为text的信息框。 例例4.19 示例。 model
12、: x=1; warn(x是正数,x #gt# 0); end练习一:货运公司的运输问题货运公司的运输问题 某地区有某地区有8个公司(如图一编号个公司(如图一编号至至),某天某货运公司要派车将各),某天某货运公司要派车将各公司所需的三种原材料公司所需的三种原材料A,B,C从某港从某港口(编号口(编号)分别运往各个公司。)分别运往各个公司。路线是唯一的双向道路(如图一)。路线是唯一的双向道路(如图一)。货运公司现有一种载重货运公司现有一种载重 6吨的运输车,吨的运输车, 派车有固定成本派车有固定成本20元元/辆,从港口出车有固定成辆,从港口出车有固定成本为本为10元元/车次(车辆每出动一次为一车
13、次)。车次(车辆每出动一次为一车次)。每辆车平均需要用每辆车平均需要用15分钟的时间装车,到每个公分钟的时间装车,到每个公司卸车时间平均为司卸车时间平均为10分钟,运输车平均速度为分钟,运输车平均速度为60公里小时(不考虑塞车现象),每日工作不公里小时(不考虑塞车现象),每日工作不超过超过8小时。运输车载重运费小时。运输车载重运费1.8元元/吨公里,运吨公里,运输车空载费用输车空载费用0.4元元/公里。一个单位的原材料公里。一个单位的原材料A,B,C分别毛重分别毛重4吨、吨、3吨、吨、1吨,原材料不能拆吨,原材料不能拆分,为了安全,大小件同车时必须小件在上,大分,为了安全,大小件同车时必须小件
14、在上,大件在下。卸货时必须先卸小件,而且不允许卸下件在下。卸货时必须先卸小件,而且不允许卸下来的材料再装上车,另外必须要满足各公司当天来的材料再装上车,另外必须要满足各公司当天的需求量(见图二)。的需求量(见图二)。 问题:1.货运公司派出运输车6辆,每辆车从港口出发(不定方向)后运输途中不允许掉头,应如何调度(每辆车的运载方案,运输成本)使得运费最小。2. 每辆车在运输途中可随时掉头,若要使得成本最小,货运公司怎么安排车辆数?应如何调度?3(1)如果有载重量为4吨、6吨、8吨三种运输车,载重运费都是1.8元/吨公里,空载费用分别为0.2,0.4,0.7元/公里,其他费用一样,又如何安排车辆数
15、和调度方案?(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辆,每辆车从港口出发(不定方向)辆,每辆车从港口出发(不定方向)后运输途中不允许掉头,应如何调度(每
16、辆车的运载方案,运输成后运输途中不允许掉头,应如何调度(每辆车的运载方案,运输成本)使得运费最小。本)使得运费最小。模型模型1分析与假设:分析与假设:1)每辆车从港口出发(不定方向)后运输途中不允许掉头,每辆车从港口出发(不定方向)后运输途中不允许掉头,即从港口出发必须沿图即从港口出发必须沿图 一路程走一圈回到港口,由简单计算可知,走一圈路程为一路程走一圈回到港口,由简单计算可知,走一圈路程为60KM,而港口到,而港口到路程为路程为29KM,港口到,港口到路程为路程为23KM,考虑到必须使得运费最小,考虑到必须使得运费最小,可以假设从港口到可以假设从港口到 四个公司向左四个公司向左走一圈回到港
17、口,从港口到走一圈回到港口,从港口到四四个公司则向右个公司则向右走一圈回到港口;走一圈回到港口; ( 用用W=(4,3,1)表示表示)2)一个单位的原材料一个单位的原材料A,B,C分别毛重分别毛重4吨、吨、3吨、吨、1吨吨 ,且原材料不能拆分;,且原材料不能拆分;而货运公司又只有一种载重而货运公司又只有一种载重 6吨的运输车,因些所有可能的装运方案有吨的运输车,因些所有可能的装运方案有14种:种:方案 A B C1) 1 0 22) 0 2 0 3) 0 1 34) 0 0 65) 1 0 16) 1 0 07) 0 1 0方案 A B C8) 0 1 19) 0 1 210) 0 0 111
18、) 0 0 212) 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,
19、C的需求总数的需求总数; 分别表示货运公司分别表示货运公司对材料对材料A,B,C的需求总数的需求总数; 其中其中 =(10,7,13) =(8,11,13) 表示货运公司表示货运公司对材料对材料A,B,C的需求量的需求量; 表示采用第个方案从港口向左出发的次数;表示采用第个方案从港口向左出发的次数; 表示采用第个方案从港口向右出发的次数;表示采用第个方案从港口向右出发的次数; 表示采用第表示采用第i个方案从港口向左出发运材个方案从港口向左出发运材料到第料到第j个货运公司的次数;个货运公司的次数; 表示采用第表示采用第i个方案从港口向右出发运材个方案从港口向右出发运材料到第料到第j个货运公司的次
20、数;个货运公司的次数; 表示采用第表示采用第i个方案装运材料个方案装运材料A,B,C的单的单位数位数 ;模型模型1符号说明:符号说明: 表示从港口向左出发到货运公司表示从港口向左出发到货运公司的距离的距离 表示从港口向右出发到货运公司表示从港口向右出发到货运公司的距离的距离 ) 3 , 2 , 1( iaiia)3 , 2 , 1( ibiib)3 ,2, 1, 8.1(jicij)141(ixi)141(iyi)41141(jixxij,)85141(jixxij,)3 ,2, 1141(jirij,) 4 , 3 , 2 , 1( idi)8 , 7 , 6 , 5( idi LINGO求
21、解无解建立模型建立模型1:非负整数) 8 ,2 , 1,14,2 , 1)(,(30)()(263 , 2 , 1; 8 ,2 , 1),(),(),(3 , 2 , 1)()(),(3 , 2 , 1)()(),(14,2 , 1),()(14,2 , 1),()(120)()(10)(60)(,(4 . 0) )(),( )(),(8 . 1 (min14114114114185411413181141jijixxiyixjhjhcjirhixxjjbiyjirjjaixjirijixxiyijixxixstiyixhdhixxjwjirhdhixxziiiijjijhi 由于限制出车次数
22、而导致无解,于是先不考虑出车次数的限制,对模型进行求解,然后再考虑局部优化使之满足出车次数的限制。 不考虑出车次数的限制,对模型进行求解,利用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 采用方案采用
23、方案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+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LINGO 快速 入门
限制150内