收藏 分销(赏)

lingo入门教程.ppt

上传人:天**** 文档编号:5887251 上传时间:2024-11-22 格式:PPT 页数:55 大小:658.50KB
下载 相关 举报
lingo入门教程.ppt_第1页
第1页 / 共55页
lingo入门教程.ppt_第2页
第2页 / 共55页
lingo入门教程.ppt_第3页
第3页 / 共55页
lingo入门教程.ppt_第4页
第4页 / 共55页
lingo入门教程.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,LINGO软件的基本使用方法,1,1.LINGO入门,2,LINGO的界面,LINGO,软件的主窗口(用户界面),所有其他窗口都在这个窗口之内。,模型窗口(,Model Window,),用于输入,LINGO,优化模型(即,LINGO,程序)。,状态行(最左边显示“,Ready”,,表示“准备就绪”),当前时间,当前光标的位置,3,一个简单的LINGO程序,例,直接用LINGO来解如下二次规划问题:,输入窗口如下:,4,程序语句输入的备注:,LINGO,总是根据“,MAX=”,或“,MIN=”,寻找目标

2、函数,,而除注释语句和,TITLE,语句外的其他语句都是约束条件,因此,语句的顺序并不重要,。,限定变量取整数值的语句为“,GIN(X1)”,和“,GIN(X2)”,,不可以写成“,GIN(2)”,,否则,LINGO,将把这个模型看成没有整数变量。,LINGO,中函数一律需要以“,”,开头,,其中整型变量函数(,BIN,、,GIN,)和上下界限定函数(,FREE,、,SUB,、,SLB,),,BIN,函数在,0,1,规划中有广泛应用,BND(L,X,U),表示,L=X=U,5,输出结果:,运行菜单命令“LINGO|Solve”,最优整数解,X=(35,65),最大利润=11077.5,6,一个

3、简单的LINGO程序,LINGO的基本用法的几点,注意,事项,LINGO,中不区分大小写字母,;变量和行名可以超过,8,个字符,但不能超过,32,个字符,且必须以字母开头。,用,LINGO,解优化模型时,已假定所有变量非负,(,除非用限定变量取值范围的函数,free,或,sub,或,slb,另行说明,),。,变量可以放在约束条件的右端,(,同时数字也可放在约束条件的左端,),。但为了提高,LINGO,求解时的效率,应尽可能采用线性表达式定义目标和约束,(,如果可能的话,),。,语句是组成,LINGO,模型的基本单位,每个语句都以分号结尾,,编写程序时应注意模型的可读性。例如:一行只写一个语句,

4、按照语句之间的嵌套关系对语句安排适当的缩进,增强层次感。,以感叹号开始的是说明语句,(,说明语句也需要以分号结束,),)。,7,2.在LINGO中使用集合,8,基本集合与派生集合,例 建筑工地的位置(用平面坐标,a,b,表示,距离单位:公里)及水泥日用量,d,(吨)下表给出。有两个临时料场位于P(5,1),Q(2,7),日储量各有20吨。从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。两个新的料场应建在何处,节省的吨公里数有多大?,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,9,建立

5、模型,记工地的位置为 ,水泥日用量为 ;料场位置为 ,日储量为 ;从料场 向工地 的运送量为 。,使用现有临时料场时,决策变量只有 (非负),所以这是LP模型;当为新建料场选址时决策变量为 和 ,由于目标函数 对 是非线性的,所以在新建料场时是NLP模型。先解NLP模型,而把现有临时料场的位置作为初始解告诉LINGO。,10,本例中集合的概念,利用集合的概念,可以定义需求点DEMAND和供应点SUPPLY两个集合,分别有6个和2个元素(下标)。但决策变量(运送量)与集合DEMAND和集合SUPPLY都有关系的。该如何定义这样的属性?,集合的属性相当于以集合的元素为下标的数组。这里的 相当于二维

