ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:54.11KB ,
资源ID:7161468      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7161468.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LINDO教程.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LINDO教程.docx

1、LINDO教程LINDO软件包(学生版) 使用手册目 录第一节 简介与安装第二节 用LINDO求解线性规划 (LP) 问题第三节 用LINDO求解整数规划(IP) 和二次规划(QP) 问题 第四节 GINO简介第五节 LINGO简介1997年8月第一节 简介与安装11简介本文主要面向大中专学生, 研究生, 及掌握一定的高等代数知识的读者,介绍LINDO软件包(学生版)的基本使用方法。该软件包(学生版)主要功能在于帮助使用者较快地输入一个优化问题的式子, 求解并分析该优化问题, 然后可做些较小的改动, 并重复上述的过程. 该软件包(学生版)在微机上DOS环境下运行。其使用界面不是图形式的,而是字

2、符式的;不是菜单式的, 而是面向具体的命令 (Command). 它有许多的命令, 每一个命令都可随时执行, 由系统检查该命令是否在上下文中起作用. 它采用一种对用户友好的交互使用方式, 包括了所有的使用过程指导. 基于使用的具体情况, 它会向使用者询问下一步将做什么, 或等待使用者输入下一个命令.LINDO软件包(学生版)包括LINDO,GINO,LINGO和 LINGO NL(LINGO2)等优化软件的学生版以及相应的例子文件。由于LINDO程序执行速度很快,易于方便地输入、求解和分析优化问题,LINDO在教学、科研和工业界得到广泛应用。这里用LINDO软件包作为LINDO,GINO,LI

3、NGO和 LINGO NL等的统称,包含五种组件,下面分别介绍如下:(1)LINDO是Linear INteractive and Discrete Optimizer字首的缩写形式,是由Linus Schrage 于1986年开发的优化计算软件包, 可以用来求解线性规划 (LP-Linear Programming), 整数规划 (IP-Integer Programming) 和二次规划 (QP-Quadratic Programming) 问题. LINDO易于规划问题的输入、求解和分析,程序执行速度很快。LINDO学生版最多可求解多达200个变量和100个约束的规划问题。 (2)GIN

4、O可用于求解非线性规划 (NLP-Nonlinear Linear Programming) 问题,求解线性和非线性方程组和不等式组,以及代数方程求根。GINO中包含了有关财务、概率等方面的函数和三角函数,以及各种一般的数学函数,可供使用者建立问题模型时调用。GINO 学生版最多可求解多达50个变量和30个约束的问题。 (3)LINGO 可用于求解线性规划和整数规划问题。(4) LINGO NL(LINGO2) 可用于求解线性、非线性和整数规划问题。 与LINDO和GINO不同的是,LINGO和LINGO NL(LINGO2) 包含了内置的建模语言,允许以简练、直观的方式描述所需求解的问题,模

5、型中所需的数据可以以一定格式保存在列表(List)和表格(Table)中,也可以保存在独立的文件中。LINGO和LINGO NL(LINGO2) 学生版最多可求解多达200个变量和100个约束的问题。(5)例子文件:在软件包中还含有例子文件,其中有些例子文件与各软件在一起,但大多数例子文件一般安装在例子目录。例子目录下的例子文件是以LUTOS 1-2-3的WK1格式存储的(也可用MS-OFFICE工具的EXCEL软件读写)。12安装过程:LINDO软件包(学生版)在微机上DOS环境下通过安装后运行。安装盘为一片三英寸软盘,安装盘上有安装程序 (install.exe) 和简要介绍文本 (rea

6、d.me),还带有多个压缩文件和一个解压缩程序 (lha.exe). 安装时,将安装盘直接插入软驱,然后运行该软盘上的安装程序,即在该软驱的提示符 (如A: 或B:)下键入“install”。 按“回车”(ENTER键)后,只需遵照屏幕上的提示即可完成整个安装过程:(1)用户首先必须选择所需安装的内容:用户可以任意选择所需安装的内容(从11节所介绍的五种组件中任意选取)。如果想安装五种组件中的某个组件,就在它前面键入“Y”;否则键入“N”,然后“回车”。如此反复,完成后屏幕将提示您确认您的选择。(2)用户必须选择所需安装到的目的地(一般是硬盘上的某个目录)。屏幕将提示缺省的目录,您可以任意修改

