- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINGO10.0新增功能介绍
LINGO10.0新增功能介绍
录 LINGO10.0新增功能介绍
A.1 新增功能简介
2006年初,LINDO系统公司正式发布了 LINGO 10.0版本。与 LINGO 9.0及更早的版
本相比,该版本的主要改进包括三个方面:
1.LINGO 10.0最显著的新特征在于增强了用 LINGO编程的能力。这主要包括:
(1)程序流程的控制
在 LINGO 9.0及更早的版本的计算段( CALC)中,控制程序流程的只有一种语句,即
集合循环函数@FOR引导的语句,此外所有计算段中的语句是顺序执行的。 LINGO10.0在
计算段中增加了控制程序流程的语句,主要包括条件分支控制(@IFC或@IFC/@ELSE语
句)、条件循环控制( @WHILE语句)、循环跳出控制( @BREAK语句)、程序暂停控制
(@PAUSE语句)以及程序终止控制(@STOP语句)。
(2)子模型( SUBMODEL)
在 LINGO 9.0及更早的版本中,在每个 LINGO模型窗口中只允许有一个优化模型,可
以称为主模型( MAIN MODEL)。在 LINGO 10.0中,每个 LINGO模型窗口中除了主模型
外,用户还可以定义子模型(SUBMODEL)。子模型可以在主模型的计算段中被调用,这就
进一步增强了 LINGO的编程能力。相应的新增函数还包括 @SOLVE、@GEN、@PIC、
@SMPI、@RELEASE等。
(3) 其他新增函数
LINGO10.0增加了输出函数 @TABLE,可以更方便地以格式化的表格形式输出数据;
新增了数学函数 @NORMSINV,即标准正态分布的分布函数的逆函数;新增了缺省输出设
备(文件)的重定义函数 @DIVERT;新增了参数设置函数@SET和@APISET等。
2.对 LINGO内部采用的一些求解程序(如混合整数规划、非线性优化和全局优化求
解程序,包括一些相应的选项)的功能进行了完善和改进,使求解过程更快速、更可靠,对
模型进行调试的能力和对模型错误进行更准确定位的能力也得到了进一步增强。
3.增加了对一些新的软硬件的支持,如支持 64位运算和更大的内存等,以及支持 Java
JNI接口技术,新的@ODBC函数支持 Microsoft SQL Server 等。
我们下面只对第1类新增功能(增强 LINGO编程能力的功能)进行简要介绍,关心第
2、3类新增功能的读者请直接阅读 LINGO在线帮助文件或相关介绍文档。
A.2程序流程的控制
A.2.1条件分支控制
在计算段( CALC)中,如果只有当某个条件满足时才执行某个或某些语句,则可以使
用@IFC或@IFC/@ELSE语句,其中 @ELSE部分是可选的(在下面的语法中用方括号表示)。
其基本的使用语法是:
@IFC(condition:
executable statements(可执行语句 1);
[@ELSE
executable statements(可执行语句 2);]
)
其中 condition是一个逻辑表达式(表示相应的条件),当 condition的逻辑值为“真”
(条件成立)时,程序执行语句 1;否则程序执行语句 2。
我们以本书第五章 5.2节(有瓶颈设备的多级生产计划问题)中的数据来说明这个语句
的用法。在该问题中,项目间的消耗系数 Req是一个非常稀疏的矩阵,仅有 6个非零元。如果
我们想输出这个矩阵,但不显示其中的零元素(即显示为空),可以在原来的程序(本书 177-178
页的程序 exam0502.lg4)中增加以下的计算段:
calc:
@WRITE( 项目间的消耗系数如下: );
@WRITE( @NEWLINE(1));
@WRITEFOR(PART(J): 5* , PART(J));
@FOR( PART(I):
@WRITE( @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
运行修改后的程序,相应的输出如下(只列出与计算段的输出相关的部分):
项目间的消耗系数如下:
A B C D E F G
A
B 5.
C 7.
D 9.
E 11.
F 13.
G 15.
下面我们作几点说明:
1.请注意上面程序中的函数 @WRITE和@WRITEFOR,他们在 LINGO9.0中也
文档评论(0)