6、数组。它的两个下标分别来自集合DEMAND和SUPPLY,因此可以定义一个由二元对组成的新的集合,然后将 定义成这个新集合的属性。,11,输入程序,定义了三个集合,其中LINK在前两个集合DEMAND 和SUPPLY的基础上定义,表示集合LINK中的元素就是集合DEMAND 和SUPPLY的元素组合成的有序二元组,,从数学上看LINK是DEMAND 和SUPPLY的笛卡儿积,也就是说,LINK=(S,T)|SDEMAND,TSUPPLY,因此,其属性C也就是一个6*2的矩阵(或者说是含有12个元素的二维数组)。,LINGO建模语言也称为矩阵生成器(MATRIX GENERATOR)。类似DEM

7、AND 和SUPPLY直接把元素列举出来的集合,称为,基本集合(primary set),而把LINK这种基于其它集合而派生出来的二维或多维集合称为,派生集合(derived set),。由于是DEMAND 和SUPPLY生成了派生集合LINK,所以DEMAND 和SUPPLY 称为LINK的,父集合,。,12,输入程序,初始段,INGO对数据是按列赋值的,语句的实际赋值顺序是X=(5,2),Y=(1,7),而不是X=(5,1),Y=(2,7),等价写法:,“,X=5,2,;,Y=1,7,;”,同理,数据段中对常数数组A,B的赋值语句也可以写成,A,B=1.25 1.25 8.75 0.75

8、0.5 4.75 5.75 5 3 6.5 7.25 7.75;,13,输入程序,定义目标和约束,与前例的方法是类似(这里包含了派生集合),请特别注意进一步体会集合函数SUM和FOR的用法。,由于新建料场的位置理论上讲可以是任意的,所以在约束的最后(模型的“END”语句上面的一行)用free函数取消了变量X、Y的非负限制,在程序开头用TITLE语句对这个模型取了一个标题“LOCATION PROBLEM;并且对目标行(OBJ)和两类约束(DEMAND_CON、SUPPLY_CON)分别进行了命名(请特别注意这里约束命名的特点)。,14,解答:运行菜单命令“LINGO|Solve”,局部最优解X

9、(1)=7.249997,X(2)=5.695940,Y(1)=7.749998,Y(2)=4.928524,C(略),,最小运量=89.8835(吨公里)。,问题:最小运量89.8835是不是全局最优,是用“LINGO|Options”菜单命令打开选项对话框,在“Global Solver”选项卡上选择“Use Global Solver”,激活全局最优求解程序。,15,问题:最小运量89.8835是不是全局最优,为减少计算工作量,对X,Y的取值再做一些限制。虽然理论上新建料场的位置可以是任意的,但显然最佳的料场位置不应该离工地太远,至少不应该超出现在6个工地所决定的坐标的最大、最小值决定的

10、矩形之外,即:0.5=x=8.75,0.75=y=7.75.,可以用bnd函数加上这个条件取代模型END上面的行,运行NLP模型,全局最优求解程序花费的时间仍然很长,运行27分35秒时人为终止求解(按下“Interrupt Solver”按钮)得到左边模型窗口和全局求解器的状态窗口,此时目标函数值的下界(Obj Bound=85.2638)与目前得到的最好的可行解的目标函数值(Best Obj=85.2661)相差已经非常小,可以认为已经得到了全局最优解。,16,计算结果,工地与料场示意图:“*”表示料场,“+”表示工地,可以认为是模型的最后结果,附注:如果要把料厂P(5,1),Q(2,7)的

