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
2、 integrated package 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
3、 all of the tools 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
4、, http:/ a comprehensive modeling 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,例
5、1.如何在LINGO中求解如下的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; x12*x2; gin(x1);gin(x2);,例3。 职员时序安排模型 一项工作一周7天都需要有人(比如护士工作),每天(周一至周日)所需的最少职员数为20、16、13、16、19、14和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。注意这里我们考
6、虑稳定后的情况。 model: sets:days/monsun/: required,start; endsets data:!每天所需的最少职员数;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,并要
7、求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。 model: sets:days/monsun/: required,start; endsets data:!每天所需的最少职员数;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人,周三无
8、需安排人,周四安排6人,周五和周六都安排3人,周日无需安排人。,LINDO /LINGO软件,LINGO: Linear INteractive General Optimizer (V12.0) 求解数学规划问题 Min Z = f (x)s.t x D ( Rn ) 需要掌握的几个重要方面 基本语法结构 掌握集合(SETS)的应用 正确阅读求解报告 正确理解求解状态窗口 学会设置基本的求解选项(OPTIONS),一、Lingo基本语法,1、定义了目标函数为MIN= 2、以一个分号“;”结尾除SETS, ENDSETS, DATA , ENDDATA, END之外 3、变量可以放在约束条件右
9、端,也可放在约束条件的左端。 4、默认假定各变量非负。 5、注释:“!” 6、为、,建模时需要注意的几个基本问题,尽量使用实数优化,减少整数约束和整数变量 尽量使用光滑优化,减少非光滑约束的个数 尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等 尽量使用线性模型,减少非线性约束和非线性变量的个数 如x/y 5 改为x5y 合理设定变量上下界,尽可能给出变量初始值 模型中使用的参数数量级要适当 不同参数绝对值数量级之间差距一般要求小于3,LINGO函数LINGO有9种类型的函数: 1 基本运算符:包括算术运算符、逻辑运算符和关系运算符 2 数学函数:三角函数和常规的数学函
10、数 3 金融函数:LINGO提供的两种金融函数 4 概率函数:LINGO提供了大量概率相关的函数 5 变量界定函数:这类函数用来定义变量的取值范围 6 集操作函数:这类函数为对集的操作提供帮助 7 集循环函数:遍历集的元素,执行一定的操作的函数 8 数据输入输出函数:这类函数允许模型和外部数据源相联系, 进行数据的输入输出 9 辅助函数:各种杂类函数,过滤条件使用结果:0 1,4.1运算符及其优先级,4.1.3 关系运算符 在LINGO中,关系运算符主要是被用来指定一个表达式的左边是否等于、小于等于、或者大于等于右边,形成模型的一个约束条件。关系运算符与逻辑运算符#eq#、#le#、#ge#截
11、然不同,前者是模型中该关系运算符所指定关系的为真描述,而后者仅仅判断一个该关系是否被满足:满足为真,不满足为假。LINGO有三种关系运算符:“=”、“=”。LINGO中还能用“”表示大于等于关系。LINGO并不支持严格小于和严格大于关系运算符。然而,如果需要严格小于和严格大于关系,比如让A严格小于B: AB,那么可以把它变成如下的小于等于表达式:A+=B, 这里是一个小的正数,它的值依赖于模型中A小于B多少才算不等。,运算符的优先级,最高最低,先左后右,先括号内,后括号外,4.2 数学函数 LINGO提供了大量的标准数学函数: abs(x) 返回x的绝对值 sin(x) 返回x的正弦值,x采用
12、弧度制 cos(x) 返回x的余弦值 tan(x) 返回x的正切值 exp(x) 返回常数e的x次方 log(x) 返回x的自然对数 lgm(x) 返回x的gamma函数的自然对数 sign(x) 如果x=0时,返回不超过x的最大整数; 当x0时,返回不低于x的最大整数。 smax(x1,x2,xn) 返回x1,x2,xn中的最大值 smin(x1,x2,xn) 返回x1,x2,xn中的最小值,Lingo内部函数”,4.3 金融函数 目前LINGO提供了两个金融函数。 1fpa(I,n) 返回如下情形的净现值:单位时段利率为I,连续n个时段支付,每个时段支付单位费用。若每个时段支付x单位的费用
13、,则净现值可用x乘以fpa(I,n)算得。fpa的计算公式为. 净现值就是在一定时期内为了获得一定收益在该时期初所支付的实际费用。 例4.4 贷款买房问题 贷款金额50000元,贷款年利率5.31%,采取分期付款方式(每年年末还固定金额,直至还清)。问拟贷款10年,每年需偿还多少元? 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不是整数时,用
14、线性插值法进行计算。 2pcx(n,x) 自由度为n的2分布的累积分布函数。 3peb(a,x) 当到达负荷为a,服务系统有x个服务器且允许无穷排队时的Erlang繁忙概率。 4pel(a,x) 当到达负荷为a,服务系统有x个服务器且不允许排队时的Erlang繁忙概率。 5pfd(n,d,x) 自由度为n和d的F分布的累积分布函数。 6pfs(a,x,c) 当负荷上限为a,顾客数为c,平行服务器数量为x时,有限源的Poisson服务系统的等待或返修顾客数的期望值。a是顾客数乘以平均服务时间,再除以平均返修时间。当c和(或)x不是整数时,采用线性插值进行计算。,7phg(pop,g,n,x) 超
15、几何(Hypergeometric)分布的累积分布函数。pop表示产品总数,g是正品数。从所有产品中任意取出n(npop)件。pop,g,n和x都可以是非整数,这时采用线性插值进行计算。 8ppl(a,x) Poisson分布的线性损失函数,即返回max(0,z-x)的期望值,其中随机变量z服从均值为a的Poisson分布。 9pps(a,x) 均值为a的Poisson分布的累积分布函数。当x不是整数时,采用线性插值进行计算。 10psl(x) 单位正态线性损失函数,即返回max(0,z-x)的期望值,其中随机变量z服从标准正态分布。 11psn(x) 标准正态分布的累积分布函数。 12ptd
16、(n,x) 自由度为n的t分布的累积分布函数。 13qrand(seed) 产生服从(0,1)区间的拟随机数。qrand只允许在模型的数据部分使用,它将用拟随机数填满集属性。通常,声明一个mn的二维表,m表示运行实验的次数,n表示每次实验所需的随机数的个数。在行内,随机数是独立分布的;在行间,随机数是非常均匀的。这些随机数是用“分层取样”的方法产生的。,4.5 变量界定函数 变量界定函数实现对变量取值范围的附加限制,共4种: bin(x) 限制x为0或1 bnd(L,x,U) 限制LxU free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数 gin(x) 限制x为整数 在默认情
17、况下,LINGO规定变量是非负的,也就是说下界为0,上界为+。free取消了默认的下界为0的限制,使变量也可以取负值。bnd用于设定一个变量的上下界,它也可以取消默认下界为0的约束。,4.6 集合操作函数 LINGO提供了几个函数帮助处理集。1in(set_name,primitive_index_1 ,primitive_index_2,) 如果元素在指定集中,返回1;否则返回0。 2wrap(index,limit) 该函数返回j=index-k*limit,其中k是一个整数,取适当值保证j落在区间1,limit内。该函数相当于index模limit再加1。该函数在循环、多阶段计划编制中特
18、别有用。 3size(set_name) 该函数返回集set_name的成员个数。在模型中明确给出集大小时最好使用该函数。它的使用使模型更加数据中立,集大小改变时也更易维护。,4.7 集循环函数 集循环函数遍历整个集进行操作。其语法为 function(setname(set_index_list)|conditional_qualifier: expression_list); function相应于下面罗列的四个集循环函数之一;setname是要遍历的集;set_ index_list是集索引列表;conditional_qualifier是用来限制集循环函数的范围,当集循环函数遍历集的每
19、个成员时,LINGO都要对conditional_qualifier进行评价,若结果为真,则对该成员执行function操作,否则跳过,继续执行下一次循环。expression_list是被应用到每个集成员的表达式列表,当用的是for函数时,expression_list可以包含多个表达式,其间用逗号隔开。这些表达式将被作为约束加到模型中。当使用其余的三个集循环函数时,expression_list只能有一个表达式。如果省略set_index_list,那么在expression_list中引用的所有属性的类型都是setname集。,1for 该函数用来产生对集成员的约束。基于建模语言的标量需
20、要显式输入每个约束,不过for函数允许只输入一个约束,然后LINGO自动产生每个集成员的约束。 例4.10 产生序列1,4,9,16,25 model: sets:number/15/:x; endsetsfor(number(I): x(I)=I2); end,2sum 该函数返回遍历指定的集成员的一个表达式的和。 例4.11 求向量5,1,3,4,6,10前5个数的和。 model: data:N=6; enddata sets:number/1N/:x; endsets data:x = 5 1 3 4 6 10; enddatas=sum(number(I) | I #le# 5: x
21、); end,3min和max 返回指定的集成员的一个表达式的最小值或最大值。 例4.12 求向量5,1,3,4,6,10前5个数的最小值,后3个数的最大值。 model: data:N=6; enddata sets:number/1N/:x; endsets data:x = 5 1 3 4 6 10; enddataminv=min(number(I) | I #le# 5: x);maxv=max(number(I) | I #ge# N-2: x); end,4.8 输入和输出函数 输入和输出函数可以把模型和外部数据比如文本文件、数据库和电子表格等连接起来。 1file函数该函数用从
22、外部文件中输入数据,可以放在模型中任何地方。该函数的语法格式为file(filename)。这里filename是文件名,可以采用相对路径和绝对路径两种表示方式。file函数对同一文件的两种表示方式的处理和对两个不同的文件处理是一样的,这一点必须注意。,2text函数 该函数被用在数据部分用来把解输出至文本文件中。它可以输出集成员和集属性值。其语法为 text(filename)这里filename是文件名,可以采用相对路径和绝对路径两种表示方式。如果忽略filename,那么数据就被输出到标准输出设备(大多数情形都是屏幕)。text函数仅能出现在模型数据部分的一条语句的左边,右边是集名(用来
23、输出该集的所有成员名)或集属性名(用来输出该集属性的值)。我们把用接口函数产生输出的数据声明称为输出操作。输出操作仅当求解器求解完模型后才执行,执行次序取决于其在模型中出现的先后。,3ole函数 OLE是从EXCEL中引入或输出数据的接口函数,它是基于传输的OLE技术。OLE传输直接在内存中传输数据,并不借助于中间文件。当使用OLE时,LINGO先装载EXCEL,再通知EXCEL装载指定的电子数据表,最后从电子数据表中获得Ranges。为了使用OLE函数,必须有EXCEL5及其以上版本。OLE函数可在数据部分和初始部分引入数据。 OLE可以同时读集成员和集属性,集成员最好用文本格式,集属性最好
24、用数值格式。原始集每个集成员需要一个单元(cell),而对于n元的派生集每个集成员需要n个单元,这里第一行的n个单元对应派生集的第一个集成员,第二行的n个单元对应派生集的第二个集成员,依此类推。 OLE只能读一维或二维的Ranges(在单个的EXCEL工作表(sheet)中),但不能读间断的或三维的Ranges。Ranges是自左而右、自上而下来读。,4ranged(variable_or_row_name) 为了保持最优基不变,变量的费用系数或约束行的右端项允许减少的量。 5rangeu(variable_or_row_name) 为了保持最优基不变,变量的费用系数或约束行的右端项允许增加的
25、量。 6status() 返回LINGO求解模型结束后的状态: 0 Global Optimum(全局最优) 1 Infeasible(不可行) 2 Unbounded(无界) 3 Undetermined(不确定) 4 Feasible(可行) 5 Infeasible or Unbounded(通常需要关闭“预处理”选项后重新求解模型,以确定模型究竟是不可行还是无界) 6 Local Optimum(局部最优) 7 Locally Infeasible(局部不可行,尽管可行解可能存在,但是LINGO并没有找到一个) 8 Cutoff(目标函数的截断值被达到),9 Numeric Error
26、(求解器因在某约束中遇到无定义的算术运算而停止)通常,如果返回值不是0、4或6时,那么解将不可信,几乎不能用。该函数仅被用在模型的数据部分来输出数据。例4.17 model: min=sin(x); data:text()=status(); enddata end 部分计算结果为:Local optimal solution found at iteration: 33Objective value: -1.0000006Variable Value Reduced CostX 4.712388 0.000000 结果中的6就是status()返回的结果,表明最终解是局部最优的。7duald
27、ual(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菜单中选用“求解”命令、单击“Slove”按钮或按Ctrl+
28、S组合键可以将当前模型送入内存求解。 2 求解结果(Solution)从LINGO菜单中选用“Solution”命令、单击“Solution”按钮或直接按Ctrl+O组合键可以打开求解结果的对话框。这里可以指定查看当前内存中求解结果的那些内容。 3 查看(Look) 从LINGO菜单中选用“Look”命令或直接按Ctrl+L组合键可以查看全部的或选中的模型文本内容。 4 灵敏性分析(Range,Ctrl+R) 用该命令产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分析是在求解模型时作出的,因此在求解模型时灵敏性分析
29、是激活状态,但是默认是不激活的。为了激活灵敏性分析,运行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吨。 目标:制定每天的供应计划,即从A, B两料
30、场分别向各工地运送多少吨水泥,使总的吨公里数最小。,解:,决策变量:料场j到工地i的运量 cij 12维 线性规划模型 lingo表达式?,目标:吨公里,约束:需求供应,基本使用,1、Lingo建模语言,构成:4个段,目标与约束段 集合段(SETS ENDSETS) 数据段(DATA ENDDATA) 初始段(INIT ENDINIT) (计算段 (CALC ENDCALC)),目标与约束段,MODEL: Title Location Problem; sets:demand/16/:a,b,d;supply/12/:x,y,e;link(demand,supply):c; endsets d
31、ata: 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; enddata init: x,y=5,1,2,7; endinit min=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,集合段,数据段,初始段,供应约束,需求,需求点的位置,供需量,
32、供应,初始点,目标,需求约束,连接,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,
33、定义数组下标集合demand/16/表示6个建筑工地 a,b,d称为该集合的属性 表示坐标(ai,bi) 、水泥日用量di 定义数组下标集合supply/12/表示6个建筑工地 该集合的属性x,y,e 表示坐标(xj,yj) 、日储量ej 定义数组下标集合link(demand,supply)表示62个料场到建筑工地的连接 该集合的属性c 表示每个料场与建筑工地之间供应计划c i j,1到6的整数,建立下标集合,例4,需求点的位置,供需量,sets: demand/16/:a,b,d; supply/12/:x,y,e; link(demand,supply):c; endsets,data:
34、 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; enddata,赋值,需求,供应,连接,基本 集合,派生 集合,Lingo 建模语言集合段 数据段,3、定义集合Set,直接把元素列举出来 定义格式 集合名 元素列表 属性列表setname /member_list/ : attribute_list; 可选项 元素列表 显式列举法列出全部元素, 用逗号或空格分开 隐式列举法 1n 属性列表缺省集合可在程序中作为一循环变量使用,构造更复杂的派生集合 元
35、素列表缺省必须在数据段给出元素列表赋值,基本集合primary set,派生集合derived set,基于其它集合而派生出来的二维或多维集合 定义格式 集合名 父集合列表 元素列表 属性列表setname(parent_set_list) /member_list/ : attribute_list; 元素列表缺省 所有组合稠密集合、或数据段列表赋值 元素列表稀疏集合 元素列表法枚举 元素过滤法利用过滤条件 setname(parent_set_list) |filtrate_condition :attribute_list;,集合的类型,集合派生集合 基本集合稀疏集合 稠密集合元素列表法
36、 元素过滤法 直接列举法 隐式列举法,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; ENDSETS,SETS:STUDENTS /S1S8/;PAIRS( STUDENTS, STUDENTS) | ENDSETS,3、Lingo集合循环函数,难点!重点!,循环操作函数集合上的元素下标:,集
37、合函数名,function(setname (set_index_list)|condition:expression_list);,集合名,集合索引列表,过滤条件,表达式,FOR MAX MIN SUM 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,约束:非负
38、,目标与约束段,MODEL: Title Location Problem; sets:demand/16/:a,b,d;supply/12/:x,y,e;link(demand,supply):c; endsets data: 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; enddata min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2); for(demand(i):sum(supply(
39、j):c(i,j)=d(i);); for(supply(i):sum(demand(j):c(j,i)=e(i);); END,集合段,数据段,location,供应约束,需求,需求点的位置,需求量,供应,供应点,目标,需求约束,连接,结果:总吨公里数为136.228,供应量,2)改建两个新料场,需要确定新料场位置(xj,yj)和运量cij ,在其它条件不变下使总吨公里数最小。,决策变量: ci j,(xj,yj)16维,非线性规划模型,例6 选址问题,目标:吨公里,约束:需求供应,LINGO,集合段,数据段,初始段,目标与 约束段,最优:85.266(吨公里 ),NLP:从数据段移到初始段
40、,局部,最优:89.8835(吨公里 ),局部,若对新料场位置加以限制,界面,四、 LINGO的菜单及对话框,1、LINGO的界面,主窗口,模型窗口 Model Window,状态栏,当前时间,当前光标 位置,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|Opti
41、ons (Ctrl+I) 选项设置,Window|Close All(Alt+X) 关闭所有窗口,Help|Contents (F1) 在线帮助,File|New (F2) 新建文件,File|Save (F4) 保存文件,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) 窗口后置,W
42、indow|Tile (Alt+T)平铺窗口,上下文相关的帮助,File Export File User Database Info Edit Paste Paste Special Match Parenthesis Paste Function Select Font Insert New Object Links Object Properties,3、LINGO的菜单栏,LINGO LOOK Generate Picture File Generate Options,Variables(变量数量):变量总数(Total)、非线性变量数(Nonlinear)、 整数变量数(Integ
43、er)。,Constraints(约束数量):约束总数(Total)、非线性约束个数(Nonlinear)。,Nonzeros(非零系数数量):总数(Total)、非线性项系数个数(Nonlinear),Generator Memory Used (K) (内存使用量),Elapsed Runtime (hh:mm:ss)(求解花费的时间),4、LINGO的运行状态窗口,求解器(求解程序)状态框,当前模型的类型 :LP,QP,ILP,IQP,PILP, PIQP,NLP,INLP,PINLP (以I开头表示IP,以PI开头表示PIP),当前解的状态 : “Global Optimum“, “L
44、ocal Optimum“, “Feasible“, “Infeasible“(不可行), “Unbounded“(无界), “Interrupted“(中断), “Undetermined“(未确定),解的目标函数值,当前约束不满足的总量(不是不满足的约束的个数):实数(即使该值=0,当前解也可能不可行,因为这个量中没有考虑用上下界命令形式给出的约束),目前为止的迭代次数,运行状态窗口,扩展的求解器(求解程序)状态框,使用的特殊求解程序 : B-and-B (分枝定界算法) Global (全局最优求解程序) Multistart(用多个初始点求解的程序),目前为止找到的可行解的最佳目标函数
45、值,目标函数值的界,特殊求解程序当前运行步数: 分枝数(对B-and-B程序); 子问题数(对Global程序); 初始点数(对Multistart程序),有效步数,运行状态窗口,可设置80-90个控制参数,5、Options 7个选项卡,Interface界面 General Solver通用求解 Linear Solver线性求解 Nonlinear Solver非线性求解 Integer Pre-Solver整数预处理 Integer Solver整数求解 Global Solver全局最优求解,LINGO系统(LINGO)主菜单,LINGO|Options命令,打开一个含有7个选项卡的
46、窗口,通过它修改LINGO系统的各种控制参数和选项。,新的设置生效,新的设置生效,并关闭窗口,当前设置变为默认设置,下次启动LINGO时这些设置仍然有效,恢复LINGO系统定义的原始默认设置(缺省设置),废弃本次操作,退出对话框,显示本对话框的帮助信息,LINGO|Options|Interface(界面)选项卡,错误信息对话框:如果选择该选项,求解程序遇到错误时将打开一个对话框显示错误,关闭该对话框后程序才会继续执行;否则,错误信息将在报告窗口显示,程序仍会继续执行,弹出屏幕:如果选择该选项,则LINGO每次启动时会在屏幕上弹出一个对话框,显示LINGO的版本和版权信息;否则不弹出,解的截断
47、:小于等于这个值的解将报告为“0” (缺省是10-9),填充数据库表:当LINGO向电子表(如EXCEL文件)或数据库中输出数据时,如果电子表或数据库中用来接收收据的空间大于实际输出的数据占用的空间,是否对多余的表空间进行数据填充?(缺省值为不进行填充),LINGO|Options|Interface(界面)选项卡,状态栏:如果选择该选项,则LINGO系统在主窗口最下面一行显示状态栏;否则不显示,状态窗口:如果选择该选项,则LINGO系统每次运行LINGO| Solve命令时会在屏幕上弹出状态窗口;否则不弹出,工具栏:如果选择该选项,则显示工具栏;否则不显示,简洁输出:如果选择该选项,则LIN
48、GO系统对求解结果报告等将以简洁形式输出;否则以详细形式输出,LINGO|Options|Interface(界面)选项卡,LINGO扩展格式:模型文件的缺省保存格式是lg4格式(这是一种二进制文件,只有LINGO能读出),LINDO纯文本格式:模型文件的缺省保存格式变为LINDO格式(纯文本),LINGO纯文本格式:模型文件的缺省保存格式变为lng格式(纯文本),LINGO|Options|Interface(界面)选项卡,行数限制:语法配色的行数限制(缺省为1000)。LINGO模型窗口中将LINGO关键此显示为兰色,注释为绿色,其他为黑色,超过该行数限制后则不再区分颜色。特别地,设置行数限制为0时,整个文件不再区分颜色。,