《理学LINGO在数学建模中应用.pptx》由会员分享,可在线阅读,更多相关《理学LINGO在数学建模中应用.pptx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、LINGO在数学建模中的应用 LINGO的主要功能和特点1.求解线性规划和非线性规划问题2.模型输入简练直观3.运行速度快 计算能力强4.内置建模语言 提供内部函数 较少语句直观描述大规模优化模型5.引入集合 容易建模6.数据交换方便(与EXCEL和数据库)第1页/共56页需要掌握的几个重要方面需要掌握的几个重要方面掌握集合掌握集合(SETS)的应用;的应用;正确阅读求解报告;正确阅读求解报告;正确理解求解状态窗口;正确理解求解状态窗口;学会设置基本的求解选项学会设置基本的求解选项(OPTIONS);掌握与外部文件的基本接口方法掌握与外部文件的基本接口方法第2页/共56页LINGO在数学建模中
2、的应用LINGO的基本用法模型窗口”LINGO Model-LINGO1”用于输入模型可用基本类似数学公式的形式输入小模型LINGO的语法规则1.最大值MAX=,最小值MIN=2.语句必须以分号”;”结束 每行可多个语句 语句可跨行3.变量名由字母、数字和下划线组成 以字母开头 长度 不超32个字符 不区分大小写4.默认决策变量非负 其他要求可做说明5.模型以MODEL:开头,以END结束第3页/共56页例 工厂有两条生产线,分别生产M和P两种型号的产品,利润分别为200元/个和300元/个,生产能力分别为100和120,生产一个产品分别需1个和2个劳动日,工厂每天能提供160个劳动日。假设原
3、材料不受限制,如何安排生产计划,利润最大。设生产计划为生产x1个M和x2个P,数学模型为第4页/共56页LINGO求解1.输入模型 MODEL:MAX=200*X1+300*X2;X1=100;X2=120;X1+2*X2=160;END2.模型存盘 选File|Save As3.模型求解 选Lingo|Solve(Ctrl+s)第5页/共56页LINGO求解4.求解结果Lingo Solver Status 变量个数 约束条件个数 优化状态 非零变量个数 耗费内存 所用时间Solition Report 计算步数 目标函数值 变量值Golbal optimal solution found
4、at iteration:2 Objective value:29000.00Variable value Reduced cost(缩减成本系数)X1 100.000 0.000000X2 30.000 0.000000Row Slack(松池)or Surplus(剩余)Dual Price(影子价格)1 29000.00 12 0.000000 50.000003 90.00000 0.0000004 0.000000 150.0000注 Row 模型中行号 Slack=右-左(=)第6页/共56页LINGO编程(建模)语言LINGO模型的基本组成1.集合定义部分 集合是一组相关对象构成
5、的组合,代表模型中的实际事物,并与数学变量和常量联系起来,实际问题到数学问题的抽象,集合使用前应定义,内容为:集合名称、集合内的成员、集合的属性(命名规则同变量)初始集合:集合名称/集合内的成员/:集合的属性 如:WH/W1.W6/:AI;VD/V1.V8/:Dj衍生集合:集合名称 对应的初始集合 集合成员 集合的属性 集合名称(对应的初始集合,对应的初始集合):集合的属性 如:LINKS(WH,VD):C,X;集合定义部分以语句SETS:开头,以语句ENDSETS结束第7页/共56页集合的类型集合的类型集合集合派生集合派生集合基本集合基本集合稀疏集合稀疏集合稠密集合稠密集合元素列表法元素列表
6、法元素过滤法元素过滤法直接列举法直接列举法隐式列举法隐式列举法setname/member_list/:attribute_list;setname(parent_set_list)/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第8页/共56页集合元素的集合元素的隐式列
7、举隐式列举类型类型隐式列举格式隐式列举格式示例示例示例集合的元素示例集合的元素数字型数字型 1.n1.51,2,3,4,5字符字符-数字型数字型stringM.stringNCar101.car208Car101,car102,car208星期型星期型 dayM.dayNMON.FRIMON,TUE,WED,THU,FRI月份型月份型 monthM.monthNOCT.JANOCT,NOV,DEC,JAN年份年份-月份型月份型monthYearM.monthYearNOCT2001.JAN2002OCT2001,NOV2001,DEC2001,JAN2002第9页/共56页LINGO编程(建模
8、)语言LINGO模型的基本组成2.数据初始化部分(数据段)LINGO建模语言通过数据初始化部分来实现对已知属性赋予初始值 数据初始化部分以语句DATA:开始,以语句 ENDDATA结束如:DATA:AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43,38;C=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 ENDDATA第10页/共56页LINGO编程(建模)语言LINGO模型的基本组成3.目标函数和约束条件内部函数:SUM,FORSUM是是LINGO的内部函数的内部函数,功能是对某个集合的所有成员功能是对某个集合的所有成员求指定表达式的和
9、求指定表达式的和,有两个参数有两个参数,其一是集合名称其一是集合名称,指定对该指定对该集合的所有成员求和集合的所有成员求和,其二是一个表达式其二是一个表达式,表示求和运算对表示求和运算对该表达式进行该表达式进行.FOR是是LINGO的内部函数的内部函数,功能是对某个集合的所有成员功能是对某个集合的所有成员分别派生一个约束表达式有两个参数分别派生一个约束表达式有两个参数,其一是集合名称其一是集合名称,表表示对该集合的所有成员分别派生一个约束表达式示对该集合的所有成员分别派生一个约束表达式,其二是约其二是约束表达式的具体内容束表达式的具体内容.注注:SUM和和FOR可以嵌套使用可以嵌套使用第11页
10、/共56页LINGO编程(建模)语言例 运输问题公司有6个供货栈(仓库),库存货物总数分别为AI=60,55,51,43,41,52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38,各供货栈到8个客户的单位运价如表1.如何确定各供货栈到8个客户的货物调运量,使总的运费最小?表1 各供货栈到8个客户的单位运价V1V2V3V4V5V6V7V8W162674259W249538582W352197433W476739271W523957265W655228143第12页/共56页LINGO编程(建模)语言例 运输问题数学模型第13页/共56页LINGO编程(建模)语
11、言例 运输问题LINGO模型MODEL:SETS:WH/W1.W6/:AI;VD/V1.V8/:Dj;LINKS(WH,VD):C,X;ENDSETS DATA:AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43,38;C=6,2,6,7,4,2,5,9 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,5,5,8,1,4,3 ENDDATA第14页/共56页LINGO编程(建模)语言例 运输问题LINGO模型MIN=SUM(LINKS(I,J):C(I,J)*X(I,J
12、);FOR(WH(I):SUM(VD(J):X(I,J)=AI(I);FOR(VD(J):SUM(WH(I):X(I,J)=DJ(J);END求解Lingo|SolveSolition ReportGolbal optimal solution found at step:17 Objective value:664.0000Variable value Reduced cost(缩减成本系数)X(w1,v1)0.000 5.000000X(w1,v2)19.000 0.000000.第15页/共56页LINGO的菜单1.File(文件菜单)Export file(输出特殊格式文件)Datab
13、ase User Info(用户基本信息)2.Edit Menu(编辑菜单)Paste Special(选择性粘贴)Go to Line(光标移到某一行)Match Parenthesis(匹配括号)Insert New Object(插入新对象)第16页/共56页LINGO的菜单3.LINGOSolution(求解结果)打开求解结果对话框,文本或图表方式查看结果Range(灵敏性分析)产生当前模型的灵敏性分析报告:最优解不变目标函数系 数的变化范围;影子价格和缩减系数不变,约束条件右端常数的变化范围(用时需激活)Options(选项设置)Generate(生成模型展开式)Picture(生成
14、图形)第17页/共56页LINGO的菜单3.LINGODebug(调试)Model Statistics(模型资料统计)Look(查看)第18页/共56页LINGO的菜单4.WindowCommand Window(命令行窗口)Status Window(状态窗口)5.Help Help Topics(帮助主题)Register(在线注册)Auto Update(自动更新)About Lingo(关于Lingo)第19页/共56页Lingo运算符1.算术运算符乘方,*乘,/除,+加,-减2.逻辑运算符分 类 运算符作 用运算对象是两个数#EQ#两个运算对象相等时为真,否则为假运算对象是两个数#
15、NE#两个运算对象不相等时为真,否则为假运算对象是两个数#GT#左边大于右边时为真,否则为假运算对象是两个数#GE#左边大于或等于右边时为真,否则为假运算对象是两个数#LT#左边小于右边时为真,否则为假运算对象是两个数#LT#左边小于或等于右边时为真,否则为假对象是逻辑值或#NOT#表示运算对象取反表达式#AND#两个运算对象都真时为真,否则为假#OR#两个运算对象都假时为假,否则为真第20页/共56页Lingo运算符3.关系运算符=表达式左右相等=表达式左边大于或等于右边注:Lingo没有单独的 AB是一个小的正数第21页/共56页Lingo函数Lingo提供了五十几个内部函数,所有函数都以
16、字符开头数学函数ABS(x),SIN(X),COS(x),TAN(X),LOG(X),EXP(X),SIGN(X),SMAX(X1,Xn),SMIN(X1,Xn)FLOOR(X),LGM(X)第22页/共56页Lingo函数集合函数 集合是Lingo中最重要的概念,使用集合函数,用简单的语句可表达目标函数和约束条件FOR(S|TJ:E)常用在约束条件中,表示对满足TJ的S中的成员都生成一个表达式E;SUM(S|TJ:E)对集合S中的每个成员,分别得到E的值,返回所有这些值的和;MAX(S|TJ:E)对集合S中的每个成员,分别得到E的值,返回所有这些值中的最大值;SIZE(S)返回集合S中的成员
17、个数第23页/共56页集合函数集合函数四个集合循环函数:四个集合循环函数: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):BENEFIT(I,
18、J);MINB=MIN(PAIRS(I,J):BENEFIT(I,J);Example:第24页/共56页Lingo函数变量定界函数变量定界函数该函数可以改变变量的值或界该函数可以改变变量的值或界BIN(X)限制限制X为为0或或1,用于用于0-1规划规划;BND(L,X,U)限制限制L=X=U;GIN(X)限制限制X为整数为整数,用于整数规划用于整数规划FREE(X)取消对变量的默认为非负数的限制取消对变量的默认为非负数的限制,即即X可取任意实数值可取任意实数值注注:用用BND(L,X,U)代替约束条件代替约束条件,一方面可提高求一方面可提高求解速度解速度,另一方面它不计入约束条件另一方面它不
19、计入约束条件第25页/共56页整数规划例题-背包问题某人计划外出旅游并登山,路途较远,要坐火车和飞机,要带必要的用品,如:相机、摄相机、衣服、食品、雨具和书籍等,共n件物品,重量分别为ai,能带行李的总重量为b,ci表示物品的重要性(价值).该旅行者最多能带哪些物品,才能使总价值最大.该问题称为背包问题.引入0-1型决策变量表示物品i放入背包表示物品i不放入背包,则背包问题的数学模型是第26页/共56页整数规划例题-背包问题数学模型第27页/共56页整数规划例题-背包问题n=8,a=1,3,4,3,3,1,5,10;c=2,9,3,8,10,4,10;b=15kg Lingo程序Model:S
20、ETS:WP/W1.W8/:A,C,X;ENDSETSDATA:A=1 3 4 3 3 1 5 10;C=2 9 3 8 10 6 4 10;ENDDATAMAX=SUM(WP:C*X);FOR(WP:BIN(X);SUM(WP:A*X)NEED(I);CON2 SHIP(I)=NEED(J);FOR(CUTFA(I):SUM(BUJ(J):N(I,J)*L(J)=16);FOR(SHUL:GIN(N);FOR(CUTFA:GIN(X);END第42页/共56页增加约束,缩小可行域,便于求解增加约束,缩小可行域,便于求解原料钢管总根数下界:原料钢管总根数下界:特殊生产计划:对每根原料钢管特殊生
21、产计划:对每根原料钢管模式模式1:切割成:切割成4根根4米钢管,需米钢管,需13根;根;模式模式2:切割成:切割成1根根5米和米和2根根6米钢管,需米钢管,需10根;根;模式模式3:切割成:切割成2根根8米钢管,需米钢管,需8根。根。原料钢管总根数上界:原料钢管总根数上界:31模式排列顺序可任定模式排列顺序可任定钢管下料问题钢管下料问题2需求:需求:4米米50根,根,5米米10根,根,6米米20根,根,8米米15根根每根原料钢管长每根原料钢管长19米米第43页/共56页LINGO求解整数非线性规划模求解整数非线性规划模型型Localoptimalsolutionfoundatiteration
22、:12211Objectivevalue:28.00000VariableValueReducedCostX110.000000.000000X210.000002.000000X38.0000001.000000R113.0000000.000000R122.0000000.000000R130.0000000.000000R210.0000000.000000R221.0000000.000000R230.0000000.000000R311.0000000.000000R321.0000000.000000R330.0000000.000000R410.0000000.000000R42
23、0.0000000.000000R432.0000000.000000模式模式1:每根原料钢管切割成:每根原料钢管切割成3根根4米和米和1根根6米钢管,共米钢管,共10根;根;模式模式2:每根原料钢管切割成:每根原料钢管切割成2根根4米、米、1根根5米和米和1根根6米钢管,米钢管,共共10根;根;模式模式3:每根原料钢管切割成:每根原料钢管切割成2根根8米钢管,共米钢管,共8根。根。原料钢管总根数为原料钢管总根数为28根。根。第44页/共56页例 指派问题(最优匹配问题)n项任务分配给n个人,每人一项每人完成各项工作所需时间不同问题:如何分配 所需总时间最少?一类重要的组合优化问题用0-1变量
24、表示分配情况,表示第i个人做j工作表示第i个人不做j工作,表示第i人做j工作时间问题的数学模型是0-1规划第45页/共56页例 指派问题(最优匹配问题)数学模型第46页/共56页例 指派问题(最优匹配问题)LINGO程序MODEL:SETS:WORKER/W1.W5/;JOB/J1.J5/;LINKS(WORKER,JOB):C,X;ENDSETS DATA:C=ENDDATAMIN=SUM(LINKS:C*X);FOR(WORKER(I):SUM(JOB(J):X(I,J)=1);FOR(JOB(J):SUM(WORKER(I):X(I,J)=1);FOR(LINKS:BIN(X);END第
25、47页/共56页例 货郎担问题一个货郎(旅客),从某地出发售货(旅游),要到若干地方各一次(仅一次),最后返回出发地,问如何安排路线所走路程最短(所花费用最少).该问题也称旅行商问题(TSP),是一个重要的组合优化问题,是NP-完全问题,至今无多项式时间算法.近似解也不易求得.TSP近似算法-构造算法 -改进型算法:二边逐次修正法神经网络方法,模拟退火方法,混合整数规划法第48页/共56页例 货郎担问题混合整数规划法分别表示从i到j和不从i到j表示I,j之间的路程(费用)第49页/共56页例 货郎担问题注:第四个约束条件保证不含子巡回MODEL:SETS:CITY/1.6/:U;LINK(CI
26、TY,CITY):C,X;ENDSETS DATA:C=.;ENDDATA N=SIZE(CITY);MIN=SUM(LINK:C*X);FOR(CITY(K):SUM(CITY(I)|I#NE#K:X(I,K)=1;);FOR(CITY(K):SUM(CITY(J)|J#NE#K:X(K,J)=1;);FOR(CITY(I):FOR(CITY(J)|J#GE#1#AND#I#NE#J:U(I)-U(J)+N*X(I,J)=N-1);FOR(LINK:BIN(X);END 第50页/共56页运算符的优先级运算符的优先级 优先级优先级运算符运算符最高最高#NOT#(负负号)号)*/+(减法)(减
27、法)#EQ#NE#GT#GE#LT#LE#AND#OR#最低最低(=)三类运算符:三类运算符:算术运算符算术运算符逻辑运算符逻辑运算符关系运算符关系运算符第51页/共56页状态窗口状态窗口Solver Type:B-and-BGlobal MultistartModel Class:LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP State:Global OptimumLocal OptimumFeasibleInfeasibleUnboundedInterruptedUndetermined第52页/共56页7个选项卡个选项卡(可设置可设置80-90个控制参数个
28、控制参数)第53页/共56页 程序与数据分离程序与数据分离文文本本文文件件使用外部数据文件使用外部数据文件Cut(orCopy)Paste方法方法FILE输入数据、输入数据、TEXT输出数据(文本文件)输出数据(文本文件)OLE函数与电子表格软件(如函数与电子表格软件(如EXCEL)连接)连接ODBC函数与数据库连接函数与数据库连接LINGO命令脚本文件命令脚本文件LG4(LONGO模型文件)模型文件)LNG(LONGO模型文件)模型文件)LTF(LONGO脚本文件)脚本文件)LDT(LONGO数据文件)数据文件)LRP(LONGO报告文件)报告文件)常用文件后缀常用文件后缀第54页/共56页参考资料优化建模与LINDO/LINGO软件,谢金星等,清华大学出版社,2005最优化模型与实验,朱德通,同济大学出版社,2003现代优化计算方法,刑文训等,清华大学出版社,2005网络优化,谢金星等,清华大学出版,2005LINGO和EXCEL在数学建模中的应用,袁新生等,科学版社,2007第55页/共56页感谢观看!感谢观看!第56页/共56页