11、位置看成是已知并且固定的,这时是LP模型。只需要把初始段的“X Y=5,1,2,7;”语句移到数据段就可以了。此时,运行结果告诉我们得到全局最优解(变量C的取值这里略去),最小运量136.2275(吨公里)。,17,稠密集合与稀疏集合,包含了两个基本集合构成的所有二元有序对的派生集合称为,稠密集合(简称稠集),。有时候,在实际问题中,一些属性(数组)只在笛卡儿积的一个真子集合上定义,这种派生集合称为,稀疏集合(简称疏集),。,例(最短路问题)在纵横交错的公路网中,货车司机希望找到一条从一个城市到另一个城市的最短路.下图表示的是公路网,节点表示货车可以停靠的城市,弧上的权表示两个城市之间的距离(

12、百公里).那么,货车从城市S出发到达城市T,如何选择行驶路线,使所经过的路程最短?,S,T,A,1,A,2,A,3,B,1,B,2,C,1,C,2,6,3,3,6,6,5,8,7,4,6,7,8,9,5,6,18,S,T,A,1,A,2,A,3,B,1,B,2,C,1,C,2,6,3,3,6,6,5,8,7,4,6,7,8,9,5,6,分析,假设从S到T的最优行驶路线 P 经过城市C,1,则P中从S到C,1,的子路也一定是从S到C,1,的最优行驶路线;,假设 P 经过城市C,2,则P中从S到C,2,的子路也一定是从S到C,2,的最优行驶路线.,因此,为得到从S到T的最优行驶路线,只需要先求出从

13、S到C,k,(,k,=1,2)的最优行驶路线,就可以方便地得到从S到T的最优行驶路线.,同样,为了求出从S到C,k,(,k,=1,2)的最优行驶路线,只需要先求出从S到B,j,(,j,=1,2)的最优行驶路线;,为了求出从S到B,j,(,j,=1,2)的最优行驶路线,只需要先求出从S到A,i,(,i,=1,2,3)的最优行驶路线.而S到A,i,(,i,=1,2,3)的最优行驶路线是很容易得到的(实际上,此例中S到A,i,(,i=,1,2,3)只有唯一的道路),19,分析,S,T,A,1,A,2,A,3,B,1,B,2,C,1,C,2,6,3,3,6,6,5,8,7,4,6,7,8,9,5,6,

14、此例中可把从S到T的行驶过程分成4个阶段,即 SA,i,(,i,=1,2或3),A,i,B,j,(,j,=1或2),B,j,C,k,(,k,=1或2),C,k,T.记,d,(,Y,X,)为城市,Y,与城市,X,之间的直接距离(若这两个城市之间没有道路直接相连,则可以认为直接距离为),用,L,(X)表示城市S到城市X的最优行驶路线的路长:,20,本例的LINGO求解,“CITIES”(城市):一个基本集合(元素通过枚举给出),L:CITIES对应的属性变量(我们要求的最短路长),“ROADS”(道路):由CITIES导出的一个派生集合(请特别注意其用法),由于只有一部分城市之间有道路相连,所以不

15、应该把它定义成稠密集合,将其元素通过枚举给出,这就是一个稀疏集合。,D:稀疏集合ROADS对应的属性变量(给定的距离),21,本例的计算,S,T,A,1,A,2,A,3,B,1,B,2,C,1,C,2,6,3,3,6,6,5,8,7,4,6,7,8,9,5,6,所以,从S到T的最优行驶路线的路长为20.进一步分析以上求解过程,可以得到从S到T的最优行驶路线为,S A,3,B,2,C,1,T.,这种计算方法在数学上称为,动态规划,(Dynamic Programming),22,本例的LINGO求解,“CITIES”(城市):一个基本集合(元素通过枚举给出),L:CITIES对应的属性变量(我们

16、要求的最短路长),“ROADS”(道路):由CITIES导出的一个派生集合(请特别注意其用法),由于只有一部分城市之间有道路相连,所以不应该把它定义成稠密集合,将其元素通过枚举给出,这就是一个稀疏集合。,D:稀疏集合ROADS对应的属性变量(给定的距离),23,本例的LINGO求解,从模型中还可以看出:这个LINGO程序可以没有目标函数,这在LINGO中,可以用来找可行解(解方程组和不等式组)。,在数据段对L进行赋值,只有L(S)=0已知,后面的值为空(但位置必须留出来,即逗号“,”一个也不能少,否则会出错)。如果这个语句直接写成“L=0;”,语法上看也是对的,但其含义是L所有元素的取值全部为

