Lingo:软件简介与优化问题【数学建模工具】

Lingo主菜单命令

LINDO 软件的菜单条上有 6 个主菜单:

  • File(文件)
  • Edit(编辑)
  • Solve(求解)
  • Reports(报告)
  • Window(窗口)
  • Help(帮助)

File(文件)菜单包括了 LINDO 通过文件与外部设备(如磁盘)交换信息的命令;
Edit(编辑)菜单包括了在当前窗口下编辑文本的命令;Solve(求解)菜单包括了求解模型的命令;
Reports(报告)菜单包括了生成解答结果报告的命令;Window(窗口)菜单包括了窗口切换的命令;
Help(帮助)菜单包括了访问在线帮助文档的命令。
对于几乎所有的菜单命令,LINDO 都提供了快捷键(快捷键的提示位于每个菜单命令的右侧);对于常用的菜单命令,LINDO 在工具栏提供了相应的图形按钮。工具栏是浮动式的,可以用鼠标拖到屏幕上任何地方。这些用法都是和 WINDOWS 下其它应用程序的标准用法类似的,所以我们不准备对所有的菜单命令进行完整和详细的介绍,而是只对前4 个主菜单中有一定 LINDO 特色的主要命令进行简要介绍。
Lingo:软件简介与优化问题【数学建模工具】

