LINGO清华培训(共99张)

上传人:夏日****8 文档编号:253875665 上传时间:2022-02-14 格式:PPTX 页数:99 大小:1.71MB
返回 下载 相关 举报
LINGO清华培训(共99张)_第1页
第1页 / 共99页
LINGO清华培训(共99张)_第2页
第2页 / 共99页
LINGO清华培训(共99张)_第3页
第3页 / 共99页
LINGO清华培训(共99张)_第4页
第4页 / 共99页
LINGO清华培训(共99张)_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《LINGO清华培训(共99张)》由会员分享,可在线阅读,更多相关《LINGO清华培训(共99张)(99页珍藏版)》请在金锄头文库上搜索。

1、Lingo使用教程东南大学数模培训材料vLINGOisacomprehensivetooldesignedtomakebuildingandsolvingLinear,Nonlinear(convex&nonconvex/Global),Quadratic,QuadraticallyConstrained,SecondOrderCone,Stochastic,andIntegeroptimizationmodelsfaster,easierandmoreefficient.LINGOprovidesacompletelyintegratedpackagethatincludesapowerfu

2、llanguageforexpressingoptimizationmodels,afullfeaturedenvironmentforbuildingandeditingproblems,andasetoffastbuilt-insolvers.TherecentlyreleasedLINGO12.0includesanumberofsignificantenhancementsandnewfeatures.优化问题的一般形式LP,ILP,BILP,NLP,INLP,QP,IQP,PIP,ZOP线性规划问题LP的标准形式MATLAB命令:linprog, bintprog例1.如何在LING

3、O中求解如下的LP问题:LINGO代码:min=2*x1+3*x2;x1+x2=350;x1=100;2*x1+x2=600;例2.如何在LINGO中求解如下的IQP问题:LINGO代码:max=98*x1+277*x2-x12-0.3*x1*x2-2*x22;x1+x2=100;x1=required(J);end例2。职员时序安排模型一项工作一周7天都需要有人(比如护士工作),每天(周一至周日)所需的最少职员数为20、16、13、16、19、14和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。model:sets:days/mon.