7、,如此反复,完成后屏幕将提示您确认您的选择。 (3)确认您的选择之后,安装程序就会自动完成全部后续安装过程。安装过程结束后,您就可以进入安装好的目录,运行相应的优化软件了。第二节 用LINDO求解线性规划(LP)问题2.1初试 LINDO LINDO 的求解机制:LINDO 的求解过程采用单纯形法,一般是首先寻求一个可行解, 在有可行解情况下再寻求最优解. 用LINDO 求解一个LP问题会得到如下的几种结果: 不可行(No feasible solution) 或 可行(Feasible) 可行时又可分为: 有最优解(Optimal Solution)和解无界(Unbounded Soluti

8、on)两种情况. 由于在实际问题中, 不太可能出现最大利润无上限的情形, 所以使用者应检查是否少了一个约束或有其它印刷错误. 在LINDO子目录下执行LINDO.EXE文件即可进入LINDO工作环境,其屏幕显示如下:LINDO/PC 5.02 (4 MAR 92) STUDENT VERSION. FOR EDUCATIONAL USE ONLY. SINGLE USER LICENSE FOR EDUCATIONAL USE ONLY DISTRIBUTED WITH TEXTBOOKS BY WADSWORTH PUBLISHING : “:”为LINDO提示符,在其之后, 使用者即可用具

9、体的命令来输入并求解优化问题。让我们来解如下LP问题: 由于LINDO 中已假设所有的变量都是非负的, 所以非负约束可不必再输入到计算机中;LINDO也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符);约束条件中的“=”可用“”代替。上面问题用键盘输入如下: : MAX 2x + 3Y ? ST ? 4X + 3Y 10 ? 3x + 5Y 12 ? END :LINDO 中一般称上面这种问题实例(INSTANCE)为模型(MODEL)。以后涉及该模型时,目标函数为第一行,两个约束条件分别为第二、三行。直接键入运行(GO)命令就可得到解答, 屏幕显示如下::GOLP OPTIM

10、UM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) 7.4545450 VARIABLE VALUE REDUCED COST X 1.272727 .000000 Y 1.636364 .000000 ROW SLACK OR SURPLUS DUAL PRICES 2) .000000 .090909 3) .000000 .545455 NO. ITERATIONS= 2 DO RANGE(SENSITIVITY) ANALYSIS? N: 计算结果表明: “LP OPTIMUM FOUND AT STEP2”表示单纯形法在两次迭代(旋转)后得到

11、最优解。 “OBJECTIVE FUNCTION VALUE 1) 7.4545450 ”表示最优目标值为7.4545450. “VALUE”给出最优解中各变量(VARIABLE)的值: X =1.272727, Y =1.636364. “REDUCED COST” 给出最优单纯形表中第0行中变量的系数 ( max型问题). 其中基变量的reduced cost值应为0,对于非基变量, 相应的 reduced cost值表示当该非基变量增加一个单位时目标函数减少的量。本例中此值均为0。 “SLACK OR SURPLUS” 给出松驰变量的值: 第2、3行松驰变量均为0, 说明对于最优解来讲,

12、两个约束(第2、3行)均取等号。 “DUAL PRICES” 给出对偶价格的值: 第2、3行对偶价格分别为 .090909,.545455。 “NO. ITERATIONS= 2” 表示用单纯形法进行了两次迭代(旋转)。一个问题解答之后, LINDO 会询问是否需要做灵敏性分析(DO RANGE (SENSITIVITY) ANALYSIS? ) 如果你不需要,你应回答“N”(NO),回到提示符“:”之下. 如果想重新看到刚才的模型,可键入 LOOK 命令, LINDO 会询问具体的行号. 典型的应答可以是 3, 或1-2, 或ALL, 而结果, 相应地会显示出第 3行, 第1-2 行, 或所