文件主菜单

  • File|New、File|Open、File|View 的区别
    File|New 用于新建一个模型文件;File|Open 用于打开一个已有文件,此后可以对这个文件进行编辑、求解、保存等;而 File|View 只用于打开已有文件供浏览(也可以求解)使用,不能编辑。由于 LINDO 编辑器对文件的大小是有限制的,因此用 File|New 和 File|Open打开的文件不能太大(通常不一定是由 LINDO 本身的编辑器产生的)是有用的。

  • File|Log Output
    该命令将打开一个对话框,要求你指定一个文件名(该文件成为“Log(日志)文件”)。此后,LINDO 软件的所有输出都被送到这个日志文件中保存下来,供你以后查看。
    注意,正常情况下,在菜单驱动模式下,LINDO 的输出应当是被送到报告窗口;在“CommandWindow(命令窗口)”模式下,LINDO 的输出应当是被送到命令窗口。在的对话框中有两个检验盒:
    (1)如果选择“Echo to screen(屏幕显示)”检验盒,屏幕上也会同时显示输出结果,否则屏幕上就不再显示了;
    (2)如果选择“Append output(追加输出)”检验盒,则以后所有 LINDO 的输出被追加到这个日志文件的结尾,否则系统将首先清空这个文件,然后开始追加内容。

  • File|Take Commands
    File|Take Commands(提取命令)用于打开和执行一个LINDO 命令脚本文件(命令脚本文件中包含一系列 LINDO 命令组成的命令序列。

  • File|Basis Read 和 File|Basis Save
    File|Basis Save(保存基)命令打开一个标准的文件保存对话框,可以将单纯形算法的当前的基(解)以你指定的文件名和文件格式保存下来;将来可以用 File|Basis Read(读取基)命令读出这个基(解),并可以从这个基(解)开始继续运行单纯形算法。保存时可以有三种文件格式可供选择:*.pun(以 MPS(数学规划系统)的“punch”格式保存); *.fbs(以 LINDO 格式保存); *.sdbc(以数据库格式按列(变量)保存)。

  • File|Title
    显示当前模型的名称(如果该模型被命名过,即模型的程序中出现过 Title 语句)。

  • File|Date
    显示当前日期和时间。

  • File|Elapsed Time
    显示本次启动 LINDO 以来已经运行了多长时间。

  • File|Licence
    输入、验证 LINDO 的许可证密码.

编辑主菜单

  • Edit|Options
    该命令打开一个对话框(见图 2-29),用于设置 LINDO 系统运行的内部参数,这对于比较专业的用户是有帮助的。从图中可以看出,可修改的参数分成两大类:左边一类是关于优化程序的(Optimizer 这里是指优化程序,也就是 LINDO 求解器,而不是最优解的意思),右边一类是关于输出格式的(Output)。

  • Edit|Paste Symbol
    该命令打开一个对话框,用于在模型中当前光标处插入符号。

  • Edit|Choose New Font
    该命令用于指定显示的字体、字行和文字的大小。

求解主菜单

  • Solve|Compile Model
    Solve|Compile Model(编译模型)命令对当前模型进行编译(使用 Solve|Solve 命令时自然也要先使用该命令)。如果当前模型有输入语法错误,编译时将报告错误。
  • Solve|Pivot
    Solve|Pivo(旋转)命令从当前解出发进行一次单纯形旋转(即一次迭代)。用这个命令可以跟踪整个单纯形法的运行。
  • Solve|Debug
    Solve|Debu(调试)命令分析 LP 无解或*的原因建议如何修改。它仅对 LP 有效,对 IP 或 QP 无意意。对线性规划的高手而言,这个功能可能是有用的。
  • Solve|Premptive Goal
    Solve|Premptive Goal(多目标)命令依次按照多个目标求解模型。

报告主菜单

  • Report|Solution
    Report|Solution(解答)命令显示当前的解(你必须在此之前求解过当前模型)。
  • Report|Range
    Report|Range(敏感性分析)命令显示当前解的敏感性分析结果(你必须在此之前求解过当前模型)。
  • Report|Parametrics
    Report|Parametrics(参数分析)命令对约束的右端项(RHS)进行参数分析,也就是研究某个约束的右端相发生变化时,最优值如何变化。
  • Report︱Statistics
    Report︱Statistics(统计)命令显示当前模型的统计信息.
  • Report︱Peruse
    Report︱Peruse(用户请求)命令按照你的要求显示大拿跟前解答的各种信息.
  • Report Format(报告参数):设置用户希望的显示格式.
    该命令的具体用法这里不详细介绍了,大家试试就清楚了.
  • Report︱Picture 和 Report︱Basis Picture
    Report︱Picture按照图形或文本方式显示模型中的非零系数而 Report︱Basis Picture(基图示)只显示当前基(Basis )的非零系数。
  • Report︱Tableau
    Report︱Tableau(单纯形表)显示当前单纯形表.
  • Report︱Formulation
    Report︱Formulation(模型)显示当前模型(或其指定的部分)。
  • Report︱Show Column
    Report︱Show Column(显示列)显示模型中你选定的列的信息.
  • Report︱Positive Definite
    Report︱Positive Definite(正定)判断二次规划的目标函数中的二次是否正定(只对 QP 问题有效,也就是说只有当前内存中的模型是一个二次规划模型时,这个命令才有意义).

LINDO 命令窗口

你随时可以通过菜单命令“Window︱Open Command Window(Alt+C)”打开命令窗口,在命令窗口下操作
Lingo:软件简介与优化问题【数学建模工具】
INFORMATION(信息类命令)

  • HELP 命令
    输入“HELP”会显示出 LINDO 的一般帮助信息.通过输入"HELP name",LINDO 可帮助你了解某个具体的命令,其中"name"是命令名.
  • COMMAND(COM)命令
    给出按类型分类的 LINDO 命令目录,参见图 2-35.
  • LOCAL(LOC)命令
    给出该程序的版本信息.
  • CATEGORY(CAY)命令
    列出 LINDO 命令类型,并可按提示有选择地给出某类型下的所有命令.
  • TIME 命令
    显示本次启动 LINDO 后累计的运行时间.
  • DATE 命令
    显示当前命令的日期和时间.
    INPUT (输入类命令)
  • MAX/MIN 命令
    用于输入一个包含目标函数,约束条件在内的 LP 模型.输入过程如下:在提示符" :“下输入"MAX”(或"MIN"),继之以自然格式的目标函数作为第一行;再输入"SUBJECT TO"或"SUCH THAT"(可简写为"ST"或"S.T."),后面跟约束条件行.每次回车后将显示"?"提示符.最后,输入"END"回到命令状态模式.可以看出,这和 Windows 环境下在 LINDO 模式窗口中输入一个程序是类似的.其中,变量名可以由1~8个字母或数字型的字符构成,且第一个字符必须是字母.变量系数不能为指数型,列如:.258E+29 形成的系数是不允许的,任一系数的整数位数最多为 9 位,小数位数最多位五位.关键词(“MAX”,“ST”,“END”…)及各行之间必须用一个或多个空格分隔开.空格可以出现在一行之间,但不能出现在变量名中.一个回车符等价一个空格.
  • RETRIEVE(RETR)命令
    执行该命令可直接从硬盘上的文件中获得一个 LINDO 格式的模型。LINDO 会为你提示可供选择的具体的文件名。能被 RETRIEVE 的模型文件必须是以前经“SAVE”行命令存入的模型(后缀通常的“lpk”,即 LINDO 压缩格式文件),而不能是LINDO 文本格式文件(后缀通常是“ltx”)。
  • RMPS 命令
    读取一个 MPS 格式文件,并转化成 LINDI 格式的模型LINDO 会为你提示可供选:
    • N
      !显示解答
    • SOLU
      !在屏幕上显示一段提示信息
    • PAUS 第一模型求解成功,按 R 键或 Resume 按钮继续!
      !关闭文件“RESULT0201.txt”
    • RVRT
      !回到执行本命令脚本前的会话模式
    • BAT
      !结束,退出本命令脚本文件

Lingo文件类型

  • 后缀“lg4表示 LINGO 格式的模型文件,是一种特殊的二进制格式文件,保存了我们在模型窗口中所能够看到的所有文本和其他对象及其格式信息,只有 LILNGO 能读出它,用其他系统打开这种文件是出现乱码;
  • 后缀“lng”表示文本格式的模型文件,并且以这个格式保存模型时 LINGO 将给出警告,因为模型中的格式信息(如字体、颜色、嵌入对象等)将会丢失;
    Lingo:软件简介与优化问题【数学建模工具】

Lingo报告窗口

Lingo:软件简介与优化问题【数学建模工具】

  • Variables(变量数量):其中包括变量总数(Total)、非线性变量数(Nonlinear)、整数变量数(Integer).
  • Constraints(约束数量):包括约束总数(Total)、非线性束个数(Nonlinear).
  • Nonzeros(非零系数数量):包括总数(Total)、非线性项的系数个数(Nonlinear).
  • Generator Memory Used(K)(内存使用量):单位为千字节(K).
  • Elapsed Runtime(hh:mm:ss)(求解花费的时间):显示格式是“时:分:秒”.
    Lingo:软件简介与优化问题【数学建模工具】

运算符和函数

  • 运算符及其优先级
  1. 算术运算符实际上就是加、减、乘方等数学运算(即数与数之间的运算,运算结果也是数)。LINGO 中的算术运算符有以下 5 种:
    +(加法), -(减法或负号),*(乘法),/(除法),^(求幂).
  2. 逻辑运算符就是结果只有"真(TRUE)“和"假(FALSE)”两个值(称为"逻辑值”)的运算,LINGO 中用数学 1 代表 TRUE,其它值(典型的值是 0)都是 FALSE.Z 在 LINGO 中,逻辑运算(表达式)通常作为过滤条件使用(回顾一下,在例3.3中定义约束时\例3.6中定义稀疏集合约束时,都多次使用了逻辑表达式作为过滤条件使用)LINGO 中的辑运符有 9 种,可以分为两类:
    (1)#AND#(与),#NOD#(非):这3个运算是逻辑值之间的运算,也就是它们操作的对象本身必须已经是逻辑值或逻辑表达式…计算结果也是逻辑值,
    (2)#EQ#(等于).#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于).#LE#(小于等于):
    这 6 个操作实际上是"数与数之间"的比较,也就是它们操作的对象本身必须是两个数.
    而逻辑表达式计算得到的结果是逻辑值
  3. 关系运算符表示的是"数与数之间"的大小关系.因此在 LINGO 中用来表示优化模型的约束条件,所以可以认为不是真正的操作运算符.LINGO 中关系运算符有三种:
    <(即<=,小于等于).=(等于),>(即>=,大于等于)
    请注意在优化模型中约束一般,没有严格小于,严格大于关系.此外,请注意区分运算符与"数与数之间"进行比较的 6 个逻辑运算符的不同之处
  • 基本的数学函数
    在 LINGO 中建立优化模型时引用大量的内部函数这些函数以"@"负号打头.
    LINGO 中包括相当丰富的数学函数,这些函数的用法非常简单,我们直接在下一一列出
    Lingo:软件简介与优化问题【数学建模工具】