欢迎来到天天文库
浏览记录
ID:14423019
大小:51.50 KB
页数:27页
时间:2018-07-28
《lingo100新增功能介绍》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、LINGO100新增功能介绍LINGO100新增功能介绍.txt录LINGO10.0新增功能介绍A.1新增功能简介2006年初,LINDO系统公司正式发布了LINGO10.0版本。与LINGO9.0及更早的版本相比,该版本的主要改进包括三个方面:1.LINGO10.0最显著的新特征在于增强了用LINGO编程的能力。这主要包括:(1)程序流程的控制在LINGO9.0及更早的版本的计算段(CALC)中,控制程序流程的只有一种语句,即集合循环函数@FOR引导的语句,此外所有计算段中的语句是顺序执行的。LI
2、NGO10.0在计算段中增加了控制程序流程的语句,主要包括条件分支控制(@IFC或@IFC/@ELSE语句)、条件循环控制(@WHILE语句)、循环跳出控制(@BREAK语句)、程序暂停控制(@PAUSE语句)以及程序终止控制(@STOP语句)。(2)子模型(SUBMODEL)在LINGO9.0及更早的版本中,在每个LINGO模型窗口中只允许有一个优化模型,可以称为主模型(MAINMODEL)。在LINGO10.0中,每个LINGO模型窗口中除了主模型外,用户还可以定义子模型(SUBMODEL)。子
3、模型可以在主模型的计算段中被调用,这就进一步增强了LINGO的编程能力。相应的新增函数还包括@SOLVE、@GEN、@PIC、@SMPI、@RELEASE等。(3)其他新增函数LINGO10.0增加了输出函数@TABLE,可以更方便地以格式化的表格形式输出数据;新增了数学函数@NORMSINV,即标准正态分布的分布函数的逆函数;新增了缺省输出设备(文件)的重定义函数@DIVERT;新增了参数设置函数@SET和@APISET等。2.对LINGO内部采用的一些求解程序(如混合整数规划、非线性优化和全局优
4、化求解程序,包括一些相应的选项)的功能进行了完善和改进,使求解过程更快速、更可靠,对模型进行调试的能力和对模型错误进行更准确定位的能力也得到了进一步增强。3.增加了对一些新的软硬件的支持,如支持64位运算和更大的内存等,以及支持JavaJNI接口技术,新的@ODBC函数支持MicrosoftSQLServer等。我们下面只对第1类新增功能(增强LINGO编程能力的功能)进行简要介绍,关心第2、3类新增功能的读者请直接阅读LINGO在线帮助文件或相关介绍文档。A.2程序流程的控制A.2.1条件分支控制
5、在计算段(CALC)中,如果只有当某个条件满足时才执行某个或某些语句,则可以使用@IFC或@IFC/@ELSE语句,其中@ELSE部分是可选的(在下面的语法中用方括号表示)。其基本的使用语法是:@IFC(condition:executablestatements(可执行语句1);[@ELSEexecutablestatements(可执行语句2);])其中condition是一个逻辑表达式(表示相应的条件),当condition的逻辑值为“真”(条件成立)时,程序执行语句1;否则程序执行语句2。我
6、们以本书第五章5.2节(有瓶颈设备的多级生产计划问题)中的数据来说明这个语句的用法。在该问题中,项目间的消耗系数Req是一个非常稀疏的矩阵,仅有6个非零元。如果我们想输出这个矩阵,但不显示其中的零元素(即显示为空),可以在原来的程序(本书177-178页的程序exam0502.lg4)中增加以下的计算段:calc:@WRITE('项目间的消耗系数如下:');@WRITE(@NEWLINE(1));@WRITEFOR(PART(J):5*'',PART(J));@FOR(PART(I):@WRITE(
7、@NEWLINE(1),PART(I));@FOR(PART(J):@IFC(Req(i,j)#GT#0.0:@write(@FORMAT(Req(i,j),'#5.0f'));@ELSE@WRITE(''););););@WRITE(@NEWLINE(2));endcalc运行修改后的程序,相应的输出如下(只列出与计算段的输出相关的部分):项目间的消耗系数如下:ABCDEFGAB5.C7.D9.E11.F13.G15.下面我们作几点说明:1.请注意上面程序中的函数@WRITE和@WRITEFOR,
8、他们在LINGO9.0中也出现过(参见本书112页),但当时主要是用在程序的数据段(DATA)方便用户控制输出格式,所输出的变量的取值是程序运行结束后最后结果的相关数据,并且输出必须定向到@TEXT函数,即通过@TEXT函数输出到缺省的输出设备(通常就是报告窗口)或文本文件。LINGO10.0中,这两个函数也是为了方便用户控制输出格式,但它们还可以出现在计算段(CALC)随时输出中间结果,并且不需要使用@TEXT函数,输出的结果也是被定向到缺省的输出设备(通常就是标准
此文档下载收益归作者所有