LINGO9.0培训教程.ppt

上传人:小飞机 文档编号:5437870 上传时间:2023-07-07 格式:PPT 页数:98 大小:1.67MB
返回 下载 相关 举报
LINGO9.0培训教程.ppt_第1页
第1页 / 共98页
LINGO9.0培训教程.ppt_第2页
第2页 / 共98页
LINGO9.0培训教程.ppt_第3页
第3页 / 共98页
LINGO9.0培训教程.ppt_第4页
第4页 / 共98页
LINGO9.0培训教程.ppt_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《LINGO9.0培训教程.ppt》由会员分享,可在线阅读,更多相关《LINGO9.0培训教程.ppt(98页珍藏版)》请在三一办公上搜索。

1、Lingo使用教程东南大学数模培训材料,LINGO is a comprehensive tool designed to make building and solving Linear,Nonlinear(convex&nonconvex/Global),Quadratic,Quadratically Constrained,Second Order Cone,Stochastic,and Integer optimization models faster,easier and more efficient.LINGO provides a completely integrated p

2、ackage that includes a powerful language for expressing optimization models,a full featured environment for building and editing problems,and a set of fast built-in solvers.The recently released LINGO 12.0 includes a number of significant enhancements and new features.,LINGO provides all of the tool

3、s you will need to get up and running quickly.You get the LINGO User Manual(in printed form and available via the online Help),which fully describes the commands and features of the program.Also included with super versions and larger is a copy of Optimization Modeling with LINGO,a comprehensive mod

4、eling text discussing all major classes of linear,integer and nonlinear optimization problems.LINGO also comes with dozens of real-world based examples for you to modify and expand.,优化问题的一般形式,LP,ILP,BILP,NLP,INLP,QP,IQP,PIP,ZOP,线性规划问题LP的标准形式,MATLAB命令:linprog,bintprog,例1.如何在LINGO中求解如下的LP问题:,LINGO代码:m

5、in=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;x12*x2;gin(x1);gin(x2);,例3。职员时序安排模型 一项工作一周7天都需要有人(比如护士工作),每天(周一至周日)所需的最少职员数为20、16、13、16、19、14和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。model:sets:days/mon.sun/:require