13、有问题行.: LOOKROW:3 3) 3 X + 5 Y = 12:或: LOOK all MAX 2x + 3Y SUBJECT TO 2) 4 X + 3 Y = 10 3) 3 X + 5 Y = 12 END :如果想修改问题,可键入 ALTER 命令, LINDO 会询问行号, 变量名, 及新的系数. 例如:如果要将上面问题中约束条件改为,再全部看一下,并求解新问题,那么键入ALTER 命令后相应的应答为 2,X,和6, 以下是演示过程:ALTERROW:2VAR:XNEW COEFFICIENT:6:LOOK ALL MAX 2 X + 3 Y SUBJECT TO 2) 6 X

14、 + 3 Y = 10 3) 3 X + 5 Y = 12 END:go LP OPTIMUM FOUND AT STEP 0 OBJECTIVE FUNCTION VALUE 1) 7.3333330 VARIABLE VALUE REDUCED COST X .666667 .000000 Y 2.000000 .000000 ROW SLACK OR SURPLUS DUAL PRICES 2) .000000 .047619 3) .000000 .571429 NO. ITERATIONS= 0 DO RANGE(SENSITIVITY) ANALYSIS? N: QUIT最后键入退

15、出(QUIT)命令, 即可退出LINDO工作环境。注:输入、查看和修改一个LP模型更方便的方法是采用全屏幕编辑器。在“:”提示符下键入编辑(EDIT)命令可以进入全屏幕编辑器,可以和其他文本编辑器一样方便使用。22 求解LP问题的一般步骤及例子步骤: 1) 首先是输入一个LP问题。为了检查有无错误,可用LOOK命令来显示问题式中的一行,几行或全部。 例如: LOOK 3 - 屏幕显示第3行LOOK 1-3 - 显示第1-3行LOOK ALL - 显示整个模型2)修正模型。如果需要对问题中某变量系数进行修正,可用ALTER命令。此时,在LINDO的提示下需输入相应的变量所在的行号,变量名,及新的

16、系数值。此外下面两种情况也可用ALTER命令:改动约束条件的右端顶,可以将RHS(即right-hand side)做为变量名。改变约束条件中的不等号方向(如),可以将DIR做为变量名。修改问题还可用EXT命令(增加新的约束行), DEL命令(去掉一行), 和APPC命令(增加一个新的变量), 也可用EDIT编辑器。3)存储模型如果输入的问题模型已经不再需要改动,可用SAVE命令将它存入文件中。(此时LINDO会提示你输入一个文件名。)日后如需用到该问题可用RETR命令提取。 4)键入GO命令可得到LP问题的最优解。如果想将计算结果直接输出到某文件中,可在GO命令前先使用DIVERT命令,LI

17、NDO会提示你键入该输出文件的文件名,此后键入GO命令,屏幕上只会显示最优的目标函数值,其它结果都将存入输出文件。GO命令执行后,LINDO会问你是否做敏感性分析,可看需要键入“Y”(YES)或“N” (NO). 如果没什么错误,求解就结束了。可键入QUIT退出。 LINDO 中有下面三种命令可帮助使用者对LINDO的命令有更多的了解: HELP: 若HELP后面跟有具体命令, 则解释该命令. 若单只一个HELP, 将会给出一般性的信息. CATEGORIES (可简写为CAT): 只列出所有命令的类型目录, 随后可允许使用者有选择地列出某个具体类型中的所有命令. COMMANDS ( 简写为

18、COM) COM: 按类型列出所有有效的命令, 例如输入(INPUT)型命令, 输出(OUTPUT)型命令, 等等.下面即是一个具体应用的例子: (可参照上述使用步骤)首先输入问题: (或用命令RETR读取LINDO目录下的例子文件DAKOTA) MAX 60 DESKS + 30 TABLES + 20 CHAIRS SUBJECT TO 2) 8 DESKS + 6 TABLES + CHAIRS = 48 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS = 20 4) 2 DESKS + 1.5 TABLES + 0.5 CHAIRS = 8 5) TABLES =