4、sun/:required,start;endsetsdata:!每天所需的最少职员数;required=20161316191412;enddata!最小化每周所需职员数;min=sum(days:start);for(days(J):sum(days(I)|I#le#5:start(wrap(J+I+2,7)=required(J);end最优解决方案是:每周最少需要22个职员,周一安排8人,周二安排2人,周三无需安排人,周四安排6人,周五和周六都安排3人,周日无需安排人。LINDO/LINGO软件vLINGO: Linear INteractive General Optimizer (

5、V12.0)v求解数学规划问题 Min Z = f (x) s.t x D ( Rn )v需要掌握的几个重要方面基本语法结构掌握集合(SETS)的应用正确阅读求解报告正确理解求解状态窗口学会设置基本的求解选项(OPTIONS)一、Lingo基本语法1、定义了目标函数为MIN=.2、以一个分号“;”结尾除SETS,ENDSETS,DATA,ENDDATA,END之外3、变量可以放在约束条件右端,也可放在约束条件的左端。4、默认假定各变量非负。5、注释:“!”6、为、建模时需要注意的几个基本问题 v尽量使用实数优化,减少整数约束和整数变量v尽量使用光滑优化,减少非光滑约束的个数v尽量少使用绝对值、

6、符号函数、多个变量求最大/最小值、四舍五入、取整函数等v尽量使用线性模型,减少非线性约束和非线性变量的个数如x/y5改为x5yv合理设定变量上下界,尽可能给出变量初始值v模型中使用的参数数量级要适当不同参数绝对值数量级之间差距一般要求小于3LINGO函数LINGO有9种类型的函数:1基本运算符:包括算术运算符、逻辑运算符和关系运算符2数学函数:三角函数和常规的数学函数3金融函数:LINGO提供的两种金融函数4概率函数:LINGO提供了大量概率相关的函数5变量界定函数:这类函数用来定义变量的取值范围6集操作函数:这类函数为对集的操作提供帮助7集循环函数:遍历集的元素,执行一定的操作的函数8数据输

7、入输出函数:这类函数允许模型和外部数据源相联系,进行数据的输入输出9辅助函数:各种杂类函数v过滤条件使用结果:014.1运算符及其优先级逻辑运算符#NOT#否定#EQ#相等#NE#不等#AND#并且#OR#或者#GT#大于#GE#大于等于#LT#小于#LE#小于等于算术运算符+-*/关系运算符(=)4.1.3关系运算符在LINGO中,关系运算符主要是被用来指定一个表达式的左边是否等于、小于等于、或者大于等于右边,形成模型的一个约束条件。关系运算符与逻辑运算符#eq#、#le#、#ge#截然不同,前者是模型中该关系运算符所指定关系的为真描述,而后者仅仅判断一个该关系是否被满足:满足为真,不满足为

8、假。LINGO有三种关系运算符:“=”、“=”。LINGO中还能用“”表示大于等于关系。LINGO并不支持严格小于和严格大于关系运算符。然而,如果需要严格小于和严格大于关系,比如让A严格小于B:AB,那么可以把它变成如下的小于等于表达式:A+=B,这里是一个小的正数,它的值依赖于模型中A小于B多少才算不等。v运算符的优先级最高最低#NOT#(负号)*/+(减法)#EQ#NE#GT#GE#LT#LE#AND#OR#v先左后右,先括号内,后括号外4.2数学函数LINGO提供了大量的标准数学函数:abs(x)返回x的绝对值sin(x)返回x的正弦值,x采用弧度制cos(x)返回x的余弦值tan(x)

9、返回x的正切值exp(x)返回常数e的x次方log(x)返回x的自然对数lgm(x)返回x的gamma函数的自然对数sign(x)如果x=0时,返回不超过x的最大整数;当x=30;end5.LINGO常用菜单命令1求解模型(Slove)从LINGO菜单中选用“求解”命令、单击“Slove”按钮或按Ctrl+S组合键可以将当前模型送入内存求解。2求解结果(Solution)从LINGO菜单中选用“Solution”命令、单击“Solution”按钮或直接按Ctrl+O组合键可以打开求解结果的对话框。这里可以指定查看当前内存中求解结果的那些内容。3查看(Look)从LINGO菜单中选用“Look”

10、命令或直接按Ctrl+L组合键可以查看全部的或选中的模型文本内容。4灵敏性分析(Range,Ctrl+R)用该命令产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分析是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态,但是默认是不激活的。为了激活灵敏性分析,运行LINGO|Options,选择GeneralSolverTab,在DualComputations列表框中,选择PricesandRanges选项。灵敏性分析耗费相当多的求解时间,因此当速度很关键时,就没有必要激活它。二、Lingo集合v某公司有6个

11、建筑工地,位置坐标为(ai,bi) (单位:公里),水泥日用量di (单位:吨)例4 选址问题v假设:料场和工地之间有直线道路v(1)现有2料场,位于A(5,1),B(2,7),记(xj,yj),j=1,2, 日储量ej各有20吨。v目标:制定每天的供应计划,即从A, B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。ia8.750.55.7537.25b0.754.7556.57.75d1.25547611解:v决策变量:料场j到工地i的运量 cij 12维v线性规划模型vlingo表达式?目标:吨公里约束:需求 供应基本使用1、Lingo建模语言构成:4个段v目标与约束段v集合段(S

12、ETSENDSETS)v数据段(DATAENDDATA)v初始段(INITENDINIT)v(计算段(CALCENDCALC))目标与约束段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;enddatainit:x,y=5,1,2,7; endinitmin=sum(l

13、ink(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););END集合段数据段初始段供应约束需求需求点的位置供需量供应初始点目标需求约束连接2、Lingo的集合Set及其属性Attributev例1v建筑工地位置坐标(ai,bi)、水泥日用量di:对每个建筑工地(6个)都有一个对应的值都是一个由6个元素组成的数组是已知的v料场位置坐标(xj,yj)、日储量ej对每个料场(2个)都有一个对应的值都

14、是一个由2个元素组成的数组目前是已知的v料场到建筑工地的供应计划cij对每个料场与建筑工地之间(62)都有一个对应的值是一个62个元素组成的矩阵是未知数vLINDO无数组,每个变量输入麻烦Lingo的集合Set下标集合100个工地?集合Set及其属性Attributev定义数组下标集合demand/1.6/表示6个建筑工地a,b,d称为该集合的属性表示坐标(ai,bi)、水泥日用量div定义数组下标集合supply/1.2/表示6个建筑工地该集合的属性x,y,e表示坐标(xj,yj)、日储量ejv定义数组下标集合link(demand,supply)表示62个料场到建筑工地的连接该集合的属性c

15、表示每个料场与建筑工地之间供应计划cij1到6的整数v建立下标集合例4需求点的位置供需量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; x,y=5,1,2,7; e=20,20;enddatav赋值需求供应连接基本集合派生集合Lingo建模语言集合段数据段3、定义集合Setv直接把元素列举出来v定义格式集合名元素列表属性列表setname/memb

16、er_list/:attribute_list;可选项v元素列表显式列举法列出全部元素,用逗号或空格分开隐式列举法1.nv属性列表缺省集合可在程序中作为一循环变量使用,构造更复杂的派生集合v元素列表缺省必须在数据段给出元素列表赋值基本集合primary set派生集合derived setv基于其它集合而派生出来的二维或多维集合v定义格式集合名父集合列表元素列表属性列表setname(parent_set_list)/member_list/:attribute_list;v元素列表缺省所有组合稠密集合、或数据段列表赋值v元素列表稀疏集合元素列表法枚举元素过滤法利用过滤条件setname(parent_set_list)|filtrate_condition:attribute_list;集合的类型 集合 派生集合 基本集合 稀疏集合 稠密集合 元素列表法 元素过滤法 直接列举法 隐式列举法setname /member_list/ : attribute_list;setname(parent_set_list) /member_list/ : attribute_list;SETS

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号