Lindo的使用
- 格式:ppt
- 大小:726.00 KB
- 文档页数:37
LINDO程序软件使用说明一、概述LINDO:LINDO Stand for Linear,Interactive,Discrete,Optimizer功能:求解线性规划类的数学模型。
特点:自然格式数学模型,灵活方便,快速输入与求解版本:LINDO6.1二、LINDO6.1编辑窗口界面调用LINDO程序:单击“开始、程序、LINDO32”,即进入程序界面。
LINDO6.1为WINDOWS程序,其基本窗口及编辑窗口如图1所示。
模型按自然格式在编辑串口输入及修改。
工具栏给出编辑使用和求解使用的基本工具。
图1-1 LINDO6.1界面工具栏各种工具的功能如下:——建立一个编辑窗口;打开一个已有的文件;查阅一个已有文件内容——保存文件;打印文件——剪切;复制;粘贴——查找与替换文本;修改缺省的系统参数;跳转到一个特定的行——可用符号向导,用于辅助建模;清除窗口全部内容——求解;编译文本模型,可查找模型语法错误及汇总所用符号——选择简洁或全部解报告;产生不同项目的解报告;产生模型系数矩阵图——在不同窗口之间切换;平铺所有打开的窗口;关闭所有窗口——联机帮助三、模型输入示例模型输入以文本方式进行,采用模型表示的自然格式。
在编辑窗口中,按自然格式输入:例:对下述LP模型:输入格式:说明:(1)输入命令“max”或者“min”,后面直接跟目标函数表达式,不能输入函数符号“z”;(2)如果函数表达式较长,可键入回车符中断转下一行继续输入;(3)不识别下标变量;不识别“⨯、/、≠、∑、()、*”等运算符,只识别“+、-”运算符;(4)当目标函数表达式输入完毕后,输入“st”命令,此后输入的表达式为约束条件;(5)输入约束条件时,可以输入“<”、“>”表示约束条件中“≤”和“≥”的连接符号;(6)目标函数表达式中不能出现常数项;约束条件左边表达式中也不能出现常数;约束右端项必须是数值,不能出现变量符号;(7)若变量取值符号限制为“x≥0”形式,则可省略不必输入;若变量x取值符号限制为“取值无约束”形式;则在结尾end后加入“free x”限制;(8)模型输入完毕后需输入end表示结束。
LINDO使用手册LINDO Users Manual第一章 LINDO初步LINDO 是Linear INteractive Discrete Optimizer的缩写,是一个线性和整数规划的软件系统。
这里介绍的LINDO/386 5.3版本,最大规模的模型的非零系数可以达到1,000,000个,最大变量个数可以达到100,000个,最大目标函数和约束条件个数可以达到32000个,最大整数变量个数可以达到100,000个。
它的特点是采用交互方式操作,而且命令简单明了,很容易掌握。
用户在输入初步的数学模型后,可以一边运行,一边修改调试,直至获得满意的结果。
LINDO既是一个实用的求解大规模线性和整数规划系统,也很适用于训练的目的,用来培养学生面对较复杂的实际问题,构造线性及整数规划模型以及求解这些问题的能力。
限于本教材的内容,本手册只介绍有关线性规划和整数规划的基本内容,省略了有关二次规划、参数规划以及有关线性规划算法的比较专门的内容。
§1.1 LINDO 命令一览表LINDO 命令纳成十一类,每一类的名称及所属命令如下:1、查询类(Information)HELP 求助COM ( Command ) 命令列表LOCAL 当前版本信息CAT ( Categories ) 命令分类TIME 显示当前时间DATE 显示当前日期2、文件输入类( Input )MAX 键盘输入极大化模型MIN 键盘输入极小化模型RETR ( Retrieve ) 从磁盘读入模型文件RMPS ( Read MPS ) 从磁盘读入MPS文件TAKE 从磁盘读入模型或命令文件LEAV ( LEAVE ) TAKE命令的终止RDBC* 读取用SBDC命令保存的基列作为初始基FBR * 读取用FBS命令保存的基FINS* 读取用MPS格式保存的基3、显示类(Display)PIC ( Picture ) 显示矩阵中非零元素的分布及数量级TABL ( Tableau ) 显示当前单纯形表LOOK 显示模型的数学形式NONZ ( Nonzeros ) 显示解中的非零变量SHOC ( Show Column ) 显示模型中的一列SOLU ( Solution ) 显示当前得到的解RANGE 显示灵敏度分析的结果BPIC* 显示三角化的当前基逆矩阵CPRI* 显示所选择列的有关信息RPRI* 显示所选择行的有关信息DMPS* 显示以MPS格式表示的解PPIC* 显示行列重新排列的矩阵,使非零元素最靠近对角线4、文件输出类( File Output )SAVE 模型存盘DIVE ( Divert ) 将屏幕输出转向磁盘文件RVRT ( Revert ) 重新回到屏幕输出状态SMPS ( Save MPS ) 模型以 MPS 格式存盘SDBC* 将当前基的列向量以文件形式保存FBS* 将当前基以文件形式保存FPUN* 将当前基以MPS形式保存SMPN* 将当前模型用非标准的MPS格式保存5、求解类(Solution)GO 求解一个模型PIV(Pivot) 进行一次单纯形叠代GLEX* 用字典序方法优化6、问题编辑类( Problem Editing )ALT(Alter) 修改模型中的系数EXT(Extension) 增加一个约束DEL(Delete) 删除一个约束SUB(Simple Upper Bound) 给出一个变量的上界APPC(Append Column) 增加一列SLB(Simple Lower Bound) 给出一个变量的下界FREE 取消一个变量的上下界EDIT 用全屏幕编辑建立或修改模型7、退出( Quit )QUIT 退出 LINDO 系统8、整数规划、二次规划和参数规划( Integer, Quadratic and Parametric Programs )INT 定义一个0-1变量QCP*(Quadratic Programming) 定义二次规划PARA*(Parametric Programming)求解参数规划POSD*(Positive Definiteness) 检查二次规划矩阵的正定性TITAN* 紧缩连续变量的上界以及0-1变量的系数BIP* 在整数规划中给出一个剪枝的界GIN (General Integer)定义一个整数变量IPTOL* 设定整数规划最优解的宽容度9、对话参数( Conversational Parameters )WIDTH 设置打印机宽度TERS ( Terse ) 简洁输出信息VERB ( Verbose ) 冗长输出信息BAT ( Batch ) 成批输出信息PAGE 设定屏幕页的大小PAUSE 暂停10、用户子程序USER 执行用户提供的子程序11、杂项INV* (INVERT)求当前基的逆矩阵,以减少叠代误差STAT (STATISTICS)统计模型矩阵的系数BUG 如发现系统缺陷,提供有关信息SET 设置LINDO的内部参数TITL (TITLE)给出模型的标题§1.2 LINDO 初步操作以下命令,可以完成模型输入,模型显示,模型运行,退出LINDO等操作,这些命令是:• MAX 开始输入一个极大化模型• MIN 开始输入一个极小化模型• TITL 输入模型标题• EDIT 全屏幕输入或全屏幕编辑一个模型• LOOK 在屏幕上显示已输入的模型• GO 模型运行• QUIT 退出LINDO,返回操作系统在这一章中,先对这几个命令的用法作详细解说。
Lindo 和Lingo 数学软件的简单使用方法一、Lindo最新版本:6.1版(注册版)限制:4000个约束、8000个变量、800个整型变量功能:可以求解线性规划、整数规划、混合整数规划、二次规划、目标规划。
我们主要用它来求解整数规划或混合整数规划。
特点:执行速度非常快 例1:求解整数规划问题12121212max 58..65945,0z x x s t x x x x x x =++≤+≤≥且整解:在lindo 的运行窗口中输入 max 5x1+8x2 stx1+x2<6 5x1+9x2<45 end gin 2然后按Solve 菜单或快捷键得运行结果。
OBJECTIVE FUNCTION V ALUE (目标函数最优值) 1) 40.00000VARIABLE V ALUE REDUCED COST (变量增加1时目标函数改变量) X1 0.000000 -5.000000 X2 5.000000 -8.000000ROW SLACK OR SURPLUS DUAL PRICES (行) (松弛变量值) (对偶价格,表示约束右边常数增加1时目标函数改变量)) 2) 1.000000 0.000000 3) 0.000000 0.000000RANGES IN WHICH THE BASIS IS UNCHANGED (灵敏度分析) OBJ COEFFICIENT RANGES (目标函数中变量的系数的变动范围,在此范围内最优解不变) V ARIABLE CURRENT ALLOWABLE ALLOWABLECOEF (当前系数) INCREASE (增加量) DECREASE (减少量) X1 5.000000 0.000000 INFINITY X2 8.000000 0.000000 INFINITYRIGHTHAND SIDE RANGES (约束条件右边常数的变化范围,在此范围内最优基不变) ROW CURRENT ALLOWABLE ALLOWABLERHS (当前系数)INCREASE (增加量) DECREASE (减少量) 2 6.000000 INFINITY 1.000000 (第一个约束) 3 45.000000 INFINITY 0.000000 (第二个约束)注意:1. 软件中已经假设所以的变量是非负的,所以非负约束不必输入; 2. 可以用 FREE 变量 来取消变量的非负限制; 3. 不区分大小写; 4. 约束条件“<=”、“>=”可以用“<”、“>”代替; 5. 变量名不能超过8个字符;6. 变量与系数间可以有空格,但不能有任何运算符号(如*等); 7. 不允许变量出现在一个约束条件的右端; 8. 输入中不能有“()”和“,”;比如4(x1+x2)应写成4x1+4x2等;9. 在一个式中同一变量不能出现一次以上,比如2x1+3x2-x1应简化为x1+3x2;gin 变量 变量为整数变量 gin nint n 模型中的前n 个变量为0/1整数变量,关于变量的顺序可由输出结果查证! 整数变量申明须放在最后(即end 后)例2:集合覆盖问题设有一集合S={1,2,3,4,5},及S 的一个子集簇P={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}},假设选择P 中各个元素的费用为1、1.5、1.5、0.8、0.8、1,试从P 中选一些元素使之覆盖S 且所选元素费用之和最小。
LINDO软件包使用手册目录第一节简介与安装第二节用LINDO求解线性规划(LP) 问题第三节用LINDO求解整数规划(IP) 和二次规划(QP) 问题第四节GINO简介第五节LINGO简介第一节简介与安装1·1简介本文主要面向大中专学生, 研究生, 及掌握一定的高等代数知识的读者,介绍LINDO软件包(学生版)的基本使用方法。
该软件包(学生版)主要功能在于帮助使用者较快地输入一个优化问题的式子, 求解并分析该优化问题, 然后可做些较小的改动, 并重复上述的过程.该软件包(学生版)在微机上DOS环境下运行。
其使用界面不是图形式的,而是字符式的;不是菜单式的, 而是面向具体的命令(Command). 它有许多的命令, 每一个命令都可随时执行, 由系统检查该命令是否在上下文中起作用. 它采用一种对用户友好的交互使用方式, 包括了所有的使用过程指导. 基于使用的具体情况, 它会向使用者询问下一步将做什么, 或等待使用者输入下一个命令.LINDO软件包(学生版)包括LINDO,GINO,LINGO和LINGO NL(LINGO2)等优化软件的学生版以及相应的例子文件。
由于LINDO程序执行速度很快,易于方便地输入、求解和分析优化问题,LINDO在教学、科研和工业界得到广泛应用。
这里用LINDO软件包作为LINDO,GINO,LINGO和LINGO NL等的统称,包含五种组件,下面分别介绍如下:(1)LINDO是Linear INteractive and Discrete Optimizer字首的缩写形式,是由Linus Schrage 于1986年开发的优化计算软件包, 可以用来求解线性规划(LP----Linear Programming), 整数规划(IP----Integer Programming) 和二次规划(QP----Quadratic Programming) 问题. LINDO易于规划问题的输入、求解和分析,程序执行速度很快。
1LINDO软件使用1.1 LINDO简介1.1.1LINDO是什么LINDO 是Linear, INteractive, and Discrete Optimizer的缩写,它是一个便利而有强大的工具软件,常用于求解线性规划(LP——Linear Programming)、整数规划(IP——Integer Programming)和二次规划(QP——Quadratic Programming)问题,这些问题一般在商业、工业、科研和政府工作中都会遇到。
LINDO已被证实在一些特殊领域能发挥巨大作用,如产品配售、配料问题、生产与人员时序安排、库存管理等。
LINDO软件易学易用、运行速度快、结果报告内容详尽。
如果你是一个初学者,你将发现LINDO非常容易上手。
例如,一个用户希望求解:Maxmize 3X + 2YSubject to4X + 3Y < 103X + 5Y < 12那么这就是他所需输入的东西,而LINDO马上就可以求解出结果并给以报告单。
问题以简单明了的方程式形式出现,通过帮助命令可以查询命令的使用方法,LINDO 同时提供了高级建模帮助。
如果你是优化方面的专家,你将对LINDO的强大而又健全的功能留下深刻印象,它具备你所需的所有高级命令:模型输入、求解、结果展示和结果分析。
如果你是一个开发者,你还可以通过自己的应用程序调用LINDO DLL算法。
在某些特殊情况下,LINDO被用来解决工业上的大型线性、二次、整数规划问题,例如在大型机器上,LINDO曾用来解决含多达50,000个约束和200,000个变量的问题。
在演示版中LINDO6.01中,可求解含50个约束和100个变量的问题使用LINDO软件有三种基本方式:z对于中小型问题,可以通过键盘直接输入模型并求解z可以调用通过其它方式产生的文件(包含命令描述和数据录入),并生成报表文件z用户自编子程序可以直接链接LINDO,构造一个包含自己的代码和LINDO优化库的完整程序,1.1.2常用菜单和命令在Windows环境中,LINDO将所有命令划分为如下六个类别:z Filez Editz Solvez Reportsz Windowz Help这些类别在运行LINDO时很容易从菜单上看到,在本节后面将给出其功能描述,在描述每条命令的同时,还列出了相应的工具栏上的按钮和相应的快捷键组合。
LINDO的简单使用方法一、LINDO软件的基本特性LINDO是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。
因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)、整数规划(IP—Integer Programming)问题。
它的最新版本——LINDO6.1版可求解最多含有4000个约束、8000个变量、800个整型变量的问题。
二、LINDO使用的一般说明(一)软件的基本指令点击进入LINDO 操作界面后,系统在屏幕的下方打开一个编辑窗口,其默认标题是”untitled”。
屏幕的上方有【File】、【Edit】、【Solve】、【Reports】、【Window】、【Help】六个菜单,除【Solve】和【Reports】菜单外,其他功能与一般Windows 菜单大致相同。
而【Solve】和【Reports】菜单的功能很丰富,这里只对其最简单常用的命令作一简单的解释。
1【Solve】菜单〖Solve〗子菜单,用于求解在当前编辑窗口中的模型,该命令也可以改用快捷键Ctrl+S 或用快捷按钮来执行。
〖Compile Model〗子菜单,用于编译在当前编辑窗口中的模型,该命令也可以改用快捷键Ctrl+E 或用快捷按钮来执行。
LINDO 求解一个模型时,总是要将其编译成LINDO 所能处理的程序而进行,这一般由LINDO 自动进行,但有时用户需要先将模型编译一下查对是否有错,则用到此命令。
湖南科技大学信息与电气工程学院李众序Lindo可以用于求解线性规划(Linear Problem)和二次规划(Quadratic Programming).本文着重解决比较常见的线性规划问题。
尤其是关于DEA的问题。
1.1初识LINDO双击图标屏幕会显示如下图的LINDO标准界面这就是LINDO用户界面。
目前光标所在的子窗口为模型窗口(Model Window), 用户可以在这里输入要求解的规划模型。
目前这个子窗口标有“”字样,表示用户还没有为这个模型的文件命名,因此LINDO采用了一个自动生成的名字“untitled”,将来用户在保存模型时可以对它重新命名。
1.2使用LINDO解线性规划问题(Linear Problem)例如我们要求下列线性规划问题Max 5x+3y+6z //限定条件,即求等式右边的最大值s.t 4x+3y+2z<=103x+5y+4z<=204x+2y+4z<=15X,y,z>0那么,我们可以直接在上述窗口输入这个模型我们可以看到上面的输入格式基本上与手写的格式差不多,所以可以说这款软件的用户界面相当人性化。
其中ST表示约束条件,C2,C3表示行数。
求解这个问题的时候我门可以点软件的这个图标,这个时候便弹出了一下对话框。
上图标含有以下信息:当前状态:已经达到最优解迭代次数: 1约束不满足的量:0当前的目标值:22.5最好的整数解:没有答案整数规划的界:没有答案分枝数:没有答案所用时间:0.00秒现在这个模型就解完了,那么最优解在哪里呢?用鼠标点“Window”,你会发现有一个“Report Window”写在那里,这就是最终结果的报告窗口。
用鼠标选择“Report Window”,就可以查看该窗口的内容,如下上面表示的意思是“LP OPTIMUM FOUND AT STEP2”表示单纯形法在两次迭代(旋转)后得到最优解。
“OBJECTIVE FUNCTION VALUE” 1)22.50000表示最优目标值为 22.50000“VALUE”给出最优解中各变量(VARIABLE)的值: X=0.000000 Y=0.000000 Z=3.750000 “REDUCED COST”给出最优的单纯形表中目标函数行(第1行)中变量的系数(即各个变量的检验数),其中基变量的reduced cost 值为1.000000。