《lingo语言学习教程.pptx》由会员分享,可在线阅读,更多相关《lingo语言学习教程.pptx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LINDO/LINGO软件LINGO:Linear INteractive General Optimizer (V10.0)求解数学规划问题 Max/Min Z=f(x)x A(Rn)需要掌握的几个重要方面基本语法结构掌握集合(SETS)的应用正确阅读求解报告正确理解求解状态窗口学会设置基本的求解选项(OPTIONS)第1页/共19页一、Lingo基本语法1、定义了目标函数为Max/MIN=.2、以一个分号“;”结尾 除SETS,ENDSETS,DATA,ENDDATA,END之外3、可以放在约束条件的右端,同时数字也可放在约束条件的左端。4、假定各变量非负。5、注释:“!”6、为、第2页/
2、共19页需要注意的几个基本问题 尽量使用实数优化,减少整数约束和整数变量尽量使用光滑优化,减少非光滑约束的个数 尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等尽量使用线性模型,减少非线性约束和非线性变量的个数如x/y 5 改为x5y合理设定变量上下界,尽可能给出变量初始值 模型中使用的参数数量级要适当如小于103第3页/共19页二、二、LingoLingo集合集合某公司有6个建筑工地,位置坐标为(ai,bi)(单位:公里),水泥日用量di(单位:吨)例1 选址问题v假设:料场和工地之间有直线道路v(1)现有2料场,位于A(5,1),B(2,7),记(xj,yj),j=
3、1,2,日储量ej各有20吨。v目标:制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。ia8.750.55.7537.25b0.754.7556.57.75d1.25547611第4页/共19页解:决策变量:料场j到工地i的运量 cij 12维线性规划模型lingo表达式?location目标:吨公里约束:需求 供应第5页/共19页目标与约束目标与约束段段MODEL:Title Location Problem;sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata
4、:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddatainit:endinitmin=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2);for(demand(i):sum(supply(j):c(i,j)=d(i););for(supply(i):sum(demand(j):c(j,i)=e(i););for(supply:free(X);free(Y););END集合段集合段数据段数据段初始段初始段
5、location供应约束供应约束供应约束供应约束需求需求需求需求需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量供应供应供应供应初始点初始点初始点初始点目标目标目标目标需求约束需求约束需求约束需求约束连接连接连接连接第6页/共19页集合Set及其属性Attribute定义数组下标集合demand/1.6/表示6个建筑工地a,b,d称为该集合的属性表示坐标(ai,bi)、水泥日用量di定义数组下标集合supply/1.2/表示6个建筑工地该集合的属性x,y,e表示坐标(xj,yj)、日储量ej 定义数组下标集合link(demand,supply)表示62个料场到建筑工地
6、的连接该集合的属性c表示每个料场与建筑工地之间供应计划c i j1到6的整数第7页/共19页建立下标集合Lingo 语言集合段 数据段需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddatav赋值需求需求需求需求供应供应供应供应连接连接连
7、接连接第8页/共19页派生集合派生集合derived set基于其它集合而派生出来的二维或多维集合定义格式 集合名 父集合列表 元素列表 属性列表 setname(parent_set_list)/member_list/:attribute_list;元素列表缺省所有组合稠密集合、或数据段列表赋值元素列表稀疏集合元素列表法枚举元素过滤法利用过滤条件setname(parent_set_list)|filtrate_condition:attribute_list;第9页/共19页建立 下标集合例1需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量sets:demand/
8、1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddatav赋值需求需求需求需求供应供应供应供应连接连接连接连接基本基本集合集合派生派生集合集合第10页/共19页三、三、LingoLingo运算符和函数运算符和函数1 1、运算符及其优先级、运算符及其优先级、运算符及其优先级、运算符及其优先级逻辑运算符#NOT#否定#EQ#相等#NE#
9、不等#AND#并且#OR#或者#GT#大于#GE#大于等于#LT#小于#LE#小于等于算术运算符+-*/关系运算符(=)第11页/共19页vv运算符的优先级运算符的优先级最高最低#NOT#(负号)*/+(减法)#EQ#NE#GT#GE#LT#LE#AND#OR#v先左后右v先括号内,后括号外第12页/共19页目标:吨公里for(demand(i):sum(supply(j):c(i,j)=d(i););for(supply(i):sum(demand(j):c(j,i)=e(i););例1v约束:需求 供应min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b
10、(i)2)(1/2);第13页/共19页目标与约束目标与约束段段MODEL:Title Location Problem;sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddatainit:endinitmin=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2)
11、;for(demand(i):sum(supply(j):c(i,j)=d(i););for(supply(i):sum(demand(j):c(j,i)=e(i););for(supply:free(X);free(Y););END集合段集合段数据段数据段初始段初始段location供应约束供应约束供应约束供应约束需求需求需求需求需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量供应供应供应供应初始点初始点初始点初始点目标目标目标目标需求约束需求约束需求约束需求约束连接连接连接连接第14页/共19页界面四、LINGO的菜单及对话框1 1、LINGOLINGO的界面的界面
12、的界面的界面主窗口主窗口模型窗口模型窗口Model Window状态栏状态栏当前时间当前时间 当前光标当前光标位置位置 第15页/共19页求解求解器器(求求解程解程序序)状状态框态框当前模型的类型当前模型的类型:LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP(以以I开头表示开头表示IP,以以PI开头表示开头表示PIP)当前解的状态当前解的状态:Global Optimum,Local Optimum,Feasible,Infeasible“(不可行不可行),Unbounded“(无界无界),Interrupted“(中断中断),Undetermined“(未确定未
13、确定)解的目标函数值解的目标函数值 当前约束不满足的总量当前约束不满足的总量(不是不不是不满足的约束的个数满足的约束的个数):实数(即使实数(即使该值该值=0,当前解也可能不可行,当前解也可能不可行,因为这个量中没有考虑用上下界因为这个量中没有考虑用上下界命令形式给出的约束)命令形式给出的约束)目前为止的目前为止的迭代次数迭代次数 运行状态窗运行状态窗口口第16页/共19页扩展扩展的求的求解器解器(求求解程解程序序)状态状态框框使用的特殊求解程序使用的特殊求解程序:B-and-B(分枝定界算法分枝定界算法)Global(全局最优求解程序全局最优求解程序)Multistart(用多个初始点求解的程序用多个初始点求解的程序)目前为止找到的可行目前为止找到的可行解的最佳目标函数值解的最佳目标函数值 目标函数值的界目标函数值的界 特殊求解程序当前运行步数:特殊求解程序当前运行步数:分枝数分枝数(对对B-and-B程序程序);子问题数子问题数(对对Global程序程序);初始点数初始点数(对对Multistart程序程序)有效步数有效步数 运行状态窗口运行状态窗口第17页/共19页end第18页/共19页感谢您的观看!第19页/共19页
限制150内