17、0,所以也会与题意不符。,24,本例的LINGO求解,虽然集合CITIES中的元素不是数字,但当它以CITIES(I)的形式出现在循环中时,引用下标I却实际上仍是正整数,也就是说I指的正是元素在集合中的位置(顺序),一般称为元素的索引(INDEX)。,在for循环中的过滤条件里用了一个函数“index”,其作用是返回一个元素在集合中的索引值,这里index(S)=1(即元素S在集合中的索引值为1),所以逻辑关系式“I#GT#index(S)”可以可以直接等价地写成“I#GT#1”。这里index(S)实际上还是index(CITIES,S)的简写,即返回S在集合CITIES中的索引值。,25,

18、本例的LINGO求解结果,从S到T的最优行驶路线的路长为20(进一步分析,可以得到最优行驶路线为S A3 B2 C1 T)。,本例中定义稀疏集合ROADS的方法是将其元素通过枚举给出,有时如果元素比较多,用起来不方便。另一种定义稀疏集合的方法是“元素过滤”法,能够从笛卡儿积中系统地过滤下来一些真正的元素。,26,例 某班8名同学准备分成4个调查队(每队两人)前往4个地区进行社会调查。这8名同学两两之间组队的效率如下表所示(由于对称性,只列出了严格上三角部分),问如何组队可以使总效率最高?,学生,S1,S2,S3,S4,S5,S6,S7,S8,S1,-,9,3,4,2,1,5,6,S2,-,-,

19、1,7,3,5,2,1,S3,-,-,-,4,4,2,9,2,S4,-,-,-,-,1,5,5,2,S5,-,-,-,-,-,8,7,6,S6,-,-,-,-,-,-,2,3,S7,-,-,-,-,-,-,-,4,27,分析,这是一个匹配(MATCHING)问题。把上表的效率矩阵记为BENEFIT(由于对称性,这个矩阵只有严格上三角部分共28个数取非零值)。,用MATCH(Si,Sj)=1表示同学Si,Sj组成一队,而MATCH(Si,Sj)=0表示Si,Sj不组队。由于对称性,只需考虑i=,大于等于),(在优化模型中,约束一般没有严格小于、严格大于关系),运算符的优先级,优先级,最高 最低,

20、运算符,#NOT#,(负号),*/,+,(减法),#EQ#NE#GT#GE#LT#LE#,#AND#OR#,36,基本的数学函数,在LINGO中建立优化模型时可以引用大量的内部函数,这些函数以”打头。LINGO中包括相当丰富的数学函数,这些函数的用法非常简单,下面一一列出。,ABS(X):绝对值函数,返回X的绝对值。,COS(X):余弦函数,返回X的余弦值(X的单位是弧度)。,EXP(X):指数函数,返回,FLOOR(X):取整函数,返回X的整数部分(向最靠近0的方向取整)。,LGM(X):返回X的伽玛(gamma)函数的自然对数值(当X为整数时LGM(X)=LOG(X-1)!;当X不为整数时

21、,采用线性插值得到结果)。,LOG(X):自然对数函数,返回X的自然对数值。,的值(其中,e=,2.718281.)。,37,基本的数学函数,MOD(X,Y):模函数,返回X对Y取模的结果,即X除以Y的余数,这里X和Y应该是整数。,POW(X,Y):指数函数,返回XY的值。,SIGN(X):符号函数,返回X的符号值(X=0时返回+1)。,SIN(X):正弦函数,返回X的正弦值(X的单位是弧度)。,SMAX(list):最大值函数,返回一列数(list)的最大值。,SMIN(list):最小值函数,返回一列数(list)的最小值。,SQR(X):平方函数,返回X的平方(即X*X)的值。,SQRT

