第十八章LINGO软件的使用

上传人:豆浆 文档编号:92344356 上传时间:2019-07-09 格式:DOC 页数:17 大小:593.52KB
返回 下载 相关 举报
第十八章LINGO软件的使用_第1页
第1页 / 共17页
第十八章LINGO软件的使用_第2页
第2页 / 共17页
第十八章LINGO软件的使用_第3页
第3页 / 共17页
第十八章LINGO软件的使用_第4页
第4页 / 共17页
第十八章LINGO软件的使用_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《第十八章LINGO软件的使用》由会员分享,可在线阅读,更多相关《第十八章LINGO软件的使用(17页珍藏版)》请在金锄头文库上搜索。

1、第十八章 LINGO软件的使用18.1 LINGO入门18.1.1 LINGO软件的安装过程点击LINGO9.0 for Windows安装文件,出现点击“Next”按钮,出现此时需要接受安装协议。系统安装时默认的目录是C:LINGO9。安装完成前,会出现下图所示的对话框:这个对话框询问你希望采用的默认的建模(即编程)语言,系统推荐的是采用LINGO语法,也就是选项“LINGO(recommended)”;你也可以选择“LINDO”将LINDO语法作为默认的设置。当然,安装后你也可以通过“LINGOOptionsFile Format命令来修改默认的建模(即编程)语言。在上图中按下“OK”按钮

2、,系统就会完成LINGO的安装过程。18.1.2 LINGO基础知识LINGO有两种命令格式:一种是常用的Windows模式,通过下拉式菜单命令驱动LINGO运行,界面是图形式的,使用起来也比较方便;另一种是命令行(Command-Line)模式,仅在命令窗口(Command Window)下操作,通过输入行命令驱动LINGO运行。由于其使用字符方式输入,初学者往往不太容易掌握。在这里,我们主要介绍在菜单驱动模式下LINGO的使用方法。LINGO 9.0软件比以前的版本有了很大的改进,功能大大增强,性能更加稳定,计算的结果更加可靠。LINGO软件不仅可用于求解非线性规划问题,还可以用以求解非线

3、性整数规划问题;LINGO包含了内置的建模语言,模型中所需的数据可以以一定格式保存在独立的文件中;LINGO允许以简练、直观的方式描述较大规模的优化问题。注:LIGDO公司目前已将LINDO软件从其产品中删除了。事实上,LINDO软件的所有功能(包括LINDO语法格式)都在LINGO中得到了支持。当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。状态行最左边显示的是“

4、Ready”表示“准备就绪”;右下角显示的是当前时间,时间前面是当前光标的位置“Ln1,Col1”(即1行1列)。将来,用户可以用选项命令(LINGOOptions菜单命令)决定是否需要显示工具栏和状态行。在LINGO模型窗口中,选择菜单命令“FileOpen(F3)”,可以看到下图所示的标准的“打开文件”对话框,我们看到有各种不同的“文件类型”:l 后缀“lg4”表示LINGO格式的模型文件,是一种特殊的二进制格式文件,保存了我们在模型窗口中所能够看到的所有文本和其他对象及其格式信息,只有LINGO能读出它,用其他系统打开这种文件时会出现乱码;l 后缀“lng”表示文本格式的模型文件,并且以

5、这个格式保存模型时LINGO将给出警告,因为模型中的格式信息(如字体、颜色、嵌入对象等)将会丢失;l 后缀“ldt”表示LINGO数据文件;l 后缀“ltf”表示LINGO命令脚本文件;l 后缀“lgr”表示LINGO报告文件;l 后缀“ltx”表示LINGO格式的模型文件;l 后缀“mps”表示MPS(数学规划系统)格式的模型文件;l “*.*”表示所有文件除“lg4”文件外,这里的另外几种格式的文件其实都是普通的文本文件,可以用任何文本编辑器打开和编辑。18.1.3二个简单的LINGO程序下面举两个例子说明如何在LINGO中如何进行规划问题求解。例1.1求解如下的LP(线性规划)问题:在模

6、型窗口中输入如下代码:min=2*x1+3*x2;x1+x2=350;x1=100;2*x1+x2=600;如下图所示:注:(1)LINGO中不区分大小写字母,变量(和行名)可以使用不超过32个字符表示,且必须以字母开头。(2)LINGO中模型以“MODEL:”开始,以“END”结束。对简单的模型,这两个语句也可以省略。(3)LINGO中的语句的顺序是不重要的,因为LINGO总是根据“MAX=”或“MIN=”语句寻找目标函数,而其它语句都是约束条件(当然注释语句和TITLE除外)。(4)LINGO模型是由一系列语句组成,每个语句以分号“;”结束。(5)LINGO中以感叹号“!”开始的是说明语句