6、d,start;endsetsdata:!每天所需的最少职员数;required=20 16 13 16 19 14 12;enddata!最小化每周所需职员数;min=sum(days:start);for(days(J):sum(days(I)|I#le#5:start(wrap(J+I+2,7)=required(J);end,例2。职员时序安排模型 一项工作一周7天都需要有人(比如护士工作),每天(周一至周日)所需的最少职员数为20、16、13、16、19、14和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。model:sets

7、:days/mon.sun/:required,start;endsetsdata:!每天所需的最少职员数;required=20 16 13 16 19 14 12;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软件,LINGO:Linear INteractive Ge

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

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

10、元素,执行一定的操作的函数8 数据输入输出函数:这类函数允许模型和外部数据源相联系,进行数据的输入输出9 辅助函数:各种杂类函数,过滤条件使用结果:0 1,4.1运算符及其优先级,4.1.3 关系运算符在LINGO中,关系运算符主要是被用来指定一个表达式的左边是否等于、小于等于、或者大于等于右边,形成模型的一个约束条件。关系运算符与逻辑运算符#eq#、#le#、#ge#截然不同,前者是模型中该关系运算符所指定关系的为真描述,而后者仅仅判断一个该关系是否被满足:满足为真,不满足为假。LINGO有三种关系运算符:“=”、“=”。LINGO中还能用“”表示大于等于关系。LINGO并不支持严格小于和严

11、格大于关系运算符。然而,如果需要严格小于和严格大于关系,比如让A严格小于B:AB,那么可以把它变成如下的小于等于表达式:A+=B,这里是一个小的正数,它的值依赖于模型中A小于B多少才算不等。,运算符的优先级,最高最低,先左后右,先括号内,后括号外,4.2 数学函数LINGO提供了大量的标准数学函数:abs(x)返回x的绝对值sin(x)返回x的正弦值,x采用弧度制cos(x)返回x的余弦值tan(x)返回x的正切值exp(x)返回常数e的x次方log(x)返回x的自然对数lgm(x)返回x的gamma函数的自然对数sign(x)如果x=0时,返回不超过x的最大整数;当x0时,返回不低于x的最大

12、整数。smax(x1,x2,xn)返回x1,x2,xn中的最大值smin(x1,x2,xn)返回x1,x2,xn中的最小值,Lingo内部函数”,4.3 金融函数目前LINGO提供了两个金融函数。1fpa(I,n)返回如下情形的净现值:单位时段利率为I,连续n个时段支付,每个时段支付单位费用。若每个时段支付x单位的费用,则净现值可用x乘以fpa(I,n)算得。fpa的计算公式为.净现值就是在一定时期内为了获得一定收益在该时期初所支付的实际费用。例4.4 贷款买房问题 贷款金额50000元,贷款年利率5.31%,采取分期付款方式(每年年末还固定金额,直至还清)。问拟贷款10年,每年需偿还多少元?

13、LINGO代码如下:50000=x*fpa(.0531,10);答案是x=6573.069元。2fpl(I,n)返回如下情形的净现值:单位时段利率为I,第n个时段支付单位费用.fpl(I,n)的计算公式为,4.4 概率函数1pbn(p,n,x)二项分布的累积分布函数。当n和(或)x不是整数时,用线性插值法进行计算。2pcx(n,x)自由度为n的2分布的累积分布函数。3peb(a,x)当到达负荷为a,服务系统有x个服务器且允许无穷排队时的Erlang繁忙概率。4pel(a,x)当到达负荷为a,服务系统有x个服务器且不允许排队时的Erlang繁忙概率。5pfd(n,d,x)自由度为n和d的F分布的

14、累积分布函数。6pfs(a,x,c)当负荷上限为a,顾客数为c,平行服务器数量为x时,有限源的Poisson服务系统的等待或返修顾客数的期望值。a是顾客数乘以平均服务时间,再除以平均返修时间。当c和(或)x不是整数时,采用线性插值进行计算。,7phg(pop,g,n,x)超几何(Hypergeometric)分布的累积分布函数。pop表示产品总数,g是正品数。从所有产品中任意取出n(npop)件。pop,g,n和x都可以是非整数,这时采用线性插值进行计算。8ppl(a,x)Poisson分布的线性损失函数,即返回max(0,z-x)的期望值,其中随机变量z服从均值为a的Poisson分布。9p

15、ps(a,x)均值为a的Poisson分布的累积分布函数。当x不是整数时,采用线性插值进行计算。10psl(x)单位正态线性损失函数,即返回max(0,z-x)的期望值,其中随机变量z服从标准正态分布。11psn(x)标准正态分布的累积分布函数。12ptd(n,x)自由度为n的t分布的累积分布函数。13qrand(seed)产生服从(0,1)区间的拟随机数。qrand只允许在模型的数据部分使用,它将用拟随机数填满集属性。通常,声明一个mn的二维表,m表示运行实验的次数,n表示每次实验所需的随机数的个数。在行内,随机数是独立分布的;在行间,随机数是非常均匀的。这些随机数是用“分层取样”的方法产生

16、的。,4.5 变量界定函数变量界定函数实现对变量取值范围的附加限制,共4种:bin(x)限制x为0或1bnd(L,x,U)限制LxUfree(x)取消对变量x的默认下界为0的限制,即x可以取任意实数gin(x)限制x为整数在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+。free取消了默认的下界为0的限制,使变量也可以取负值。bnd用于设定一个变量的上下界,它也可以取消默认下界为0的约束。,4.6 集合操作函数LINGO提供了几个函数帮助处理集。1in(set_name,primitive_index_1,primitive_index_2,)如果元素在指定集中,返回1;否

17、则返回0。2wrap(index,limit)该函数返回j=index-k*limit,其中k是一个整数,取适当值保证j落在区间1,limit内。该函数相当于index模limit再加1。该函数在循环、多阶段计划编制中特别有用。3size(set_name)该函数返回集set_name的成员个数。在模型中明确给出集大小时最好使用该函数。它的使用使模型更加数据中立,集大小改变时也更易维护。,4.7 集循环函数集循环函数遍历整个集进行操作。其语法为function(setname(set_index_list)|conditional_qualifier:expression_list);func

18、tion相应于下面罗列的四个集循环函数之一;setname是要遍历的集;set_ index_list是集索引列表;conditional_qualifier是用来限制集循环函数的范围,当集循环函数遍历集的每个成员时,LINGO都要对conditional_qualifier进行评价,若结果为真,则对该成员执行function操作,否则跳过,继续执行下一次循环。expression_list是被应用到每个集成员的表达式列表,当用的是for函数时,expression_list可以包含多个表达式,其间用逗号隔开。这些表达式将被作为约束加到模型中。当使用其余的三个集循环函数时,expression

19、_list只能有一个表达式。如果省略set_index_list,那么在expression_list中引用的所有属性的类型都是setname集。,1for该函数用来产生对集成员的约束。基于建模语言的标量需要显式输入每个约束,不过for函数允许只输入一个约束,然后LINGO自动产生每个集成员的约束。例4.10 产生序列1,4,9,16,25model:sets:number/1.5/:x;endsets for(number(I):x(I)=I2);end,2sum该函数返回遍历指定的集成员的一个表达式的和。例4.11 求向量5,1,3,4,6,10前5个数的和。model:data:N=6;

20、enddatasets:number/1.N/:x;endsetsdata:x=5 1 3 4 6 10;enddata s=sum(number(I)|I#le#5:x);end,3min和max返回指定的集成员的一个表达式的最小值或最大值。例4.12 求向量5,1,3,4,6,10前5个数的最小值,后3个数的最大值。model:data:N=6;enddatasets:number/1.N/:x;endsetsdata:x=5 1 3 4 6 10;enddata minv=min(number(I)|I#le#5:x);maxv=max(number(I)|I#ge#N-2:x);end

21、,4.8 输入和输出函数输入和输出函数可以把模型和外部数据比如文本文件、数据库和电子表格等连接起来。1file函数 该函数用从外部文件中输入数据,可以放在模型中任何地方。该函数的语法格式为file(filename)。这里filename是文件名,可以采用相对路径和绝对路径两种表示方式。file函数对同一文件的两种表示方式的处理和对两个不同的文件处理是一样的,这一点必须注意。,2text函数该函数被用在数据部分用来把解输出至文本文件中。它可以输出集成员和集属性值。其语法为text(filename)这里filename是文件名,可以采用相对路径和绝对路径两种表示方式。如果忽略filename,

22、那么数据就被输出到标准输出设备(大多数情形都是屏幕)。text函数仅能出现在模型数据部分的一条语句的左边,右边是集名(用来输出该集的所有成员名)或集属性名(用来输出该集属性的值)。我们把用接口函数产生输出的数据声明称为输出操作。输出操作仅当求解器求解完模型后才执行,执行次序取决于其在模型中出现的先后。,3ole函数OLE是从EXCEL中引入或输出数据的接口函数,它是基于传输的OLE技术。OLE传输直接在内存中传输数据,并不借助于中间文件。当使用OLE时,LINGO先装载EXCEL,再通知EXCEL装载指定的电子数据表,最后从电子数据表中获得Ranges。为了使用OLE函数,必须有EXCEL5及

23、其以上版本。OLE函数可在数据部分和初始部分引入数据。OLE可以同时读集成员和集属性,集成员最好用文本格式,集属性最好用数值格式。原始集每个集成员需要一个单元(cell),而对于n元的派生集每个集成员需要n个单元,这里第一行的n个单元对应派生集的第一个集成员,第二行的n个单元对应派生集的第二个集成员,依此类推。OLE只能读一维或二维的Ranges(在单个的EXCEL工作表(sheet)中),但不能读间断的或三维的Ranges。Ranges是自左而右、自上而下来读。,4ranged(variable_or_row_name)为了保持最优基不变,变量的费用系数或约束行的右端项允许减少的量。5ran

24、geu(variable_or_row_name)为了保持最优基不变,变量的费用系数或约束行的右端项允许增加的量。6status()返回LINGO求解模型结束后的状态:0 Global Optimum(全局最优)1 Infeasible(不可行)2 Unbounded(无界)3 Undetermined(不确定)4 Feasible(可行)5 Infeasible or Unbounded(通常需要关闭“预处理”选项后重新求解模型,以确定模型究竟是不可行还是无界)6 Local Optimum(局部最优)7 Locally Infeasible(局部不可行,尽管可行解可能存在,但是LINGO并

25、没有找到一个)8 Cutoff(目标函数的截断值被达到),9 Numeric Error(求解器因在某约束中遇到无定义的算术运算而停止)通常,如果返回值不是0、4或6时,那么解将不可信,几乎不能用。该函数仅被用在模型的数据部分来输出数据。例4.17model:min=sin(x);data:text()=status();enddataend部分计算结果为:Local optimal solution found at iteration:33 Objective value:-1.000000 6 Variable Value Reduced Cost X 4.712388 0.000000

26、结果中的6就是status()返回的结果,表明最终解是局部最优的。7dual dual(variable_or_row_name)返回变量的判别数(检验数)或约束行的对偶(影子)价格(dual prices)。,Lingo条件判断函数,分段函数,IF(logical_condition,true_result,false_result),例5 求解最优化问题,LINGO代码如下:model:min=fx+fy;fx=if(x#gt#0,100,0)+2*x;fy=if(y#gt#0,60+3*y,2*y);x+y=30;end,5.LINGO常用菜单命令1 求解模型(Slove)从LINGO菜

27、单中选用“求解”命令、单击“Slove”按钮或按Ctrl+S组合键可以将当前模型送入内存求解。2 求解结果(Solution)从LINGO菜单中选用“Solution”命令、单击“Solution”按钮或直接按Ctrl+O组合键可以打开求解结果的对话框。这里可以指定查看当前内存中求解结果的那些内容。3 查看(Look)从LINGO菜单中选用“Look”命令或直接按Ctrl+L组合键可以查看全部的或选中的模型文本内容。4 灵敏性分析(Range,Ctrl+R)用该命令产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分析

28、是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态,但是默认是不激活的。为了激活灵敏性分析,运行LINGO|Options,选择General Solver Tab,在Dual Computations列表框中,选择Prices and Ranges选项。灵敏性分析耗费相当多的求解时间,因此当速度很关键时,就没有必要激活它。,二、Lingo集合,某公司有6个建筑工地,位置坐标为(ai,bi)(单位:公里),水泥日用量di(单位:吨),例4 选址问题,假设:料场和工地之间有直线道路(1)现有2料场,位于A(5,1),B(2,7),记(xj,yj),j=1,2,日储量ej各有20吨。目标:

29、制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。,解:,决策变量:料场j到工地i的运量 cij 12维线性规划模型lingo表达式?,目标:吨公里,约束:需求 供应,基本使用,1、Lingo建模语言,构成:4个段,目标与约束段集合段(SETS ENDSETS)数据段(DATA ENDDATA)初始段(INIT ENDINIT)(计算段(CALC ENDCALC)),目标与约束段,MODEL:Title Location Problem;sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c

30、;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(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););END,集合段,数据段,初始段,供应约束,需求,需求点的位置,供需量,供应,

31、初始点,目标,需求约束,连接,2、Lingo的集合Set及其属性Attribute,例1建筑工地位置坐标(ai,bi)、水泥日用量di:对每个建筑工地(6个)都有一个对应的值都是一个由6个元素组成的数组是已知的料场位置坐标(xj,yj)、日储量ej对每个料场(2个)都有一个对应的值都是一个由2个元素组成的数组目前是已知的料场到建筑工地的供应计划 c i j 对每个料场与建筑工地之间(62)都有一个对应的值是一个62 个元素组成的矩阵是未知数LINDO无数组,每个变量输入麻烦,Lingo的集合Set下标集合,100个工地?,集合Set及其属性Attribute,定义数组下标集合demand/1.

32、6/表示6个建筑工地a,b,d称为该集合的属性表示坐标(ai,bi)、水泥日用量di定义数组下标集合supply/1.2/表示6个建筑工地该集合的属性x,y,e表示坐标(xj,yj)、日储量ej 定义数组下标集合link(demand,supply)表示62个料场到建筑工地的连接该集合的属性c表示每个料场与建筑工地之间供应计划c i j,1到6的整数,建立 下标集合,例4,需求点的位置,供需量,sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsets,data:a=1.25,8.75,0.5,5.75,3,7.

33、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;enddata,赋值,需求,供应,连接,基本集合,派生集合,Lingo 建模语言集合段 数据段,3、定义集合Set,直接把元素列举出来定义格式 集合名 元素列表 属性列表 setname/member_list/:attribute_list;可选项元素列表显式列举法列出全部元素,用逗号或空格分开隐式列举法 1.n属性列表缺省集合可在程序中作为一循环变量使用,构造更复杂的派生集合元素列表缺省必须在数据段给出元素列表赋值,基本集合primary set,派生集合de

34、rived set,基于其它集合而派生出来的二维或多维集合定义格式 集合名 父集合列表 元素列表 属性列表 setname(parent_set_list)/member_list/:attribute_list;元素列表缺省所有组合稠密集合、或数据段列表赋值元素列表稀疏集合元素列表法枚举元素过滤法利用过滤条件setname(parent_set_list)|filtrate_condition:attribute_list;,集合的类型,集合 派生集合 基本集合 稀疏集合 稠密集合 元素列表法 元素过滤法 直接列举法 隐式列举法,setname/member_list/:attribute_

35、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;ENDSETS,SETS:STUDENTS/S1.S8/;PAIRS(STUDENTS,STUDENTS)|ENDSETS,3、Lingo集合循环函数,难点!重点!,循环操作函数集合上的元素下标:,集合函数名,function(setname(set_index_list)|condition:expression_list)

36、;,集合名,集合索引列表,过滤条件,表达式,FORMAXMINSUM PROD,目标:吨公里,for(demand(i):sum(supply(j):c(i,j)=d(i););for(supply(i):sum(demand(j):c(j,i)=e(i););,例1,约束:需求 供应,min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2);,默认:非负实数变量,4、Lingo变量定界函数,例4,约束:非负,目标与约束段,MODEL:Title Location Problem;sets:demand/1.6/:a,b,d;supply/1

37、.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;enddatamin=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););END,集合段,数据段,locatio

38、n,供应约束,需求,需求点的位置,需求量,供应,供应点,目标,需求约束,连接,结果:总吨公里数为136.228,供应量,2)改建两个新料场,需要确定新料场位置(xj,yj)和运量cij,在其它条件不变下使总吨公里数最小。,决策变量:ci j,(xj,yj)16维,非线性规划模型,例6 选址问题,目标:吨公里,约束:需求 供应,LINGO,集合段,数据段,初始段,目标与约束段,最优:85.266(吨公里),NLP:从数据段移到初始段,局部,最优:89.8835(吨公里),局部,若对新料场位置加以限制,界面,四、LINGO的菜单及对话框,1、LINGO的界面,主窗口,模型窗口Model Windo

39、w,状态栏,当前时间,当前光标位置,2、LINGO的工具栏,File|Open(F3)打开文件,File|Print(F7)打印文件,Edit|Copy(Ctrl+C)复制,Edit|Undo(Ctrl+Z)取消操作,Edit|Find(Ctrl+F)查找,LINGO|Solution(Alt+O)显示解答,Edit|Match Parenthesis(Ctrl+P)匹配括号,LINGO|Options(Ctrl+I)选项设置,Window|Close All(Alt+X)关闭所有窗口,Help|Contents(F1)在线帮助,File|New(F2)新建文件,File|Save(F4)保存

40、文件,Edit|Cut(Ctrl+X)剪切,Edit|Paste(Ctrl+V)粘贴,Edit|Redo(Ctrl+Y)恢复操作,Edit|Go To Line(Ctrl+T)定位某行,LINGO|Solve(Ctrl+S)求解模型,LINGO|Picture(Ctrl+K)模型图示,Window|Send to Back(Ctrl+B)窗口后置,Window|Tile(Alt+T)平铺窗口,上下文相关的帮助,FileExport FileUser Database InfoEditPaste Paste Special Match Parenthesis Paste FunctionSele

41、ct Font Insert New Object Links Object Properties,3、LINGO的菜单栏,LINGOLOOKGeneratePicture FileGenerateOptions,Variables(变量数量):变量总数(Total)、非线性变量数(Nonlinear)、整数变量数(Integer)。,Constraints(约束数量):约束总数(Total)、非线性约束个数(Nonlinear)。,Nonzeros(非零系数数量):总数(Total)、非线性项系数个数(Nonlinear),Generator Memory Used(K)(内存使用量),El

42、apsed Runtime(hh:mm:ss)(求解花费的时间),4、LINGO的运行状态窗口,求解器(求解程序)状态框,当前模型的类型:LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP(以I开头表示IP,以PI开头表示PIP),当前解的状态:Global Optimum,Local Optimum,Feasible,Infeasible“(不可行),Unbounded“(无界),Interrupted“(中断),Undetermined“(未确定),解的目标函数值,当前约束不满足的总量(不是不满足的约束的个数):实数(即使该值=0,当前解也可能不可行,因为这个量中

43、没有考虑用上下界命令形式给出的约束),目前为止的迭代次数,运行状态窗口,扩展的求解器(求解程序)状态框,使用的特殊求解程序:B-and-B(分枝定界算法)Global(全局最优求解程序)Multistart(用多个初始点求解的程序),目前为止找到的可行解的最佳目标函数值,目标函数值的界,特殊求解程序当前运行步数:分枝数(对B-and-B程序);子问题数(对Global程序);初始点数(对Multistart程序),有效步数,运行状态窗口,可设置80-90个控制参数,5、Options 7个选项卡,Interface界面General Solver通用求解Linear Solver线性求解Non

44、linear Solver非线性求解Integer Pre-Solver整数预处理Integer Solver整数求解Global Solver全局最优求解,LINGO系统(LINGO)主菜单,LINGO|Options命令,打开一个含有7个选项卡的窗口,通过它修改LINGO系统的各种控制参数和选项。,新的设置生效,新的设置生效,并关闭窗口,当前设置变为默认设置,下次启动LINGO时这些设置仍然有效,恢复LINGO系统定义的原始默认设置(缺省设置),废弃本次操作,退出对话框,显示本对话框的帮助信息,LINGO|Options|Interface(界面)选项卡,错误信息对话框:如果选择该选项,求

45、解程序遇到错误时将打开一个对话框显示错误,关闭该对话框后程序才会继续执行;否则,错误信息将在报告窗口显示,程序仍会继续执行,弹出屏幕:如果选择该选项,则LINGO每次启动时会在屏幕上弹出一个对话框,显示LINGO的版本和版权信息;否则不弹出,解的截断:小于等于这个值的解将报告为“0”(缺省是10-9),填充数据库表:当LINGO向电子表(如EXCEL文件)或数据库中输出数据时,如果电子表或数据库中用来接收收据的空间大于实际输出的数据占用的空间,是否对多余的表空间进行数据填充?(缺省值为不进行填充),LINGO|Options|Interface(界面)选项卡,状态栏:如果选择该选项,则LING

46、O系统在主窗口最下面一行显示状态栏;否则不显示,状态窗口:如果选择该选项,则LINGO系统每次运行LINGO|Solve命令时会在屏幕上弹出状态窗口;否则不弹出,工具栏:如果选择该选项,则显示工具栏;否则不显示,简洁输出:如果选择该选项,则LINGO系统对求解结果报告等将以简洁形式输出;否则以详细形式输出,LINGO|Options|Interface(界面)选项卡,LINGO扩展格式:模型文件的缺省保存格式是lg4格式(这是一种二进制文件,只有LINGO能读出),LINDO纯文本格式:模型文件的缺省保存格式变为LINDO格式(纯文本),LINGO纯文本格式:模型文件的缺省保存格式变为lng格

47、式(纯文本),LINGO|Options|Interface(界面)选项卡,行数限制:语法配色的行数限制(缺省为1000)。LINGO模型窗口中将LINGO关键此显示为兰色,注释为绿色,其他为黑色,超过该行数限制后则不再区分颜色。特别地,设置行数限制为0时,整个文件不再区分颜色。,括号匹配:如果选择该选项,则模型中当前光标所在处的括号及其相匹配的括号将以红色显示;否则不使用该功能,延迟:设置语法配色的延迟时间(秒,缺省为0,从最后一次击键算起)。,LINGO|Options|Interface(界面)选项卡,报告发送到命令窗口:如果选择该选项,则输出信息会发送到命令窗口;否则不使用该功能,输入

48、信息反馈:如果选择该选项,则用File|Take Command命令执行命令脚本文件时,处理信息会发送到命令窗口;否则不使用该功能,页面大小限制:命令窗口每次显示的行数的最大值为Length(缺省为没有限制),显示这么多行后会暂停,等待用户响应;每行最大字符数为Width(缺省为74,可以设定为64-200之间),多余的字符将被截断,行数限制:命令窗口能显示的行数的最大值为Maximum(缺省为800);如果要显示的内容超过这个值,每次从命令窗口滚动删除的最小行数为Minimum(缺省为400),LINGO|Options|General Solver(通用求解程序)选项卡,矩阵生成器的内存限

49、制:缺省值为32M,矩阵生成器使用的内存超过该限制,LINGO将报告The model generator ran out of memory,运行限制:迭代次数:求解一个模型时,允许的最大迭代次数(缺省值为无限),运行限制:运行时间:求解一个模型时,允许的最大运行时间(秒)(缺省值为无限),对偶计算:求解时控制对偶计算的级别,有三种可能的设置:None:不计算任何对偶信息;Prices:计算对偶价格(缺省设置);Prices and Ranges:计算对偶价格并分析敏感性;Prices,Opt Only:只计算最优行的对偶价格。,LINGO|Options|General Solver(通用

50、求解程序)选项卡,固定变量的归结、简化:求解前对固定变量的归结程度(相当于预处理程度):None:不归结;Always:总是归结;Not with global and multistart:在全局优化和多初值优化程序中不归结。,模型的重新生成:控制重新生成模型的频率,有三种可能的设置:Only when text changes:只有当模型的文本修改后才再生成模型;When text changes or with external references:当模型的文本修改或模型含有外部引用时(缺省设置);Always:每当有需要时。,LINGO|Options|General Solver(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号