lindo常用的基本语法
- 格式:pptx
- 大小:441.80 KB
- 文档页数:19
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,返回操作系统在这一章中,先对这几个命令的用法作详细解说。
1 LINDO菜单命令和语句1.1菜单命令我们可以从类似于其它Windows程序的便捷菜单访问LINDO的命令。
主菜单包括屏幕顶部的6个子菜单,它们列出了各种命令。
当单击其中一个子菜单——File、Edit、Solve、Reports、Window或Help时,将出现了一个包含各种命令的下拉菜单。
你可以像在大多数windows程序中那样选择命令——或者用鼠标单击命令,或者在适当的子菜单亮显时,按命令名中带下划线的字母。
许多命令还有快捷键(F2、Ctrl+Z等)。
为了增加方便性,还可以利用位于屏幕顶部工具栏中的图标访问一些最常用的命令。
下面简要介绍各种菜单命令,并列出了可以应用的快捷键和图标。
1.File(文件)菜单File菜单命令能够以各种方法操纵LINDO数据文件。
可以使用这个命令打开、关闭、保存和打印文件,并且可以执行LINDO独有的各种任务。
下面将描述File命令。
命令说明New F2 创建用于输入数据的新窗口。
Open F3 打开已有的文件。
利用对话框可以选择各种文件类型和位置。
View F4 打开已有的文件,仅进行浏览。
不对文件进行修改。
Save F5 保存窗口。
可以保存输入数据(模型)、Reports窗口或命令窗口。
可以下列格式保存数据:*.LTX,可以利用字处理软件进行编辑的文本格式;*.LPK,以“填充”格式保存编译模型,但是不进行特殊的格式化或解释;*.MPS,与机器无关的工业标准格式,用于在LINDO和其它LP软件之间传递LP问题。
Save As F6 利用指定的文件名保存活动窗口。
这特别适合于重命名已修改的文件,同时能够保持原始文件不受影响。
Close F7 关闭活动窗口。
如果窗口包含新的输入数据,将询问你是否保存修改。
Print F8 把活动窗口发送到打印机。
Printer Setup…F9 选择打印机和打印格式的各种选项。
Log Output…F10 把通常发送到Reports窗口的所有后续屏幕活动发送到文本文件中。
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时很容易从菜单上看到,在本节后面将给出其功能描述,在描述每条命令的同时,还列出了相应的工具栏上的按钮和相应的快捷键组合。
附录3 LINDO 6.1 Demo简介————————————————————————————————————1LINDO 6.1简介和版本信息LINDO是LINDO公司开发的一个求解线性规划、整数规划和二次规划的一个产品。
LINDO 是Linear Interactive Discrete Optimizer即“线性交互离散优化”的缩写。
这里介绍LINDO 6.1 Demo版的使用。
这个LINDO版本是LINDO公司提供的免费产品,可以从网站下载。
LINDO 6.1 Demo版可以求解规模最大为300个变量(其中整数变量最多为50个),150个约束的线性规划问题。
LINDO 6.1 功能齐全,使用简单,求解问题的规模可以满足教学案例的需要。
LINDO 6.1 的安装过程和大多数应用程序相同,双击安装程序图标lnd61.exe,并按照屏幕提示操作。
安装完毕以后,单击Windows“开始”\“程序”\LINDO 6.1\Lindow32,启动LINDO。
首次进入LINDO 6.1,会出现请求输入LINDO产品序列码的窗口:单击“Demo Version”,以演示版用户身份进入系统。
出现LINDO主窗口,并且出现About LINDO的界面。
About LINDO界面显示LINDO 6.1版本的一些主要参数,如约束条件个数,变量个数,整数变量个数,系数矩阵非零元素个数等。
此界面显示几秒钟后自动关闭。
如需要再次打显示此About LINDO界面,可单击菜单Help\About LINDO…。
显示About LINDO界面后,出现LINDO空白模型窗口。
LINDO空白模型窗口如下。
2 LINDO 6.1的菜单和工具图标和大多数Windows 应用软件一样,LINDO 既可以用菜单驱动,也可以用工具图标驱动。
2.1 LINDO 菜单LINDO 有六项下拉菜单,如右图所示。
这六项菜单分别是:File -文件 Edit -编辑 Solve -求解 Report-报表Window -窗口Help -帮助下面对每一下拉菜单的子项作出说明。
LINDO与LINGO的语法区别LINGO的使用(求解线性规划和非线性规划问题):1.最大值MAX=…,最小值MIN=…2.语句必须以分号”;”结束每行可多个语句语句可跨行3.变量名由字母、数字和下划线组成以字母开头长度不超32个字符不区分大小写4.默认决策变量非负其他要求可做说明5.模型以MODEL:开头,以END结束(此结构也可省略)6.注释以!开始,以; 结束;7.可以用<表示<=;用>表示>=8.LINGO总是根据“MAX=”或“MIN=”寻找目标函数,而除注释语句和TITLE语句外的其他语句都是约束条件,因此语句的顺序并不重要。
9.限定变量取整数值的语句为“@GIN(X1)”和“@GIN(X2)”,不可以写成“@GIN(2)”,否则LINGO将把这个模型看成没有整数变量。
10.LINGO中函数一律需要以“@”开头,其中整型变量函数(@BIN、@GIN)和上下界限定函数(@FREE、@SUB、@SLB)与LINDO中的命令类似。
而且0/1变量函数是@BIN函数。
Lindo的使用(求解线性规划问题)★程序以“MAX”(或“MIN”)开始,表示目标最大化(或最小化)问题,后面直接写目标函数表达式和约束表达式;★目标函数和约束之间用“ST”分开;(或用“s.t.”)★程序以“END”结束(“END” 也可以省略)。
★系数与变量之间的乘号必须省略。
★系统对目标函数所在行自动生成行名“1)”,对约束默认的行名分别是“2)” “3)”…,用户也可以自己输入行名;行名放在对应的约束之前。
★书写相当灵活,不必对齐,不区分字符的大小写。
★默认所有的变量都是非负的, 所以不必输入非负约束。
★约束条件中的“<=” 及“>=”可分别用“<” 及“>”代替。
★一行中感叹号“!”后面的文字为是注释语句,可增强程序的可读性,不参与模型的建立。
1.变量与系数间可有空格(甚至回车), 但无运算符2.变量名以字母开头,不能超过8个字符3.变量名不区分大小写(包括LINDO中的关键字)4.目标函数所在“>”(或“<”)号与“>=”(或“<=”)功能相同5.行是第一行,第二行起为约束条件6.行号(行名)自动产生或人为定义。
欢迎访问华中数学建模网 1.LINDO、LINGO一、软件简介LINDO是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。
因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。
整数规划(IP—Integer Programming)问题。
其中LINDO 6 .1 学生版至多可求解多达300个变量和150个约束的规划问题。
其正式版(标准版)则可求解的变量和约束在1量级以上。
LINDO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP —QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。
虽然LINDO和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。
要学好用这两个软件最好的办法就是学习他们自带的HELP文件。
下面拟举数例以说明这两个软件的最基本用法。
(例子均选自张莹《运筹学基础》)例1.(选自《运筹学基础》P54.汽油混合问题,线性规划问题)一种汽油的特性可用两个指标描述:其点火性用“辛烷数”描述,其挥发性用“蒸汽压力”描述。
某炼油厂有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中。