22、(X):开平方函数,返回X的正的平方根的值。,TAN(X):正切函数,返回X的正切值(X的单位是弧度)。,38,集合循环函数,集合上的元素(下标)进行循环操作的函数,一般用法如下:,function(setname (set_index_list)|condition:expression_list);,其中:,function 集合函数名,FOR、MAX、MIN、PROD、SUM之一;,Setname 集合名;,set_index_list 集合索引列表(不需使用索引时可以省略);,Condition 用逻辑表达式描述的过滤条件(通常含有索引,无条件时可以省略);,expression_li

23、st 一个表达式(对FOR函数,可以是一组表达式。,39,集合循环函数,五个集合函数名的含义:,FOR(集合元素的循环函数):对集合setname的每个元素独立地生成表达式,表达式由expression_list描述(通常是优化问题的约束)。,MAX(集合属性的最大值函数):返回集合setname上的表达式的最大值。,MIN(集合属性的最小值函数):返回集合setname上的表达式的最小值。,PROD(集合属性的乘积函数):返回集合setname上的表达式的积。,SUM(集合属性的求和函数):返回集合setname上的表达式的和。,40,集合操作函数,INDEX(set_name,primit

24、ive_set_element),给出元素primitive_set_element在集合set_name中的索引值(即按定义集合时元素出现顺序的位置编号)。省略set_name,LINGO按模型中定义的集合顺序找到第一个含有该元素的集合,并返回索引值。如果没有找到该元素,则出错。,注:Set_name的索引值是正整数且只能位于1和元素个数之间。例:定义一个女孩姓名集合(GIRLS)和男孩姓名集合(BOYS):,SETS:,GIRLS/DEBBIE,SUE,ALICE/;,BOYS/BOB,JOE,SUE,FRED/;,ENDSETS,都有SUE,GIRLS在BOYS前定义,调用INDEX(S

25、UE)将返2,相当于INDEX(GIRLS,SUE)。要找男孩中名为SUE的小孩的索引,应该使用INDEX(BOYS,SUE),返3。,41,集合操作函数,IN(set_name,primitive_index_1,primitive_index_2.),判断一个集合中是否含有某个索引值。如果集合set_name中包含由索引primitive_index_1,primitive_index_2.所对应元素,则返回1(逻辑值“真”),否则返回0(逻辑值“假”)。索引用“&1”、“&2”或INDEX函数等形式给出,这里“&1”表示对应于第1个父集合的元素的索引值,“&2”表示对应于第2个父集合的元

26、素的索引值。,例:定义一个集合STUDENTS(基本集合),派生出集合PASSED和FAILED,定义:,SETS:,STUDENTS/ZHAO,QIAN,SUN,LI/:;,PASSED(STUDENTS)/QIAN,SUN/:;,FAILED(STUDENTS)|#NOT#IN(PASSED,ENDSETS,42,如果集合C是由集合A,B派生的,例如:,SETS:,A/1.3/:;,B/X Y Z/:;,C(A,B)/1,X 1,Z 2,Y 3,X/:;,ENDSETS,判断C中是否包含元素(2,Y),则可以利用以下语句:,X=IN(C,INDEX(A,2),INDEX(B,Y);,对本例

27、,结果是X=1(真)。,注:X既是集合B的元素,又对X赋值1,在LINGO中这种表达是允许的,因为前者是集合的元素,后者是变量,逻辑上没有关系(除了同名外),所以不会出现混淆。,集合操作函数,IN(set_name,primitive_index_1,primitive_index_2.),43,WRAP(I,N),此函数对N1无定义,当I位于区间1,N内时直接返回I;一般地,返回 J=I-K*N,其中J位于区间1,N,K为整数。即,WRAP(I,N)=MOD,(,I,,,N,)。,但当,MOD(I,N)=0,时,WRAP(I,N)=N.,此函数可以用来防止集合的索引值越界。,用户在编写LIN

28、GO程序时,应注意避免LINGO模型求解时出现集合的索引值越界的错误。,集合操作函数,SIZE(set_name),返回数据集set_name中包含元素的个数。,44,变量定界函数,对变量的取值范围附加限制,共有以下四种:,BND(L,X,U),:限制,L=X=U,。注意,LINGO,中没有与,LINDO,命令,SLB,、,SUB,类似的函数,SLB,和,SUB,BIN(X),:限制,X,为,0,或,1,。注意,LINDO,中的命令是,INT,,但,LINGO,中这个函数的名字却不是,INT(X),FREE(X),:,取消对,X,的符号限制(即可取负数、,0,或正数),GIN(X),:,限制,

29、X,为整数,45,概率相关函数,PSN(X),:标准正态分布函数,即返回标准正态分布的分布函数在,X,点的取值。,PSL(X),:标准正态线性损失函数,即返回,MAX(0,Z-X),的期望值,其中,Z,为标准正态随机变量。,PPS(A,X),:,Poisson,分布函数,即返回均值为,A,的,Poisson,分布的分布函数在,X,点的取值(当,X,不是整数时,采用线性插值进行计算)。,PPL(A,X),:,Poisson,分布的线性损失函数,即返回,MAX(0,Z-X),的期望值,其中,Z,为均值为,A,的,Poisson,随机变量。,PBN(P,N,X),:二项分布函数,即返回参数为(,N,

30、,,P,)的二项分布的分布函数在,X,点的取值(当,N,和(或),X,不是整数时,采用线性插值进行计算)。,46,PHG(POP,G,N,X),:超几何(,Hypergeometric,)分布的分布函数。也就是说,返回如下概率:当总共有,POP,个球,其中,G,个是白球时,那么随机地从中取出,N,个球,白球不超过,X,个的概率。当,POP,,,G,,,N,和(或),X,不是整数时,采用线性插值进行计算。,PEL(A,X),:当到达负荷(强度)为,A,,服务系统有,X,个服务器且不允许排队时的,Erlang,损失概率。,PEB(A,X),:当到达负荷(强度)为,A,,服务系统有,X,个服务器且允

31、许无穷排队时的,Erlang,繁忙概率。,PFS(A,X,C),:当负荷上限为,A,,顾客数为,C,,并行服务器数量为,X,时,有限源的,Poisson,服务系统的等待或返修顾客数的期望值。(,A,是顾客数乘以平均服务时间,再除以平均返修时间。当,C,和(或),X,不是整数时,采用线性插值进行计算)。,概率相关函数,47,PFD(N,D,X),:自由度为,N,和,D,的,F,分布的分布函数在,X,点的取值。,PCX(N,X),:自由度为,N,的分布的分布函数在,X,点的取值。,PTD(N,X),:自由度为,N,的,t,分布的分布函数在,X,点的取值。,QRAND(SEED),:返回,0,与,1

32、,之间的多个拟均匀随机数(,SEED,为种子,缺省时取当前计算机时间为种子)。该函数只能用在数据段,拟均匀随机数可以认为是“超均匀”的随机数,需要详细了解“拟均匀随机数(,quasi-random uniform numbers,)”请进一步参阅,LINGO,的使用手册。,RAND(SEED),:返回,0,与,1,之间的一个伪均匀随机数(,SEED,为种子)。,概率相关函数,48,文件输入输出函数,FILE(filename,),当前模型引用其他,ASCII,码文件中的数据或文本时可以采用该语句(但不允许嵌套使用),其中,filename,为存放数据的文件名,该文件中记录之间用“,”,分开。,

33、ODBC,提供,LINGO,与,ODBC,(,Open Data Base Connection,,开放式数据库连接)的接口。,OLE,提供,LINGO,与,OLE(Object,Linking and,Embeding,),接口。,POINTER(N),在,Windows,下使用,LINGO,的动态连接库,DLL,,直接从共享的内存中传送数据。,TEXT(filename,),用于数据段中将解答结果送到文本文件,filename,中,当省略,filename,时,结果送到标准的输出设备(通常就是屏幕)。,filename,中可以带有文件路径,没有指定路径时表示在当前目录,如果这个文件已经存在

34、,将会被覆盖。,49,结果报告函数,ITERS(),只能在程序的数据段使用,调用时不需要任何参数,返回,LINGO,求解器计算所使用的总迭代次数。例如:,TEXT()=ITERS();,将迭代次数显示在屏幕上。,NEWLINE(n,),在输出设备上输出,n,个新行。,STRLEN(string,),返回字串“,string”,的长度,如,STRLEN(123),返回值为,3,。,50,NAME(var_or_row_refernce,),返回变量名或行名。,例:,SETS:,WH/WH1.WH3/,;!,WH,表示仓库的集合;,C/C1.C4/;,!,C,表示顾客的集合;,ROAD,(,WH,

35、C,):,X;!ROAD,表示仓库到顾客的道路集合;,!,X,表示某个仓库对某个顾客供货数;,ENDSETS,DATA:,TEXT()=WRITEFOR(ROAD(I,J)|,X(I,J)#GT#0:NAME(X),X,NEWLINE(1);,ENDDATA,结果报告函数,51,NAME(var_or_row_refernce,),返回变量名或行名。,输出结果示意如下,(,这里没有详细交待属性,X,当前的取值,),:,X(WH1,C1)2,X(WH1,C2)17,X(WH1,C3)1,X(WH2,C1)13,X(WH2,C4)12,X(WH3,C3)21,注:“变量”是指“数组元素”,X(WH

36、1,C1),、,X(WH2,C4),等,,即属性加上相应的下标(集合元素)。,同理,约束名也是指模型展开后的约束名(用,LINGO|Generate,命令可以看到约束展开后的情况),即也应该是带有相应的下标(集合元素)的。,结果报告函数,52,结果报告函数,WRITE(obj1,objn),只能在数据段中使用,输出一系列结果,(obj1,objn),,其中,obj1,objn,等可以是变量,(,但不能只是属性,),,也可以是字符串,(,放在单引号中的为字符串,),或换行,(,NEWLINE),等。,结果可以输出到一个文件,或电子表格(如,EXCEL,),或数据库,这取决于,WRITE,所在的输

37、出语句中左边的定位函数。,例如:,DATA:,TEXT()=WRITE(A is,A,B is,B,A/B is,A/B);,ENDDATA,其中,A,,,B,是该模型中的变量,在屏幕上输出,A,,,B,以及,A/B,的值,(,增加了一些字符串,使结果读起来更方便,),。假设计算结束时,A=10,,,B=5,则输出为:,A is 10,,,B is 5,A/B is 2,53,结果报告函数,STATUS(),返回,LINGO,求解模型结束后的最后状态:,0Global Optimum,(全局最优),1Infeasible,(不可行),2Unbounded,(无界),3Undetermined,

38、(不确定),4Interrupted,(用户人为终止了程序的运行),5Infeasible or Unbounded,(通常需要关闭“预处理”选项后重新求解模型,以确定究竟是不可行还是无界),6Local Optimum,(局部最优),7Locally Infeasible,(局部不可行),8Cutoff,(目标函数达到了指定的误差水平),9Numeric Error,(约束中遇到了无定义的数学操作),54,其他函数,IF(logical_condition,true_result,false_result,),当逻辑表达式,logical_condition,的结果为真时,返回,true_result,,否则返回,false_result,。,WARN(text,logical_condition,),如果逻辑表达式“,logical_condition,”,的结果为真,显示,text,信息。,USER(user_determined_arguments,),允许用户自己编写的函数(,DLL,或,OBJ,文件),可能应当用,C,或,FORTRAN,等其他语言编写并编译。,55,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服