19、 5 END 问题求解:GO LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) 280.00000 VARIABLE VALUE REDUCED COST DESKS 2.000000 .000000 TABLES .000000 5.000000 CHAIRS 8.000000 .000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 24.000000 .000000 3) .000000 10.000000 4) .000000 10.000000 5) 5.000000 .000000 NO. I

20、TERATIONS= 2DO RANGE(SENSITIVITY) ANALYSIS? 随后键入Y 表示同意做敏感性分析: RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE DESKS 60.000000 20.000000 4.000000 TABLES 30.000000 5.000000 INFINITY CHAIRS 20.000000 2.500000 5.000000 RIGHT HAND

21、 SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 48.000000 INFINITY 24.000000 3 20.000000 4.000000 4.000000 4 8.000000 2.000000 1.333333 5 5.000000 INFINITY 5.000000 23计算结果显示及敏感性分析 仍以上面的问题DAKOTA为例,下面给出其结果的一般注释:“LP OPTIMUM FOUND AT STEP2”表示 LINDO在(用单纯形法)两次迭代或旋转后得到最优解。 “OBJECTIVE F

22、UNCTION VALUE 280.000000“表示最优目标值为280. “VALUE”给出最优解中各变量的值。例. Dakota 问题中需造2个(书桌)desks, 0个(桌子)tables, 和8个(椅子) chairs. “SLACK OR SURPLUS”给出松驰变量的值。上例中: s1= 第2行松驰变量 =24 s2= 第3行松驰变量 =0 s3= 第4行松驰变量 =0 s4= 第5行松驰变量 =5 “REDUCED COST” 出最优单纯形表中第0行中变量的系数 ( max型问题). 其中基变量的reduced cost值应为0,对于非基变量 Xj, 相应的 reduced co

23、st值表示当Xj 增加一个单位时目标函数减少的量。 另外,当你执行TABLEAU命令后,LINDO会显示单纯形表。 在下表中我们可看到, 基向量为BV=s1, Chairs, DESKS, s4, 注意,在此例中,SLK5对应的是s4. ART是人工变量(artificial variable)。ART就是相应的目标值z; 这样 z+ 5TABLES +10s2+10s3=280。:TABLEAU THE TABLEAU ROW (BASIS) DESKS TABLES CHAIRS SLK 2 SLK 3 1 ART .000 5.000 .000 .000 10.000 2 SLK 2 .

24、000 -2.000 .000 1.000 2.000 3 CHAIRS .000 -2.000 1.000 .000 2.000 4 DESKS 1.000 1.250 .000 .000 -.500 5 SLK 5 .000 1.000 .000 .000 .000 ROW SLK 4 SLK 5 1 10.000 .000 280.000 2 -8.000 .000 24.000 3 -4.000 .000 8.000 4 1.500 .000 2.000 5 .000 1.000 5.000 敏感性分析 使用LINDO时, 结果输出中会提供敏感性分析. 这一信息一般包含于两个标题之下,

25、 其一是REDUCED COSTS, 另一个是DUAL PRICES. 它们分别表示了当变量或约束条件有微小变动时, 目标函数的变化率. 在输出结果中对应于每个变量都有一个REDUCED COST, 若其数值为x, 表示对应的变量为零时, 若增加1 个单位, 目标函数将减少x 个单位. 输出结果中对应于每一个约束也都有一个DUAL PRICE. 若其数值为x, 表示对应约束中不等式右端项若减少1 个单位, 目标函数将增加x 个单位. 如果REDUCED COST或DUAL PRICE 的值为0, 表示微小扰动不影响目标函数. 有时, 通过分析DUAL PRICE, 也可对产生不可行问题的原因有

