您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > LINGO软件的基本使用方法
1第3章LINGO软件的基本使用方法3.1LINGO入门3.1.1LINGO软件的安装过程和主要特色LINGO9.0forWindows软件的安装过程与LINDO6.1forWindows软件的安装过程类似。软件安装程序的文件大小通常是20M多一点,当你开始安装后,仍然需要接受安装协议、选择安装目录(默认的目录通常是C:\LINGO9).安装完成前,会出现图3.1所示的对话框,这个对话框询问你希望采纳的默认的建模(即编程)语言,系统推荐的是采用LINGO语法,即选项“LINGO(recommended)”;你也可以选择“LINDO”将LINDO语法作为默认的设置。在图3.1中按下“OK(确认)”按钮,系统就会完成LINGO的安装过程。安装后你也可以随时通过“LINGOOptionsFileFormat”命令来修改默认的建模(即编程)语言。图3.1选择编程语法格式我们下面假设LINGO9.0ForWindows软件已经成功安装。第一次运行LINGO软件时,系统需要你输入密码(图3.2),操作方法与LINDO完全类似,这里不再重复了。与LINDO类似,LINGO也有两种命令模式:一种是常用的Windows模式,通过下拉式菜单命令驱动LINGO运行(多数的菜单命令通常有快捷键,常用的菜单命令在工具2图3-2输入授权密码栏中有图标表示的快捷按钮),界面是图形式的,使用起来也比较方便;另一种是命令行(Command-Line)模式,仅在命令窗口(CommandWindow)下操作,通过输入行命令驱动LINGO运行,其使用界面不是图形式的,而是字符式的,初学者往往不太容易掌握,与第2章一样,我们仍然主要在Windows菜单驱动下介绍一下命令行模式下的主要行命令。LINGO9.0软件比以前的版本有了很大的改进,功能大大加强,性能更加稳定,解答结果更加可靠。我们前面说过,从基本功能看,与LINDO相比,LINGO软件主要具有两大优点:(1)除具有LINDO的全部功能外,还可用于求解非线性规划问题,包括非线性整数规划问题。(2)LINGO包含了内置的建模语言,允许以简练、直观的方式描述教大规模的优化问题,模型中所需的数据可以以一定格式保存在独立的文件中。前一条是很容易理解的。那么后一条呢?从第2章的介绍中可以看出,虽然LINGO输入模型的格式与我们数学上对数学规划的表达式非常接近,但是如果我们希望在LINDO模型窗口下输入一个规模比较大的模型,那将式一件非常费时费力的事情。例如,如果决策变量有1000个,由于LINGO不提供数据组或类似的数据结构,我们除了用x1,x2,…,x1000或类似方法表示决策变量外,完全没有其他办法。而对实际企业中的优化问题,决策变量达到几万、几十万个饿是常有的事,显然前面那种在LINDO模型窗口下输入模型的方法几乎是不可能的。而LINGO则在这方面通过引入建模语言(常称为“矩阵生成器”)有了很大改进。也就是说,即使你只对解线性规划感兴趣,你也应该学习使用LINGO。事实上,LINDO公司目前已将LINDO软件从起产品目录中删除了,而将LINDO软件的所有功能(包括LINDO语法格式)都在LINGO中得到了支持,所以不久的将来总有一天人们会废弃LINDO软件不在使用的,但LINDO的生命力应该还是很强的.3.1.2在LINGO中使用LINDO模型在Windows操作系统下双击LINGO图标或从Windows操作系统下选择LINGO软件运行,启动LINGO软件,屏幕上首先显示如图3-3所示的窗口.3图3-3LINGO初始界面图3-3中最外层的窗口是LINGO软件的主窗口(LINGO软件的用户界面),所有其他窗口都在这个窗口之内.当前光标所在的窗口上标有“LINGOModel–LINGO1”,着就是模型窗口(modelwindow),也就是用于输入LINGO优化模型(即LINGO程序)的窗口.初步观察可以看到,图3-3这个界面与LINDO软件的界面非常类似,只是在LINGO软件的主窗口中最下面增加了一个状态行(仔细观察,可以发现菜单和工具栏也略有区别).目前,状态行最左边显示的是“Ready”,表示“准备就绪”;右下角显示的是当前时间,时间前面是当前光标的位置“Ln1,Col1”(即1行1列)。将来,用户可以用选项命令()LINGOOptions菜单命令决定是否需要显示工具栏和状态行。在LINGO中可以直接使用LINDO语法编写的优化模型(即优化程序)。作为一个最简单的例子,我们看看2.1.2节例2.1中输入的那个简单例子在LINGO下应当如何输入。当时我们把它存入了一个名为exam0201.ltx的模型文件中,现在看看如何用LINGO把它打开。例3.1在LINGO模型窗口中,选择菜单命令“(3)FileOpenF”,可以看到如图3-4所示的标准的“打开文件”对话框。我们看到有各种不同的“文件类型”:。后缀“lg4表示LINGO格式的模型文件,是一种特殊的二进制格式文件,保存了我们在模型窗口中所能够看到的所有文本和其他对象及其格式信息,只有LILNGO能读出它,用其他系统打开这种文件是出现乱码;。后缀“lng”表示文本格式的模型文件,并且以这个格式保存模型时LINGO将给出警告,因为模型中的格式信息(如字体、颜色、嵌入对象等)将会丢失;4图3-4在LINGO中打开LINDO文件.后缀“ldt”表示LINGO数据文件;.后缀“ltf”表示LINGO命令脚本文件;.后缀“lgr”表示LINGO报告文件;.后缀“ltx”表示LINDO格式的模型文件;.后缀“mps”表示MPS(数学规划系统)格式的模型文件;.“*.*”表示所有文件.除“lg4”文件外,这里的另外几种格式的文件其实都是普通的文本文件,可以用任何文本编辑器打开和编辑。我们找到“exam0201.ltx”文件(需要将“文件类型”选为“*.ltx”),打开这个文件,看到模型窗口中的显示如图3-5.可以看出,这个模型和在LINDO下看到的是一样的.这时我们可以选择“)(SCtrlSolveLINGO”命令来运行这个程序,屏幕上显示的运行状态窗口如图3-6所示,运行结果显示在报告窗口中(如图3-7所示,请对照第二章中LINGO软件下的结果,看看是否一致).但这里LINGO不询问是否进行敏感性分析,因为敏感性分析需要将来通过修改系统选项启动敏感性分析后,再调用“RangeportRe”菜单命令来实现.现在同样可以把模型和结果报告保存在文件中(注意上面提到的“文件格式”问题).5图3-5LINGO模型窗口中显示的线形规划程序图3-6LINGO状态窗口图3-7LINGO报告窗口6图3—6所示的LINGO的运行状态窗口也和LINDO的运行状态窗口类似,但包含的内容更多些(注意:可能由于LINDO和LINGO对中文Windows系统的兼容性不太好,所以图3-6中有些显示字符和单词被截掉了).下面我们给出相应的解释.Variables(变量数量):其中包括变量总数(Total)、非线性变量数(Nonlinear)、整数变量数(Integer).Constraints(约束数量):包括约束总数(Total)、非线性束个数(Nonlinear).Nonzeros(非零系数数量):包括总数(Total)、非线性项的系数个数(Nonlinear).GeneratorMemoryUsed(K)(内存使用量):单位为千字节(K).ElapsedRuntime(hh:mm:ss)(求解花费的时间):显示格式是“时:分:秒”.需要注意的是,凡是可以从一个约束直接解出变量取值是,这个变量就不认为是决策变量而是固定变量,不列入统计,中;只含有固定变量的约束也不列入约束统计中(参见1.3节的说明).总的来说,这些统计值的意义比较清楚,图3-6中最下面一行的含义也与LINDO状态窗口类似,我们下面主要详细介绍一下图3-6左边的两个框中内容.左上角是求解器(求解程序)状态框(SolverStatus),含义见表3-1;左下角是扩展的求解器(求解程序)状态框(ExtendedSolverStatus),含义见表3-2.表3-1LINGO状态窗口中关于求解器各项的含义域名含义可能的显示ModelClass当前模型的类型(请参阅本书第1章的介绍)LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP以I开头表示IP,以PI开头表示PIP)State当前解的状态GlobalOptimum,LocalOptimum,Feasible,Infeasible(不可行),Unbounded(无界),Interrupted(中断),Undetermind(未确定)Objective当前解的目标函数值实数Infeasibility当前约束不满足的总数(不是不满足的约束个数)实数(即使该值=0,当前解也可能不可行,因为这个量中没有考虑用上下界命令形式给出的约束)Iterations到目前为止的跌代次数非负整数表3—2LINGO状态窗口中关于扩展的求解器各项的含义域名含义可能的显示Solver使用的特殊求解程序B-and-B(分支定界算法)Global(全局最优求解程序)Multistart(最多个初始点求解的程序)BestObi但目前为止找到的可行解的最佳目标函数值实数ObjBound目标函数值的界实数Steps特殊求解程序当前运行步数:分支数(对B-and-B程序);子问题数(对Global程序);初始点数(对Multistart程序)非负整数Active有效步数非负整数备注在LINGO9.0以前的版本中(如LINGO8.0中),一般不能直接用)12(ImFFileLINGOportFile命令可以直接把LINDO的模型文件转化成LINGO模型。这个菜单命令的意思是“导入LINDO文件”(LINGO9.0中已无必要,所以已经被取消了),7运行后屏幕上会显示一个标准的“打开文件”的对话框,我们在目录下找到exam0201.ltx,选定该文件后,屏幕显示如图3-8.可以看出,这个命令在LINGO主窗口中又打开了两个窗口,一个是命令窗口(CommandWindow,根据版本不同,这个窗口也可能不显示出来),另一个是名为“exam0201”的模型窗口。还可以看出,当前光标位于命令窗口(从主窗口左上角的显示结果也可以知道当前的活动窗口是命令窗口),命令窗口显示的正是从exam0201。1tx读出的原始文件;而“exam0201”窗口才是由exam0201。1tx转化而来的等价的LINGO模型,请大家注意,在第二章的最后,我们曾经用行命令“SAVE”把同样的LINDO模型以压缩文件格式存入了一个名为exam0201。1pk的模型文件中。但是经过试验,笔者发现LINGO8.0的菜单命令File/ImportLINDOFile/saveF(12)不能把exam0201.1pk正确地转化成LINGO模型。即使对于在LINDO中去用菜单命令“File/save‘保存下来的模型,笔者也多次发现有时不能正确地转化(转化时出现严重错误)。因此,本人的经验是:为了保证将来能将LINDO模型移植到LINGO中去,在LINDO模型输入时尽量采用“规范化”的格式并以文本文件保存(例如,说明语句最好单独占据一行;行名(目标和约束的名字)不要以数字开头;尽量避免少出现汉字和非标准的英文符;二次规划(QP)模型不能被正确转化;等等),当然,由于现在的LINGO9.0版本能直接接受LINDO格式的输入,所以不需要进行格式转化,这个问题也就不存在了。图3-8从LINDO模型转化成的LINGO模型(LINGO8.0下)实际上,在LINGO9.0中,一样可以把LINDO格式的文件转化成LINGO格式的文件显示出来。例如,对图3-5的模型,运行“LINGO/Generate/DisplayModelModel(Ctrl+G)”命令,就会显示图3-6的LINGO状态窗口和一个如图3-9的报告窗口。图3-9中报告显示的正是标准格式的LINGO
本文标题:LINGO软件的基本使用方法
链接地址:https://www.777doc.com/doc-5008581 .html