【精品】lindo_lingo与优化模型(可编辑.ppt
《【精品】lindo_lingo与优化模型(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】lindo_lingo与优化模型(可编辑.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LINDO_LINGO与优化模型例例1加工奶制品的生产计划加工奶制品的生产计划1桶牛奶 3公斤A1 12小时 8小时 4公斤A2 或获利24元/公斤 获利16元/公斤 50桶牛奶桶牛奶时间时间480小时小时 至多加工至多加工100公斤公斤A1制订生产计划,使每天获利最大制订生产计划,使每天获利最大 35元可买到元可买到1桶牛奶,买吗?若买,每天最多买多少桶牛奶,买吗?若买,每天最多买多少?可聘用临时工人,付出的工资最多是每小时几元可聘用临时工人,付出的工资最多是每小时几元?A1的获利增加到的获利增加到30元元/公斤,应否改变生产计划?公斤,应否改变生产计划?每天:每天:1桶牛奶 3公斤A1 1
2、2小时 8小时 4公斤A2 或获利24元/公斤 获利16元/公斤 x1桶牛奶生产桶牛奶生产A1x2桶牛奶生产桶牛奶生产A2获利获利243x1获利获利164 x2原料供应原料供应 劳动时间劳动时间 加工能力加工能力 决策变量决策变量 目标函数目标函数 每天获利每天获利约束条件约束条件非负约束非负约束 线性线性规划规划模型模型(LP)时间时间480小时小时 至多加工至多加工100公斤公斤A150桶牛奶桶牛奶每天每天模型求解模型求解 max72x1+64x2st2)x1+x2503)12x1+8x24804)3x1”(或(或“=”(或(或“=”)功能相同)功能相同2.变量与系数间可有空格变量与系数间
3、可有空格(甚至回车甚至回车),但无运算符但无运算符3.变量名以字母开头,不能超过变量名以字母开头,不能超过8个字符个字符4.变量名不区分大小写(包括变量名不区分大小写(包括LINDO中的关键字)中的关键字)5.目标函数所在行是第一行,第二行起为约束条件目标函数所在行是第一行,第二行起为约束条件6.行号行号(行名行名)自动产生或人为定义。行名以自动产生或人为定义。行名以“)”结束结束7.行中注有行中注有“!”符号的后面部分为注释。如符号的后面部分为注释。如:8.!ItsComment.8.在模型的任何地方都可以用在模型的任何地方都可以用“TITLE”对模型命名对模型命名(最多(最多72个字符),
4、如:个字符),如:TITLEThisModelisonlyanExample9.变量不能出现在一个约束条件的右端变量不能出现在一个约束条件的右端10.表达式中不接受括号表达式中不接受括号“()”和逗号和逗号“,”等任何符号等任何符号,例例:400(X1+X2)需写为需写为400X1+400X211.表达式应化简,如表达式应化简,如2X1+3X2-4X1应写成应写成-2X1+3X212.缺省假定所有变量非负;可在模型的缺省假定所有变量非负;可在模型的“END”语句语句后用后用“FREEname”将变量将变量name的非负假定取消的非负假定取消13.可在可在“END”后用后用“SUB”或或“SLB
5、”设定变量上下界设定变量上下界14.例如:例如:“subx110”的作用等价于的作用等价于“x1=10”但用但用“SUB”和和“SLB”表示的上下界约束不计入模型表示的上下界约束不计入模型的约束,也不能给出其松紧判断和敏感性分析。的约束,也不能给出其松紧判断和敏感性分析。14.“END”后对后对0-1变量说明:变量说明:INTn或或INTname15.“END”后对整数变量说明:后对整数变量说明:GINn或或GINname使用使用LINDOLINDO的一些注意事项的一些注意事项LINGOLINGO求解举例求解举例 例:选址问题例:选址问题某公司有某公司有6个建筑工地,位置坐标为个建筑工地,位置
6、坐标为(ai,bi)(单位:公里单位:公里),水泥日用量水泥日用量di(单位:吨)单位:吨)假设:假设:料场料场和工地之间和工地之间有直线道路有直线道路用例中数据计算,最优解为总吨公里数为总吨公里数为总吨公里数为总吨公里数为136.2136.2线性规划模型线性规划模型决策变量:决策变量:ci j(料场料场j到到工地工地i的的运量)运量)12维维选址问题:选址问题:NLPNLP2)改建两个新料场,需要确定新料场位置)改建两个新料场,需要确定新料场位置(xj,yj)和和运量运量cij,在其它条件不变下使总吨公里数最小。,在其它条件不变下使总吨公里数最小。决策变量:决策变量:ci j,(xj,yj)
7、16维维非线性规划模型非线性规划模型LINGO模型的构成:模型的构成:4个段个段集合段(集合段(SETSENDSETS)数据段(数据段(DATAENDDATA)初始段(初始段(INITENDINIT)目标与目标与约束段约束段局部最优:局部最优:89.8835(吨公里吨公里)LP:移到数据段:移到数据段边界ailco公司需要决定下四个季度的帆船生产公司需要决定下四个季度的帆船生产量下四个季度的帆船需求量分别为量下四个季度的帆船需求量分别为40、60、75、25条,这些需求必须满足。每个条,这些需求必须满足。每个季度正常的生产能力是季度正常的生产能力是40条帆船,每条帆条帆船,每条帆船的生产费用为
8、船的生产费用为400美元。如果加班生产,美元。如果加班生产,每条船的生产费用为每条船的生产费用为450美元。每个季度末,美元。每个季度末,每条船的库存费用为每条船的库存费用为20美元。假定生产提美元。假定生产提前期为前期为0,初始库存为,初始库存为10条船,如何安排生条船,如何安排生产可使总费用最小?产可使总费用最小?ailco公司的生产计划公司的生产计划用c(i)(已知),x(i),y(i),w(i)分别表示第i季度的需求量、正常生产量、加班生产量、库存量,数学模型如下:mini=1,2,3,4400*x(i)+450*y(i)+20*w(i)STx(i)40,i=1,2,3,4w(i)=w
9、(i-1)+x(i)+y(i)-c(i),i=2,3,4W(1)=10+x(1)+y(1)-c(1)其中c(i)=40,60,75,25ailco公司生产计划的数学模型公司生产计划的数学模型Sailco公司生产计划的LINGO程序model:sets:quarters/1,2,3,4/:c,x,y,w;endsetsdata:c=40,60,75,25;enddatamin=sum(quarters:400*x+450*y+20*w);for(quarters(i):x(i)40);for(quarters(i)|i#GT#1:w(i)=w(i-1)+x(i)+y(i)-c(i););w(1)
10、=10+x(1)+y(1)-c(1);end某班某班8名同学准备分成名同学准备分成4个调查队个调查队(每队两人每队两人)前前4个地区进行个地区进行社会调查社会调查.假设这假设这8名同学两两之间给队的效率如下名同学两两之间给队的效率如下:学生学生S1S2S3S4S5S6S7S8S19342156S2173521S344292S41552S5876S623S74S8如何组队可使总效率最高?如何组队可使总效率最高?匹配问题匹配问题用Match(Si,Sj)=1表示同学Si和Sj组成一队(ij),Match(Si,Sj)=0表示同学Si和Sj不组队(ij)用enefit(Si,Sj)表示同学Si和Sj
11、组成一队时的效率(已知)(ij)minijenefit(Si,Sj)*Match(Si,Sj)STj=i或k=i Match(Sj,Sk)=1,i=1,2,3,4,8,其中Match(Sj,Sk)0,1匹配问题的数学模型匹配问题的数学模型匹配问题的匹配问题的LINGO程序model:sets:students/s1.s8/;Pairs(students,students)|&2#GT#&1:BENEFIT,MATCHendsetsdata:BENEFIT=9 3 4 2 1 5 6 1 7 3 5 2 1 4 4 2 9 2 1 5 5 2 8 7 6 2 3 4;enddataobjecti
12、ve MAX=SUM(PAIRS(I,J):BENEFIT(I,J)*MATCH(I,J);FOR(STUDENTS(I):constraints SUM(PAIRS(J,K)|J#EQ#I#OR#K#EQ#I:MATCH(J,K)=1);FOR(PAIRS(I,J):BIN(MATCH(I,J);end集合的类型集合的类型集合集合派生集合派生集合基本集合基本集合稀疏集合稀疏集合稠密集合稠密集合元素列表法元素列表法元素过滤法元素过滤法直接列举法直接列举法隐式列举法隐式列举法setname/member_list/:attribute_list;setname(parent_set_list)/
13、member_list/:attribute_list;SETS:CITIES/A1,A2,A3,B1,B2/;ROADS(CITIES,CITIES)/A1,B1 A1,B2 A2,B1 A3,B2/:D;ENDSETSSETS:STUDENTS/S1.S8/;PAIRS(STUDENTS,STUDENTS)|&2#GT#&1:BENEFIT,MATCH;ENDSETS集合元素的集合元素的隐式列举隐式列举类类型型隐隐式列式列举举格式格式示例示例示例集合的元素示例集合的元素数字型数字型 1.n1.51,2,3,4,5字符字符-数字型数字型stringM.stringNCar101.car208
14、 Car101,car102,car208星期型星期型 dayM.dayNMON.FRIMON,TUE,WED,THU,FRI月份型月份型 monthM.monthN OCT.JANOCT,NOV,DEC,JAN年份年份-月份型月份型monthYearM.monthYearNOCT2001.JAN2002OCT2001,NOV2001,DEC2001,JAN2002运算符的优先级运算符的优先级 优优先先级级运算符运算符最高最高#NOT#(负负号)号)*/+(减法)(减法)#EQ#NE#GT#GE#LT#LE#AND#OR#最低最低(=)三类运算符:三类运算符:算术运算符算术运算符逻辑运算符逻辑
15、运算符关系运算符关系运算符集合循环函数集合循环函数四个集合循环函数:四个集合循环函数:FOR、SUM、MAX、MINfunction(setname (set_index_list)|condition:expression_list);objective MAX=SUM(PAIRS(I,J):BENEFIT(I,J)*MATCH(I,J);FOR(STUDENTS(I):constraints SUM(PAIRS(J,K)|J#EQ#I#OR#K#EQ#I:MATCH(J,K)=1);FOR(PAIRS(I,J):BIN(MATCH(I,J);MAXB=MAX(PAIRS(I,J):BENE
16、FIT(I,J);MINB=MIN(PAIRS(I,J):BENEFIT(I,J);Example:状态窗口状态窗口Solver Type:B-and-BGlobal MultistartModel Class:LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP State:Global OptimumLocal OptimumFeasibleInfeasibleUnboundedInterruptedUndetermined7 7个选项卡个选项卡(可设置可设置80-9080-90个控制参数个控制参数)ABS(X)返回的绝对值COS(X)返回的余弦值SIN(X)返回的
17、正弦值TAN(X)返回的正切值EXP(X)返回e的值FLOOR(X)向靠近的方向取整LOG(X)自然对数值MOD(X,Y)返回X除以Y的余数POW(X,Y)返回XY的值SIGN(X)符号函数(X=0为+1)SMAX(list)返回一列数list的最大值SMIN(list)返回一列数list的最小值SQR(X)返回X*X的值SQRT(X)返回X的正平方根的值基本的数学函数基本的数学函数FOR(集合元素的循环函数)SUM(集合属性的求和函数)MAX(集合属性的最大值函数)MIN(集合属性的最小值函数)PROD(集合属性的乘积函数)IF(logical_condition,true_result,f
18、alse_result)例IF(X#LT#100,20,15)当X100时为20,否则为15集合循环函数集合循环函数变量定界函数变量定界函数BND(L,X,U)限制L=X NEED(I);CON2 SHIP(I)NEED(I);CON2 SHIP(I)=50;x1*r21+x2*r22+x3*r23=10;x1*r31+x2*r32+x3*r33=20;x1*r41+x2*r42+x3*r43=15;4*r11+5*r21+6*r31+8*r41=19;4*r12+5*r22+6*r32+8*r42=19;4*r13+5*r23+6*r33+8*r43=16;4*r12+5*r22+6*r32
19、+8*r42=16;4*r13+5*r23+6*r33+8*r43=16;!x1+x2+x3=26;!x1+x2+x3=x2;!x2=x3;gin(x1);gin(x2);gin(x3);gin(r11);gin(r12);gin(r13);gin(r21);gin(r22);gin(r23);gin(r31);gin(r32);gin(r33);gin(r41);gin(r42);gin(r43);endmodel:SETS:NEEDS/1.4/:LENGTH,NUM;!定义基本集合NEEDS及其属性LENGTH,NUM;CUTS/1.3/:X;!定义基本集合CUTS及其属性X;PATTER
20、NS(NEEDS,CUTS):R;!定义派生集合PATTERNS(是一个稠密集合)及其属性R;ENDSETSDATA:LENGTH=4 5 6 8;NUM=50 10 20 15;CAPACITY=19;ENDDATAmin=SUM(CUTS(I):X(I);!目标函数;FOR(NEEDS(I):SUM(CUTS(J):X(J)*R(I,J)NUM(I);!满足需求的约束;FOR(CUTS(J):SUM(NEEDS(I):LENGTH(I)*R(I,J)CAPACITY -MIN(NEEDS(I):LENGTH(I);!合理切割模式的约束;SUM(CUTS(I):X(I)26;SUM(CUTS
21、(I):X(I)X(I+1);!人为增加的约束;FOR(CUTS(J):GIN(X(J);FOR(PATTERNS(I,J):GIN(R(I,J);endLINGOLINGO求解整数非线性规划模型求解整数非线性规划模型Localoptimalsolutionfoundatiteration:12211Objectivevalue:28.00000VariableValueReducedCostX110.000000.000000X210.000002.000000X38.0000001.000000R113.0000000.000000R122.0000000.000000R130.00000
22、00.000000R210.0000000.000000R221.0000000.000000R230.0000000.000000R311.0000000.000000R321.0000000.000000R330.0000000.000000R410.0000000.000000R420.0000000.000000R432.0000000.000000模式模式1:每根原料钢管切割成:每根原料钢管切割成3根根4米和米和1根根6米钢管,共米钢管,共10根;根;模式模式2:每根原料钢管切割成:每根原料钢管切割成2根根4米、米、1根根5米和米和1根根6米钢管,米钢管,共共10根;根;模式模式3:
23、每根原料钢管切割成:每根原料钢管切割成2根根8米钢管,共米钢管,共8根。根。原料钢管总根数为原料钢管总根数为28根。根。演示演示cut02a.lg4;cut02b.lg4;露天矿里铲位已分成矿石和岩石露天矿里铲位已分成矿石和岩石:平均铁含量不低于平均铁含量不低于25%的为矿石,否则为岩石。每个铲位的矿石、岩石数的为矿石,否则为岩石。每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。量,以及矿石的平均铁含量(称为品位)都是已知的。每个铲位至多安置一台电铲,电铲平均装车时间每个铲位至多安置一台电铲,电铲平均装车时间5分钟分钟卡车在等待时所耗费的能量也是相当可观的,原则上在卡车在
24、等待时所耗费的能量也是相当可观的,原则上在安排时安排时不应发生卡车等待不应发生卡车等待的情况。的情况。露天矿生产的车辆安排露天矿生产的车辆安排(CUMCM-2003B)矿石卸点需要的铁含量要求都为矿石卸点需要的铁含量要求都为29.5%1%(品位限制)品位限制),搭配量在一个班次(,搭配量在一个班次(8小时)内满足品位限制即可。小时)内满足品位限制即可。卸点在一个班次内不变。卡车载重量为卸点在一个班次内不变。卡车载重量为154吨,平均时吨,平均时速速28km,平均卸车时间为平均卸车时间为3分钟。分钟。问题:出动几台电铲,分别在哪些铲位上;出动几辆问题:出动几台电铲,分别在哪些铲位上;出动几辆卡车
25、,分别在哪些路线上各运输多少次卡车,分别在哪些路线上各运输多少次?平面示意图问题数据问题数据 距离铲位1铲位2铲位3铲位4铲位5铲位6铲位7铲位8铲位9铲位10矿石漏5.265.194.214.002.952.742.461.900.641.27倒装1.900.991.901.131.272.251.482.043.093.51岩场5.895.615.614.563.513.652.462.461.060.57岩石漏0.641.761.271.832.742.604.213.725.056.10倒装4.423.863.723.162.252.810.781.621.270.50铲位1铲位2铲位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 lindo_lingo 优化 模型 编辑
限制150内