26、所了解.24 注意事项:1). 进入LINDO后, : 表示LINDO 已准备接受一个命令.2) . LINDO 中已假定所有变量非负. 变量名不能超过8个字符。3) 如要输入 = 型约束, 相应以代替即可. 4) . LINDO不允许变量出现在一个约束条件的右端. 5) 目标函数及各约束条件之间一定要有空格分开. 6) 一般LINDO中不能接受括号( )和逗号, , 例:400(X1+X2)需写为400X1+400X2; 10,000需写为10000.7). EDIT 命令调用一个全屏幕编辑器,可对当前模型进行全屏幕编辑. 编辑完成后用“Esc” 键保存当前修改,退出全屏幕编辑器;此时若模型

27、有错误,则要求改正错误后再退出。用“Ctrl + Break” 键废弃当前修改,退出全屏幕编辑器。8). LINDO 有 DEL, EXT,及 ALTER等其它编辑命令, 虽然全屏幕编辑器EDIT 使这些命令用处减少了, 但 DEL 在大块地清除一个模型时是有用的, 而ALTER可允许做全局性的替换.9). LOOK 命令会为你在屏幕上显示你的问题(EDIT 也可如此).10). 如想获得敏感性分析可用RANGE 命令.11). SAVE 命令用来存储一个问题模型到文件中, RETR或TAKE 命令用来读取一个以文件存储的模型. TAKE命令还可用于解读一个以文本格式存储的LINGO 格式的问

28、题模型.12). DIVERT 会导致大多数信息被输送到文件中, 而只有少量信息被传送到屏幕. RVRT 用于结束 DIVERET. 如果你divert 到一个名为 PRN的文件, 结果将被直接传到打印机.13)LINDO文件中常有注释间杂于各命令(COMMANDS)之中, 前面注有!符号. 例如: ! This is a comment. 14)LINDO将目标函数所在行作为第一行,从第二行起为约束条件。行号自动产生,也可以人为定义行号或行名。行名和变量名一样,不能超过8个字符。15)数值均衡化及其它考虑 LINDO 不能将LP 中的矩阵进行数值均衡化. 为了避免数值问题, 使用者应自己对矩

29、阵的行列进行均衡化. 一个原则是, 系数矩阵中非零元的绝对值不能大于100,000 或者小于.0001. 如果LINDO 觉得矩阵元素之间很不均衡, 将会给出警告.16)量纲分析与一般错误的避免 当你将一个实际问题写成一个数学表达式时, 有可能式子中会带有某些错误. 这些错误主要有以下几类: 1.简单的印刷错误 2.表达式的原理错误 3.近似误差第一类错误虽只是抄写一类问题造成的, 但当问题规模较大时, 要搜寻它们也是一个困难的问题; 第二类错误也往往是建模不当造成的. 如何避免这些错误? 对第一类错误, 主要任务在于如何找到它们. 在LINDO 中有一些可帮助寻找错误的功能. 其中之一就是P

30、ICTURE 命令, 它的功能是可以将表达式中的系数通过列表显示出来. 例: MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 +9 C1 +8 C2 SUBJECT TO 2) A0 +A1 +A2=8 3) B0 +B1 +B2=9 4) A0 +A1 +A2=6 5) A0 +B0 +CO =6 6) A1 +B1 +C1 =5 7) A2 +B2 +C2 =9 END 用PICTURE可得到 A A A B B B C C C C 0 1 2 0 1 2 0 1 2 O 1: 5 6 2 4 3 7 2 9 8 MIN 2: 1 1 1 8 3:

31、 1 1 1 9 4: 1 1 1 6 5: 1 1 1 =6 6: 1 1 1 =5 7: 1 1 1 =9 从上表可以发现, 最后一列中的 1可能放错位置了. 其实原因只不过在表达式5) 行中C0与CO弄混了. 另外, 使用者有时从不合理的计算结果中也可发现第1 类的错误.第二类的表达式错误有许多类. 这类常由新手造成的问题可通过量纲分析(dimensional analysis)暴露出来. 所谓量纲分析, 就是检查一下表达式中各量的单位是否一致.2.5 LINDO命令 LINDO 中有下面三种命令可帮助使用者对LINDO的命令有更多的了解: HELP CATEGORIES (可简写为CAT) COMMANDS ( 简写为COM) 功能如下: HE

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1