7、(说明语句也需要以分号“;”结束)。(6)LINGO中解优化模型时假定所有变量非负(除非用限定变量取值范围的函数free或sub或slb另行说明)。然后点击工具条上的按钮 得到:下面对上图的各个部分进行说明。Solution Report(LINGO的结果报告窗口) Global optimal solution found 表示全局最优解找到. Objective value: 800.0000 表示最优目标值为800.0000. Total solver iterations: 2 表示用单纯行法进行了两次迭代. Variable 表示变量, 此问题中有两个变量X1, X2. Value

8、给出最优解中各变量(Variable)的值: X1=250.0000, X2=100.0000. Reduced Cost 给出最优的单纯形表中目标函数行中变量对应的系数. 其中基变量的Reduced Cost值一定为0;对于非基变量(非基变量本身的取值一定为0)和max问题,相应的Reduced Cost值表示当该非基变量增加一个单位(其它非基变量保持不变)时目标函数的减少的量.在这个例子中最优解中两个变量都是基向量, 因此对应的Reduced Cost的值都为0.Slack or Surplus (松弛或剩余)给出约束对应的松弛变量的值:第2和第4行松弛变量均为0,说明对于最优解来讲,两个

9、约束(第2和4行)均取等号,即都是紧约束.Dual Price 给出对偶价格(也称影子价格)的值.例1.2某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、木工和漆工。生产数据如下表所示:每个书桌每个餐桌每个椅子现有资源总数木料8单位6单位1单位48单位漆工4单位2单位1.5单位20单位木工2单位1.5单位0.5单位8单位成品单价60单位30单位20单位若要求桌子的生产量不超过5件,如何安排三种产品的生产可使利润最大?用DESKS、TABLES和CHAIRS分别表示三种产品的生产量,建立LP模型。max=60*desks+30*tables+20*chairs;8*desks+6*tab

10、les+chairs=48;4*desks+2*tables+1.5*chairs=20;2*desks+1.5*tables+.5*chairs=8;tables=5;求解这个模型,查看报告窗口(Reports Window),如下图:可以看到如下结果。Global optimal solution found at iteration: 3 Objective value: 280.0000 Variable Value Reduced Cost DESKS 2.000000 0.000000 TABLES 0.000000 5.000000 CHAIRS 8.000000 0.00000

11、0 Row Slack or Surplus Dual Price 1 280.0000 1.000000 2 24.00000 0.000000 3 0.000000 10.00000 4 0.000000 10.00000 5 5.000000 0.000000“Global optimal solution found at iteration: 3”表示3次迭代后得到全局最优解。 “Objective value:280.0000”表示最优目标值为280。 “Value”给出最优解中各变量的值:造2个书桌(desks), 0个餐桌(tables), 8个椅子(chairs)。所以des

12、ks、chairs是基变量(非0),tables是非基变量(0)。 “Slack or Surplus”给出松驰变量的值:第1行松驰变量 =280(模型第一行表示目标函数,所以第二行对应第一个约束)第2行松驰变量 =24第3行松驰变量 =0第4行松驰变量 =0第5行松驰变量 =5“Reduced Cost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率。其中基变量的reduced cost值应为0, 对于非基变量 Xj, 相应的 reduced cost值表示当某个变量Xj 增加一个单位时目标函数减少的量( max型问题)。本例中:变量tables对应的

13、reduced cost值为5,表示当非基变量tables的值从0变为 1时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值 = 280 - 5 = 275。“DUAL PRICE”(对偶价格)表示当对应约束有微小变动时, 目标函数的变化率。输出结果中对应于每一个约束有一个对偶价格。 若其数值为p, 表示对应约束中不等式右端项若增加1 个单位,目标函数将增加p个单位(max型问题)。显然,如果在最优解处约束正好取等号(也就是“紧约束”,也称为有效约束或起作用约束),对偶价格值才可能不是0。本例中:第3、4行是紧约束,对应的对偶价格值为10,表示当紧约

14、束 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS = 20 变为 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS = 21 时,目标函数值 = 280 +10 = 290。对第4行也类似。 对于非紧约束(如本例中第2、5行是非紧约束),DUAL PRICE 的值为0, 表示对应约束中不等式右端项的微小扰动不影响目标函数。有时, 通过分析DUAL PRICE, 也可对产生不可行问题的原因有所了解。18.2 集的使用LINGO允许把相联系的对象聚合成集(sets)。一旦把对象聚合成集,就可以利用集来最大限度的发挥LINGO语言的优势。集是LINGO建模语言的基础,是程序设计最

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号