LINDO使用方法

上传人:小** 文档编号:242875184 上传时间:2024-09-10 格式:PPT 页数:34 大小:227.50KB
返回 下载 相关 举报
LINDO使用方法_第1页
第1页 / 共34页
LINDO使用方法_第2页
第2页 / 共34页
LINDO使用方法_第3页
第3页 / 共34页
点击查看更多>>
资源描述
优 化 建 模,单击此处编辑母版标题样式,第二章,LINDO,软件的基本使用方法,原书相关信息,谢金星,薛毅编著,清华大学出版社, 2005,年,7,月第,1,版,.,http:/, LINDO,命令窗口,内容提要:,LINDO,命令窗口概述,INFORMATION,(信息类命令),INPUT,(输入类命令),DISPLAY,(显示类命令),OUTPUT,(输出类命令),SOLUTION (,求解类命令,),PROBLEM EDITING,(编辑类命令),QUIT,(退出类命令),“,IP,、,QCP,、,PRP”,(整数、二次与参数规划类命令),CONVERSATIONAL PARAMETERS,(对话类命令),USER SUPPLIED ROUTINES,(用户过程类命令),MISCELLANEOUS,(其他命令),LINDO,命令窗口概述,前面介绍的基本上是在,Windows,下拉式菜单模式下驱动,LINDO,运行,使用起来相当方便。,LINDO,还提供了另一种运行模式,即“,Command-Line”(,命令行,),模式。所谓“命令行”模式,即通过在字符方式下输入一行一行的命令来驱动,LINDO,运行,因此每个命令也称为“行命令”。这种操作方式很像老式,DOS,操作系统和,UNIX,操作系统下的运行方式。在,Windows,操作系统下,相信很少有人会选择使用“命令行”模式,但为了对,LINDO,软件介绍的完整性,这里还是简单介绍一下。,通过菜单命令“,Window|Open,Command Window,(,Alt+C,)”打开命令窗口,在命令窗口下操作,命令窗口下的提示符是“:”,用户在“:”后面可以输入各种,LINDO,的有效命令进行操作,输出也马上显示在命令窗口。,在命令窗口下,只需键入,COMMANDS,或“,COM”,(命令),就会看到,LINDO,的所有有效行命令。,如果某个命令较长,通常可以只写出前面的若干个字母,但注意不要与其他命令重名。,2.6.1 INFORMATION,(信息类命令),HELP,命令,:,键入,“,HELP”,会显示出,LINDO,的一般帮助信息。,键入,HELP name, LINDO,可帮你了解某个具体的命令,其中,name,是命令名。,COMMAND,(,COM,),命令,:,给出按类型分类的,LINDO,命令目录。,(,注:括号内表示的是该命令的最简单的简写形式,下同,),LOCAL,(,LOC,),命令,:,给出,LINDO,程序的版本信息。,CATEGORY,(,CAT,),命令,:,列出,LINDO,命令类型,并可按提示,(,序号,),有选择地给出某类型下的所有命令。,TIME,命令,:,显示本次启动,LINDO,运行后累计的时间。,DATE,命令,:,显示当前的日期和时间。,2.6.2 INPUT,(输入类命令),MAX/MIN,命令,:,用于输入一个包含目标函数,约束条件在内的,LP,模型,.,输入过程如下,:,在提示符“:”下输入,MAX (,或,MIN ),继之以自然格式的目标函数作为第一行,;,再输入,“,SUBJECT TO”,或,“,SUCH THAT“(,可简写为,”,ST”,或“,S.T.”),后面跟约束条件行。,每次回车后将显示“?”提示符。,最后,输入,END,回到命令状态模式,.,例:,下面是同一问题的两种合法的输入方式,:,1) MIN 2X+3Y SUBJECT TO -5X-2y5 END,2) MIN 2X + 3 Y,ST -5x-2Y,+5,END,注: 变量名可以由,18,个字母或数字型的字符构成,且第一个字符必须是字母。变量系数不能是指数型,例如,: .258E+29,形式的系数是不允许的。任一系数的整数位数最多为,9,位,小数位数最多为五位。 关键词,(“MAX”,“ST”,“END”.),及各行之间必须用一个或多个空格分隔开。空格可以出现在一行之中,但不能出现在变量名中。 一个回车符等价于一个空格。,任一约束可自由选择一个名称来代替行号,例如,:,DEMAND) 10X - Y 5,RETRIEVE,(,RETR,),命令,:,执行该命令可直接从硬盘上的文件中获得一个,LINDO,格式的模型。,LINDO,会为你提示可供选择的具体的文件名。,能被,RETRIEVE,的模型文件必须是以前经过“,SAVE”,行命令存入的文件,或者经过,FILE|SAVE,(或,SAVE AS,)菜单命令以,LINDO PACKET,格式存入的模型,后缀通常是“,LPK”,, (即,LINGO,压缩格式文件),;,而不能是,LINDO,文本格式文件(后缀通常是“,LTX”,),.,RMPS,命令,:,读取一个,MPS,格式文件,并转化成,LINDO,格式的模型。,LINDO,会为你提示可供选择的具体的文件名。该模型文件必须是,MPS,格式文件(关于,MPS,格式文件的说明见附录),如以前经过“,SMPS”,命令存入的文件,或经过,FILE|SAVE,(或,SAVE AS,)菜单命令以,MPS,格式存入的模型(后缀通常是“,MPS”,,即,MPS,格式文件),.,TAKE,命令,:,用该命令可执行由一系列,LINDO,命令组成的文本文件(称为,LINDO,命令的脚本文件)。该文件内容只能同终端输入一致,例如文件中不能有行号等,且文件中最后一个命令应为“,LEAVE”,。参见本章,2.7,节的例子。,LEAVE,命令,:,该命令表示结束一个可由“,TAKE”,行命令或“,FILE|TAKE COMMANDS”,菜单命令访问的文件的输入。,RDBC,命令,:,从(数据库格式)文件中读出当前模型的一个初始解。 该解应该是以前由,SDBC,命令存入文件中的。,FBR,和,FINS,命令,:,FBR,命令从一个由,FBS,命令建立的文件中得到一个,(,可行,),基,,FINS,命令从一个,MPS,格式的文件中得到一个,(,可行,),基。此时一个与该,(,可行,),基匹配的,LP,模型必须是内存中已有的。,2.6.3 DISPLAY,(显示类命令),PICTURE,(,PIC,),命令,:,给出一个模型中系数矩阵的逻辑示意图,参见,Report|Basis,Picture,菜单命令。该命令有助于检查一个模型的输入是否正确。,Z .000000 - .000001,Y .000001 - .000009,X .000010 - .000099,W .000100 - .000999,V .001000 - .009999,U .010000 - .099999,T .100000 - .999999,A 1.000001 - 10.000000,B 10.000001 - 100.000000,C 100.000001 - 1000.000000,D 1000.000001 - 10000.000000,E 10000.000001 - 100000.000000,F 100000.000001 - 1000000.000000,G 1000000,逻辑示意图中用字母代表的数字大小,:,TABLEAU,(,TABL,),命令,:,显示当前单纯形表(参见菜单命令,Reports|TABLEAU,)。,LOOK,命令,:,可用,“,LOOK”,查看当前问题模型的全部或部分。键入,“,LOOK ALL”,可看全部问题模型。键入,“,LOOK row1,row2”,或,“,LOOK row1-row2”,可看行,row1,至行,row2,。 模型中系数只能有,5,个小数位,最多有,9,位整数,任何更大的数只能显示为“*”。,NONZEROES,(,NONZ,),命令,:,显示一个简略的解答报告,其中只显示非零的变量及相应的行。,“,NONZ”,命令并不能求解问题,所以需首先执行,“,GO”,命令,且,“,NONZ”,只有在设置了,“,TERSE”,(简洁型)交互型模式后才能起作用。,SHOCOLUMN,(,SHOWC,),命令,:,键入,SHOC variable-name,可显示出变量,variable-name,的系数列。,SOLUTION,(,SOLU,),命令,:,显示解的标准报告。,RANGE,命令,:,显示关于,RHS(,右端项,),及,OBJ(,目标函数费用系数,),的范围报告(敏感性分析)。,BPICTURE,(,BPIC,),命令,:,按最后一次转置,/,三角化的行序显示当前,(,可行,),基的逻辑图。参见,Report|Basis,Picture,菜单命令。,CPRI,和,RPRI,命令:,可选择地显示列,(,用,CPRI,命令,),或 行,(,用,RPRI,命令,),的有关信息。,CPRI,的命令格式如下,:,CPRI print-list : conditional-expression,例如,执行,CPRI N P : N = M%X .AND. D 0,将显示满足下列条件的列(变量)的名称(,N,:,NAME,)及原始值,(P,:,PRIMAL VALUE),其条件为,:,列名(,N,)的第一个字符,= M,第二、三个字符任意,第四个字符,= X,且有一对偶值,(DUAL VALUE),大于零。如果,print-list,一项被省略了,将只显示匹配的数目。,N = NAME(,名称,),P = PRIMAL VALUE,原始值,(,相当于行的松驰量,),D = DUAL VALUE (,相当于列的,REDUCED COST ),R = RIM (,列对应的目标函数的系数,;,对于行,则表示右端项,),U = SIMPLE UPPER BOUND(,简单上界,),L = SIMPLE LOWER BOUND(,简单下界,),T =,变量类型,(C, I, or F; ),Z =,一列或一行中的非零元,.,% =,名称,(N),中的不确定字符(任意字符),print-list,(显示列表)及,conditional-expression,(条件表达式) 中有关列,/,行特征的常用符号及意义,:,其它一些有用的符号有,:,算术运算符 逻辑运算符 关系运算符 顺序运算符,+ - / * .AND. = # ( ),LOG( ) EXP( ) .OR.,ABS( ) .NOT.,DMPS,命令,:,以,MPS,(数学规划系统) 格式显示当前解答报告,.,PPIC,命令,:,交换模型中的行或列,给出模型中系数的报告,使得非零数尽量靠近主对角线。,LKLG,命令,:,LKLG,是,LOOK LINGO,的意思,以,LINGO,格式显示模型(,LINGO,格式将在下一章介绍)。,2.6.4 OUTPUT,(输出类命令),SAVE,命令,:,将当前的问题模型用,LINGO,压缩格式存储到一个文件中。该问题模型可由“,RETR”,命令重新提取。,DIVERT,(,DIVE,),命令,:,要求你提供一个文件名,随后所有的输出,(,如解集报告等,),将转至该文件中,直至你给出一个,RVRT (REVERT),命令为止,.,RVRT,命令,:,重新使以后的所有结果输出都回到终端。该命令的作用与“,DIVERT”,命令相反。,SMPS,命令,:,将当前的问题模型用,MPS,格式存储到文件中。,SDBC,命令,:,用数据库格式存储一个解。变量名称,取值大小, REDUCED COST,变量类型,上界(,SUB,)和下界(,SLB,)分别以,(A8,2G15.8,A1,2G15.8),格式存储(这里,A,表示字符型,,G,表示数值型)。,FBS,命令,:,将当前的,(,可行,),基按,LINDO,格式存入一个文件。若重新提取,可参见,FBR,命令,FPUN,命令,:,将当前的,(,可行,),基以,MPS,格式存入一个文件。若重新提取,可参见,FINS,命令。,SMPN,命令,:,将当前的模型以扩展的,MPS,格式存入一个文件,该格式可以包括,BV, LI,UI,等扩展。,2.6.5 SOLUTION (,求解类命令,),GO,命令,:,求解当前的问题模型。该模型在求解过程中不会被改变。,若在,GO,之后有一正整数,表示用单纯形法迭代旋转(,PIVOT),的次数,PIVOT,(,PIV,),命令,:,演示单纯形方法的每一步旋转迭代,(PIVOT STEP),。,如果键入,“,PIVOT”+,变量名,则该变量会进入基。,变量名后还可给出该变量所在的行号,即指定旋转元。,GLEX,命令,:,按字典序对目标进行优化。先优化第,1,个目标,然后把这个,目标的值固定在最优值,对第,2,个目标进行优化;依此类推。,这时要求按照一定的特殊形式输入一个多目标模型。,2.6.6 PROBLEM EDITING,(编辑类命令),ALTER,(,ALT,),命令,:,用,ALTER,可编辑当前的问题模型,.,使用格式为,: ALTER row-id,var,-id.,row-id,是需要改动的行的行号,“,var,-id”,是需要改动变量系数的变量名。,随后, LINDO,会提示你输入一个新的值,.,如果想改动,RHS(,右端项,), DIRECTION(,不等号方向,),或某个行的名称,var,-id,一项可用,RHS, DIR,或,NAME,。,注,: -,对目标函数而言,有效的,DIRECTIONS,有,MAX,或,MIN;,-,对所有其它行可用,;,-,请用,DELETE,命令,而勿用,ALTER,来消去一行。,EXTEND,(,EXT,),命令,:,可为一个以前定义的问题模型增添约束行。,输入新的行,不要再键入,MAX, MIN,或,SUBJECT TO,这样的关键词。新的行将会被附在原问题模型的最后,键入,END,结束。,DELETE,(,DEL,),命令,:,键入,DELETE row-id,可从当前的问题模型中消除行,row-id .,也可 键入,DELETE row1 row2,消去行,row1,至行,row2,。,DELETE ALL,可用来清除当前的整个问题模型。,FREE,、,SUB,、,SLB,命令,:,分别设置自由变量、变量上界、下界,与模型窗口下的功能和使用方法类似。,APPC,命令,:,是,APPEND COLUMN,的意思。键入,APPC,var,-id,可为问题模型添加 以,var,-id,命名的新的一列。随后是关于该对应变量出现的行,/,系数值。 每行有一对行,/,系数值,;,行和系数值要用一个空格分开。 输入,0,作为行名可结束。若以,RHS,为列名,将使输入成为新的,RHS(,右端项,),。,2.6.7 QUIT,(退出类命令),QUIT,命令,:,该命令用于退出,LINDO,系统(不仅仅是退出命令窗口!)。任何未存储下来的问题模型和其他数据会被丢失,!,2.6.8 INTEGER QUADRATIC AND,INTEGER,(,INT,),和,GIN,命令,:GIN,命令可将问题模型中的变量标为整数型,,INT,命令可将问题模型中的变量标为,0/1,型。,第一种格式为,“,INT,(或,GIN,),n” ,其中,n,是整型变量的个数,此时,LINDO,要求整型变量应放在问题模型的最前面。,第二种格式为,INT,(或,GIN,),var,-id ,其中,var,-id,是变量名。这与模型窗口中的功能和使用方法类似。,PARAMETRIC PROGRAMS,(整数、二次与参数规划类命令),QCP,命令,:,QCP,用于定义一个二次规划问题。 问题通过在实际约束前增加有关变量的一阶条件转化为线性,(,互补,),型。 这需要我们为每一个实际约束增加一个对偶变量。要使用,QCP,第一行,(,目标函数,),只用于给出相应变量的顺序。,QCP,用于指出第一个实际约束的行号。,PARA,命令,:,(参见菜单命令“,Reports|Parametrics,”,),键入,PARA row-id new-,rhs,可对行,row-id,的,RHS(,右端项,),进行参数分析,. PARA,会将该行,RHS(,右端项,),的当前值改为新值,new-,rhs,同时演示出在由此方式改变任一,(,可行,),基产生的最优目标值。在此之前,该问题需被优化过。,POSD,命令,:,(参见菜单命令“,Reports|Positive,Definite”,),检验当前二次规划问题中二次型对应的约束矩阵是否正定。,TITAN,命令,:,该命令可收紧一个,LP/IP,问题模型,(,加强条件,),,是,LINDO,进行预处理的一部分。,第一,它将收紧上界,例如,:,2X + Y 12,-X + 2Y 3,其中,W,是,0/1,型,那么执行,TITAN,命令收紧后为,:,21W - 3X + 2Y 3,BIP,命令,:,(在菜单命令,EDIT|OPTIONS,中也有此功能),键入,“,BIP bound-,val,”,会将,“,bound-,val,”,标识为“篱笆值”,即整数解的目标函数值的一个界。此后若分枝定界树中某一分枝的最佳值比“篱笆值”还坏,该分枝会剪掉。例如,任何已知的可行整数解对应的目标值都可以看作一个,BIP ,。,IPTOL,命令,:,(在菜单命令,EDIT|OPTIONS,中也有此功能),格式为,: IPTOL F,其中,F,是一个非负分数(百分数)。当搜索另一个,IP,解时,只考虑比目前最好的解至少优,100F%,的解。,2.6.9 CONVERSATIONAL PARAMETERS,(对话类命令),WIDTH,和,PAGE,命令,:,(在菜单命令,EDIT|OPTIONS,中也有此功能),键入,WIDTH n,可告知,LINDO,你的终端行宽为,n,字符。 例如,:,也许你需要用,WIDTH 132,告诉,LINDO,你使用的是宽行打印纸。,键入,PAGE n,设置帧幅(每页多少行)。 例如, PAGE 24,将使每屏幕显示,24,行出现一次暂停。 触击一次,CR,(回车)将显示下一幅。,PAGE 0,表示不设限制,这对于硬拷屏是适宜的。,TERSE,(,TERS,),和,VERBOSE,(,VERB,),命令,:,(在菜单命令,EDIT|OPTIONS,中也有此功能),TERS,改变对话方式为,TERSE(,简明,),型。例如,它将不会自动地显示模型的最优解报告,使用者需用,NONZ, CPRI,或,RPRI,等命令来浏览解。,命令,VERBOSE,可消除,TERSE,状态,令对话方式回到详细型状态,(,缺省状态,),。,BATCH,(,BAT,),和,PAUSE,(,PAUS,),命令,:,BATCH,设置对话方式到,BATCH(,批处理,),状态模式。 分批运行任务,可使输出更具可读性,如发生错误,则可在第一个主要错误处停止运行。,PAUSE,表示暂停直至用户键入下一个回车,,PAUSE,后的内容,(,在同一行,),被显示到终端上。,这两个命令常用于命令脚本文件中(命令脚本文件可用,TAKE,命令读出来运行)。,2.6.10 USER SUPPLIED ROUTINES,(用户过程类命令),USER,命令,:,在,LINDO,命令模式下键入“,USER”,只是显示一个提示信息,没有什么其他用处。实际上,,LINDO,中提供了与其它应用程序开发工具(如,Visual Basic,,,Fortran,,,C+,,,MATLAB,等)的接口,有大量子过程可供用户开发自己的应用程序时调用,从而构造一个问题模型、求解并获得解的有关信息等。这对于利用,LINDO,来开发自己的应用程序来说是非常有用的,详细信息请读者参阅,LINDO API,的使用手册。,2.6.11 MISCELLANEOUS,(其他命令),INVERT,(,INV,),命令,:,INVERTS,当前的,(,可行,),基求逆。 通常将使结果更趋精确。,STAT,命令,:,给出当前模型的统计报告,,参见菜单命令“,Reports|Statistics,”,。,BUG,命令,:,如果你发现了,LINDO,系统的漏洞,用该命令显示应该向谁报告(通常就是,LINDO,公司的联系地址)。,DEBUG,(,DEB,),命令,:,如因约束系数或右端项中的错误造成问题无可行解, DEBUG,将标出一个包含错误的约束条件的最小集合(,LINDO,尽量如此做),但不能用于二次规划。参见菜单命令“,Reports|Debug,”,。,SET,命令,:,重新设置,LINDO,的内部参数,与,LINDO,菜单命令,EDIT|OPTIONS,的功能类似。,SET,命令的使用格式为,:,SET PARAM-ID NEW-VALUE,可行的参数(,PARAM-ID,) 有,:,PARAM-ID,作用,1,最后约束的误差容限(精度),2,初始约束的误差容限(精度),3,进基变量的,REDUCED COST,的误差容限(精度),4,将整数变量的取值固定时,REDUCED COST,的阈值(上限),5,旋转(迭代)次数的阈值(上限),6,是否对整数规划(,IP,)进行预处理(,0,:否;,0:,是),7,是否进行,SCALING,(改变尺度使数据更均衡)(,0,:否;,0:,是),8,是否显示状态窗口(,0,:否;,0:,是),9,分枝策略:(,0,:缺省;,1:,向上整取优先;,-1:,向下整取优先),10,最优整数解的界(即“篱笆”值,参见,BIP,命令),11,基于惩罚的分枝中树的深度,12,基于惩罚的分枝中评价的候选项,13,是否取消占优的整数变量(,0,:否;,0:,是),TITLE,(,TITL,),命令,:,TITLE TEXT,命令用标题,TEXT,命名当前模型;只输入,TITLE,则显示当前的标题,(参见菜单命令“,FILE|TITLE”,)。,NEWPW,命令,:,该命令用于更新,LINDO,的使用许可证密码。升级,LINDO,系统到更高级别的用户版本时就可以这样做(如提升,LINDO,对求解规模的限制)。,(功能与菜单命令“,FILE|LICENSE”,相同),THE END,Thank you very much!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!