没有合适的资源?快使用搜索试试~ 我知道了~
首页lingo软件的基本使用方法
资源详情
资源评论
资源推荐
第 3 章 LINGO 软件的基本使用方法
§3.1 LINGO 的基本特点
LINGO 8.0 for Windows 软件比以前的版本有了很大的改进,功能大大增强,性能更加稳
定,解答结果更加可靠。
LINGO 8.0 for Windows 软件安装程序的文件大小通常 20M 多一点,安装过程与 LINDO 6.1
for Windows 的安装过程完全类似,我们下面假设 LINGO 8.0 for Windows 软件已经安装完
毕。
同样,LINGO 8.0 也有两种命令模式:一种是常用的 Windows 模式, 通过下拉式菜单命令驱
动 LINGO 运行(多数的菜单命令通常有快捷键,常用的菜单命令在工具栏中有图标表示的快捷按
钮),界面是图形式的,使用起来也比较方便;另一种是命令行 (Command-Line) 模式,仅在命
令窗口(Command Window)下操作,通过输入行命令驱动 LINGO 运行,其使用界面不是图形式的,
而是字符式的,初学者往往不太容易掌握。与上一章一样,我们仍然主要在 Windows 菜单驱动模
式下介绍 LINGO 的使用方法,最后再简单介绍一下命令行模式下的主要行命令。
我们前面说过,从基本功能上看,与 LINDO 相比,LINGO 软件主要具有两大优点:
1、 除具有 LINDO 的全部功能外,还可用于求解非线性规划问题,包括非线性整数规划问题。
2、 LINGO 包含了内置的建模语言,允许以简练、直观的方式描述较大规模的优化问题,模型
中所需的数据可以以一定格式保存在独立的文件中。
前一条是很容易理解的。那么后一条呢?从前一章的介绍中可以看到,虽然 LINDO 输入模型
的格式与我们数学上对数学规划的表达式非常接近,但是如果我们希望在 LINDO 模型窗口下输入
一个比较大规模的模型,那将是一件非常费时费力的事情。例如,如果决策变量有 1000 个,由于
LINDO 不提供数组或类似的数据结构,我们除了用 x1,x2,…, x1000 或类似方法表示决策变量外,
完全没有其他办法。而对实际企业中的优化问题,决策变量达到几十万个也是常有的事,显然用前
面那种在 LINDO 模型窗口下输入模型的方法几乎是不可能的。而 LINGO 则在这方面通过引入建模
语言有了很大改进.也就是说,即使你只对解线性规划感兴趣,你也应该学习使用 LINGO。
§3.2 初识 LINGO
在 Windows 操作系统下双击 LINGO 图标,启动 LINGO 软件,屏幕上首先显示如图 1 所示的
窗口。
图 1
1
图 1 中最外层的窗口使 LINGO 软件的主窗口,所有其他窗口都在这个窗口之内。当前光标所
在的窗口上标有“LINGO MODEL – LING01”,这就是模型窗口,也就是用于输入优化模型的窗口。
初步观察可以看到,图 1 这个界面与 LINDO 软件的界面非常类似,只是在 LINGO 软件的主窗口中,
最下面增加了一个状态行(仔细观察,可以发现菜单和工具栏也略有区别)。目前,状态行最左边
显示的是“Ready”,表示 “准备就绪”;右下角现实的是当前时间,时间前面是当前光标的位
置(1 行 1 列)。将来,用户可以用选项命令(LINGO|Options 菜单命令)决定是否需要显示工
具栏和状态行。
作为一个最简单的例子,我们看看上一章 2.2 节中输入的那个简单例子在 LINGO 下应当如何输
入. 当时我们把它存入了一个名为 EXAM0202.LTX 的模型文件中,为了对比 LINDO 和 LINGO 输入
的差别,我们现在重新用 LINDO 把它打开,看到该例子是如图 2 所示的线性规划。
图 2
图 3
2
在 LINGO 中,有一个命令可以直接把 LINDO 的模型文件转化成 LINGO 模型。我们选择菜单
命令 FILE | IMPORT LINDO FILE (F12), 其意思是
“导入 LINDO 文件”,则屏幕上会显示一个标准
的“打开文件”的对话框,我们在目录下找到 EXAM0202.LTX,选定该文件后,屏幕显示如图 3。
这个命令在 LINGO 主窗口中又打开了两个子窗口,一个是命令窗口(Command Window),另一个
是名为“exam0202”的模型窗口.。可以看出,当前光标位于命令窗口(从主窗口左上角的显示结果
也可以知道当前的活动窗口),命令窗口显示的正是从 EXAM0202.LTX 读出的原始文本文件;而
“exam0202” 窗口才是由 EXAM0202.LTX 转化而来的等价的 LINGO 模型。
比较图 2 和图 3 可以发现转化工作主要在于以下几个方面(这也是 LINGO 模型的最基本特征):
(1) 将目标函数的表示方式从“MAX”变成了“MAX=”;
(2) “ST”在 LINGO 模型中不再需要,所以被删除了;
(3) 在每个系数与变量之间增加了运算符“*”(即乘号不能省略);
(4) 每行(目标、约束和说明语句)后面均增加了一个分号“;”;
(5) 约束的名字被放到了一对方括号“[ ]”中,而不是放在右半括号“)”之前;
(6) 模型结束标志“END”也被删除了(LINGO 中只有当模型以“MODEL:”开始时才能
以“END” 结束)。
注意:在上一章的最后,我们曾经用行命令“
SAVE”把同样的 LINDO 模型存入了一个名为
MODEL01.LTX 的模型文件中。但是经过试验,笔者发现菜单命令 FILE | IMPORT LINDO FILE (F12)
不能把 MODEL01.LTX 正确地转化成 LINGO 模型。即使对于在 LINDO 中用菜单命令保存下来的模
型,笔者也多次发现有时不能正确地转化(转化时出现严重错误)。因此,本人的经验是:为了保
证将来能将 LINDO 模型移植到 LINGO 中去,在 LINDO 模型输入时应尽量采用“规范化”的格式
(例如:说明语句最好单独占据一行;行名(目标和约束的名字)不要以数字开头;尽量避免少出
现汉字和非标准的英文字符;二次规划(QP)模型不能被正确转化;等等)。
无论如何,幸运的是我们的 LINGO 模型“exam0202”已经成功地得到了。现在把光标移动到
“exam0202” 模型窗口,然后选择菜单命令“LINGO|SOLVE”对该模型进行求解(求解时 LINGO
自然还是先对模型进行编译,模型编译没有发现语法错误才开始求解);求解结束得到的结果与
LINDO 下得到的结果相同(但不询问是否进行敏感性分析),结果仍然在报告窗口中显示(这里我
们就不给出这个报告窗口的示意图了)。
图 4
3
现在我们可以把模型和结果报告保存在文件中。例如,当光标位于“exam0202” 模型窗口时
选择菜单命令“File|Save As”,则出现图 4 所示的对话框。后缀“LG4”表示 LINGO 格式的模型
文件,是一种特殊的二进制格式文件,保存了我们在模型窗口中所能够看到的所有文本和其他对象
及其格式信息,只有 LINGO 能读出它,用其他系统打开这种文件时会出现乱码。“LNG”表示 LINGO
文本文件,以这个格式保存模型时 LINGO 将给出警告,因为模型中的格式信息(如字体、颜色、
嵌入对象等)将会丢失。“LDT”表示 LINGO 数据文件,“LTF”表示 LINGO 命令脚本文件, “LGR”
表示 LINGO 报告文件。除“LG4”文件外,这里的另外几种格式的文件其实都是普通的文本文件,
可以用任何文本编辑器打开和编辑。
图 5
求解时也会显示状态窗口(如图 5 所示),包含的内容比 LINDO 求解时的状态窗口中的内容
要多一些(注意:可能由于 LINDO 和 LINGO 对中文 WINDOWS 系统的兼容性不太好,所以图 5
中有些显示字符和单词被截掉了)。下面我们给出相应的解释:右边的 5 个框分别给出变量数量(其
中包括变量总数、非线性变量数、整数变量数)、约束数量(约束总数、非线性约束个数)、非零
系数数量(总数、非线性项的个数)、内存使用量、求解花费的时间。需要注意的是,凡是可以从
一个约束直接解出变量取值时,这个变量就不认为是决策变量而是固定变量,不列入统计中;只含
有固定变量的约束也不列入约束统计中(参见第一章 1.8 节的说明)。总的来说,这些统计值的意
义比较清楚,图 5 中最下面一行的含义也与 LINDO 状态窗口类似,我们下面主要详细介绍一下图 5
左边的两个框中内容。左上角是求解器(求解程序)状态框(Solver Status),含义见表 1;左下角
是扩展的求解器(求解程序)状态框(Extended Solver Status),含义见表 2。
4
域名 含义 可能的显示
Model Class
当前模型的类型(请参阅本书
第 1 章)
LP,QP,ILP,IQP,PILP, PIQP,NLP,INLP,
PINLP (以 I 开头表示 IP,以 PI 开头表示 PIP)
State
当前解的状态
"Global Optimum", "Local Optimum", "Feasible",
"Infeasible"(不可行), "Unbounded"(无界),
"Interrupted"(中断), "Undetermined"(未确定)
Objective
当前解的目标函数值 实数
Infeasibility
当前约束不满足的总量(不是
不满足的约束的个数)
实数(即使该值=0,当前解也可能不可行,因为这
个量中没有考虑用上下界形式给出的约束)
Iterations
目前为止的迭代次数 非负整数
表 1
域名 含义 可能的显示
Solver Type
使用的特殊求解程序 B-and-B (分枝定界算法)
Global (全局最优求解程序)
Multistart(用多个初始点求解的程序)
Best Obj
目前为止找到的可行解的最
佳目标函数值
实数
Obj Bound
目标函数值的界 实数
Steps
特殊求解程序当前运行步数:
分枝数(对 B-and-B 程序);
子问题数(对 Global 程序);
初始点数(对 Multistart 程序)
非负整数
Active
有效步数 非负整数
表 2
作为一个例子, 我们现在再用 LINGO 来解第 1 章 1.4 节给出的如下二次规划问题:
Max 98 x
1
+ 277 x
2
— x
1
2
— 0.3 x
1
x
2
— 2x
2
2
s.t. x
1
+ x
2
≤
100
x
1
≤
2 x
2
x
1
, x
2 ≥
0 为整数
该模型输入 LINGO1 模型窗口后的形式见图 6。对照第 2 章 2.6 节,我们可以看出用 LINGO
解 QP 比用 LINDO 解要容易输入模型。注意:原来的整数限定语句“GIN X1”和“GIN X2”这里
变成了“@GIN(X1)”和“@GIN(X2)”;但是,在 LINDO 下也可以写成“GIN 2”,这里却不可
以写成“@GIN(2)”,否则 LINGO 将把这个模型看成没有整数变量。在 LINGO 中,以“@”开头
的都是函数调用,我们将在后面(本章 3.5 节)详细介绍 LINGO 中能够使用的所有函数。
图 6
5
剩余39页未读,继续阅读
binblue
- 粉丝: 5
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0