您好,欢迎访问三七文档
LINDO软件包(学生版)使用手册目录第一节简介与安装第二节用LINDO求解线性规划(LP)问题第三节用LINDO求解整数规划(IP)和二次规划(QP)问题第四节GINO简介第五节LINGO简介1997年8月1第一节简介与安装1·1简介本文主要面向大中专学生,研究生,及掌握一定的高等代数知识的读者,介绍LINDO软件包(学生版)的基本使用方法。该软件包(学生版)主要功能在于帮助使用者较快地输入一个优化问题的式子,求解并分析该优化问题,然后可做些较小的改动,并重复上述的过程.该软件包(学生版)在微机上DOS环境下运行。其使用界面不是图形式的,而是字符式的;不是菜单式的,而是面向具体的命令(Command).它有许多的命令,每一个命令都可随时执行,由系统检查该命令是否在上下文中起作用.它采用一种对用户友好的交互使用方式,包括了所有的使用过程指导.基于使用的具体情况,它会向使用者询问下一步将做什么,或等待使用者输入下一个命令.LINDO软件包(学生版)包括LINDO,GINO,LINGO和LINGONL(LINGO2)等优化软件的学生版以及相应的例子文件。由于LINDO程序执行速度很快,易于方便地输入、求解和分析优化问题,LINDO在教学、科研和工业界得到广泛应用。这里用LINDO软件包作为LINDO,GINO,LINGO和LINGONL等的统称,包含五种组件,下面分别介绍如下:(1)LINDO是LinearINteractiveandDiscreteOptimizer字首的缩写形式,是由LinusSchrage于1986年开发的优化计算软件包,可以用来求解线性规划(LP----LinearProgramming),整数规划(IP----IntegerProgramming)和二次规划(QP----QuadraticProgramming)问题.LINDO易于规划问题的输入、求解和分析,程序执行速度很快。LINDO学生版最多可求解多达200个变量和100个约束的规划问题。(2)GINO可用于求解非线性规划(NLP----NonlinearLinearProgramming)问题,求解线性和非线性方程组和不等式组,以及代数方程求根。GINO中包含了有关财务、概率等方面的函数和三角函数,以及各种一般的数学函数,可供使用者建立问题模型时调用。GINO学生版最多可求解多达50个变量和30个约束的问题。(3)LINGO可用于求解线性规划和整数规划问题。(4)LINGONL(LINGO2)可用于求解线性、非线性和整数规划问题。与LINDO和GINO不同的是,LINGO和LINGONL(LINGO2)包含了内置的建模语言,允许以简练、直观的方式描述所需求解的问题,模型中所需的数据可以以一定格式保存在列表(List)和表格(Table)中,也可以保存在独立的文件中。LINGO和LINGONL(LINGO2)学生版最多可求解多达200个变量和100个约束的问题。(5)例子文件:在软件包中还含有例子文件,其中有些例子文件与各软件在一起,但大多数例子文件一般安装在例子目录。例子目录下的例子文件是以LUTOS1-2-3的WK1格式存储的(也可用MS-OFFICE工具的EXCEL软件读写)。21·2安装过程:LINDO软件包(学生版)在微机上DOS环境下通过安装后运行。安装盘为一片三英寸软盘,安装盘上有安装程序(install.exe)和简要介绍文本(read.me),还带有多个压缩文件和一个解压缩程序(lha.exe).安装时,将安装盘直接插入软驱,然后运行该软盘上的安装程序,即在该软驱的提示符(如A:或B:)下键入“install”。按“回车”(ENTER键)后,只需遵照屏幕上的提示即可完成整个安装过程:(1)用户首先必须选择所需安装的内容:用户可以任意选择所需安装的内容(从1·1节所介绍的五种组件中任意选取)。如果想安装五种组件中的某个组件,就在它前面键入“Y”;否则键入“N”,然后“回车”。如此反复,完成后屏幕将提示您确认您的选择。(2)用户必须选择所需安装到的目的地(一般是硬盘上的某个目录)。屏幕将提示缺省的目录,您可以任意修改,如此反复,完成后屏幕将提示您确认您的选择。(3)确认您的选择之后,安装程序就会自动完成全部后续安装过程。安装过程结束后,您就可以进入安装好的目录,运行相应的优化软件了。第二节用LINDO求解线性规划(LP)问题2.1初试LINDOLINDO的求解机制:LINDO的求解过程采用单纯形法,一般是首先寻求一个可行解,在有可行解情况下再寻求最优解.用LINDO求解一个LP问题会得到如下的几种结果:不可行(Nofeasiblesolution)或可行(Feasible)可行时又可分为:有最优解(OptimalSolution)和解无界(UnboundedSolution)两种情况.由于在实际问题中,不太可能出现最大利润无上限的情形,所以使用者应检查是否少了一个约束或有其它印刷错误.在LINDO子目录下执行LINDO.EXE文件即可进入LINDO工作环境,其屏幕显示如下:LINDO/PC5.02(4MAR92)STUDENTVERSION.FOREDUCATIONALUSEONLY.SINGLEUSERLICENSEFOREDUCATIONALUSEONLYDISTRIBUTEDWITHTEXTBOOKSBYWADSWORTHPUBLISHING:3“:”为LINDO提示符,在其之后,使用者即可用具体的命令来输入并求解优化问题。让我们来解如下LP问题:Maxzxystxyxyxy23431035120..,由于LINDO中已假设所有的变量都是非负的,所以非负约束可不必再输入到计算机中;LINDO也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符);约束条件中的“=”及“=”可用“”及“”代替。上面问题用键盘输入如下::MAX2x+3Y?ST?4X+3Y10?3x+5Y12?END:LINDO中一般称上面这种问题实例(INSTANCE)为模型(MODEL)。以后涉及该模型时,目标函数为第一行,两个约束条件分别为第二、三行。直接键入运行(GO)命令就可得到解答,屏幕显示如下::GOLPOPTIMUMFOUNDATSTEP2OBJECTIVEFUNCTIONVALUE1)7.4545450VARIABLEVALUEREDUCEDCOSTX1.272727.000000Y1.636364.000000ROWSLACKORSURPLUSDUALPRICES2).000000.0909093).000000.545455NO.ITERATIONS=24DORANGE(SENSITIVITY)ANALYSIS??N:计算结果表明:“LPOPTIMUMFOUNDATSTEP2”表示单纯形法在两次迭代(旋转)后得到最优解。“OBJECTIVEFUNCTIONVALUE1)7.4545450”表示最优目标值为7.4545450.“VALUE”给出最优解中各变量(VARIABLE)的值:X=1.272727,Y=1.636364.“REDUCEDCOST”给出最优单纯形表中第0行中变量的系数(max型问题).其中基变量的reducedcost值应为0,对于非基变量,相应的reducedcost值表示当该非基变量增加一个单位时目标函数减少的量。本例中此值均为0。“SLACKORSURPLUS”给出松驰变量的值:第2、3行松驰变量均为0,说明对于最优解来讲,两个约束(第2、3行)均取等号。“DUALPRICES”给出对偶价格的值:第2、3行对偶价格分别为.090909,.545455。“NO.ITERATIONS=2”表示用单纯形法进行了两次迭代(旋转)。一个问题解答之后,LINDO会询问是否需要做灵敏性分析(DORANGE(SENSITIVITY)ANALYSIS?)如果你不需要,你应回答“N”(NO),回到提示符“:”之下.如果想重新看到刚才的模型,可键入LOOK命令,LINDO会询问具体的行号.典型的应答可以是3,或1-2,或ALL,而结果,相应地会显示出第3行,第1-2行,或所有问题行.:LOOKROW:33)3X+5Y=12:或:LOOKallMAX2x+3YSUBJECTTO2)4X+3Y=103)3X+5Y=12END:如果想修改问题,可键入ALTER命令,LINDO会询问行号,变量名,及新的系数.例如:如果要将上面问题中约束条件4310xy改为6310xy,再全部看一下,并求解新问题,那么键入ALTER命令后相应的应答为2,X,和6,以下是演示过程:5:ALTERROW:2VAR:XNEWCOEFFICIENT:6:LOOKALLMAX2X+3YSUBJECTTO2)6X+3Y=103)3X+5Y=12END:goLPOPTIMUMFOUNDATSTEP0OBJECTIVEFUNCTIONVALUE1)7.3333330VARIABLEVALUEREDUCEDCOSTX.666667.000000Y2.000000.000000ROWSLACKORSURPLUSDUALPRICES2).000000.0476193).000000.571429NO.ITERATIONS=0DORANGE(SENSITIVITY)ANALYSIS??N:QUIT最后键入退出(QUIT)命令,即可退出LINDO工作环境。注:输入、查看和修改一个LP模型更方便的方法是采用全屏幕编辑器。在“:”提示符下键入编辑(EDIT)命令可以进入全屏幕编辑器,可以和其他文本编辑器一样方便使用。62·2求解LP问题的一般步骤及例子步骤:1)首先是输入一个LP问题。为了检查有无错误,可用LOOK命令来显示问题式中的一行,几行或全部。例如:LOOK3---》屏幕显示第3行LOOK1-3---》显示第1-3行LOOKALL---》显示整个模型2)修正模型。如果需要对问题中某变量系数进行修正,可用ALTER命令。此时,在LINDO的提示下需输入相应的变量所在的行号,变量名,及新的系数值。此外下面两种情况也可用ALTER命令:改动约束条件的右端顶,可以将RHS(即right-handside)做为变量名。改变约束条件中的不等号方向(如或),可以将DIR做为变量名。修改问题还可用EXT命令(增加新的约束行),DEL命令(去掉一行),和APPC命令(增加一个新的变量),也可用EDIT编辑器。3)存储模型如果输入的问题模型已经不再需要改动,可用SAVE命令将它存入文件中。(此时LINDO会提示你输入一个文件名。)日后如需用到该问题可用RETR命令提取。4)键入GO命令可得到LP问题的最优解。如果想将计算结果直接输出到某文件中,可在GO命令前先使用DIVERT命令,LINDO会提示你键入该输出文件的文件名,此后键入GO命令,屏幕上只会显示最优的目标函数值,其它结果都将存入输出文件。GO命令执行后,LINDO会问你是否做敏感性分析,可看需要键入“Y”(YES)或“N”(NO).如果没什么错误,求解就结束了。可键入QUIT退出。LINDO中有下面三种命令可帮助使用者对LINDO的命令有更多的了解:HELP:若HELP后面跟有具体命令,则解释该命令.若单只一个HELP,将会给出一般性的信息.CATEGORIES(可简写为CAT):只列出所有命令的类型目录,随后可允许使用者有选择地列出某个具体类型中的所有命令.COMMANDS(简写为COM)COM:按类型列出所有有效的命令,例如输入(INPUT)型命令,输出(OUTPUT)型命令,等等.下面即是一个具体应用的例子:(可参照上述使用步骤)首先输入问题:(或用命令RETR读取LINDO目录下的例子文件DAKOTA)MAX60DESKS+30TABLES+20CHAIRS7SUBJECTTO2)8DESKS+6TABLES+CHAIRS=483)4DESKS+2TABLES+1
本文标题:Lindo使用教程
链接地址:https://www.777doc.com/doc-2880759 .html