附录2 LINDO使用手册
VARIABLE VALUE REDUCED COST X1 6.214286 .000000 X2 .642857 .000000 X3 .000000 2.642857 ROW SLACK DUAL PRICES 2) 5.142857 .000000 3) .000000 .642857 4) .000000 .571429 NO. ITERATIONS = 2 GO>DO SENSITIVE ANALYSIS?(Y/N) Y RANGES IN WHICH THE BASIS IS UNCHANGED COST COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 3.000000 INFINITY 2.000000 X2 2.000000 3.363636 3.000000 X3 -1.000000 2.642857 INFINITY RIGHT HAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 12.000000 INFINITY 5.142857 3 15.000000 18.000000 3.000000 4 18.000000 4.500000 21.750000
311
附录2 LINDO使用手册
第二章 模型文件的存取
以上介绍的四个命令─MAX/MIN,LOOK,GO,QUIT已经可以实现求解一个模型的最基本的操作,但很容易发现,以上操作虽然建立了模型并求得了模型的解,但模型和解都没有生成磁盘文件,因而都无法保存。本节的目的是了解与LINDO模型及求解结果存盘及读取有关的命令,这些命令是
模型文件存盘命令 SAVE 模型文件读取命令 RETR、TAKE 输出转向读取命令 DIVE 恢复屏幕显示命令 RVRT
§2.1 模型存盘命令SAVE
1.命令功能:把已输入内存的模型以磁盘文件的形式存盘 2.命令格式:
:SAVE [文件名.扩展名]
其中文件名由至多六个字符组成,第一个必须是字母。扩展名由至多三个符组成。
显然,SAVE命令只有当内存中已输入一个模型时才有效,并且执行SAVE命令后,对内存中的模型没有任何影响。
3.命令使用:设当前内存中已输入一个模型,如键入以下命令:
:SAVE MODEL.LIN
则该模型将以MODEL.LIN为名的文件存在磁盘中。如果用户键入的文件名为MODEL,则生成的磁盘文件名为MODEL,扩展名缺省。
这时模型运行的结果还是仅仅在屏幕上显示而没有生成的磁盘文件。关于如何把运行结果生成磁盘文件,将在命令DIVE中讲解。
至于模型磁盘文件是否确实已经生成,可以用操作系统文件目录列表命令DIR来确认。但如果试图用操作系统文件显示命令TYPE来显示该文件的内容,屏幕上
312
附录2 LINDO使用手册
将显示一些无法读认的码,这是因为SAVE命令生成的文件是二进制码的文件,因而无法显示读认,更无法对它进行编辑。
§2.2 模型文件读取命令 RETR (RETRIEVE)
1.命令功能:从磁盘中读取一个用SAVE命令存盘的模型文件到内存中 2.命令格式:
:RETR[文件名·扩展名]
其中文件名(扩展名)必须是用SAVE命令生成的磁盘文件名(扩展名)。 3.命令使用:假定当前磁盘中已生成一个名为MODEL.LIN的文件,则可以进行以下操作:
:RETR MODEL.LIN
该命令执行后,相应的模型将被读到内存中,如果在此之前内存中已有一个模型的话,内存中原有的模型将被清除。对新的模型可以执行显示,运行等操作。
上面提到的SAVE命令只能将模型文件存盘,而不能将运行后的结果存盘。如果要把运行命令GO执行后,显示在屏幕上的运行结果生成磁盘文件,就必须转向命令DIVE。
§2.3 输出转向命令 DIVE (DIVERT)
1.命令功能:将屏幕输出的信息转到指定的磁盘文件中去。 2.命令格式:
:DIVE[文件名.扩展名]
其中文件名(扩展名)是用户给定的用来存放屏幕输出信息的磁盘文件名。 3.命令使用:
DIVE命令执行以后,一切屏幕输出信息都将转到指定的磁盘文件中去,大多数输出信息都将不再在屏幕上显示,但一些重要的揭示信息仍将在屏幕上显示,请看下面的操作:
313
附录2 LINDO使用手册
:MAX 2X1+3X2 MAX>ST MAX>X1+2X2<12 MAX>2X1+4X2<18 END :DIVE SOLU.DAT :LOOK ALL :GO LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1)18.0000000 DO RANGE(SENSITIVITY) ANALYSIS ? GO>N :QUIT C> 如果继续操作,由于这些操作在DIVE命令执行之后实施,原来应该在屏幕上显示的信息都将转到磁盘文件SOLU.DAT中去。
现在,如果我们在操作系统下用操作系统文件显示命令TYPE来显示磁盘文件SOLU.DAT的内容,将会看到:
C>TYPE SOLU.DAT MAX 2 X1 + 3 X2 SUBJECT TO 2) X1 + 2 X2 <= 12 3) 2 X1 + 4 X2 <= 18 END LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1)18.0000000 VARIABLE VALUE REDUCED COST X1 9.000000 .000000 X2 .000000 1.000000 ROW SLACK DUAL PRICES
314
附录2 LINDO使用手册
2) 3.000000 3) .000000 NO.ITERATIONS= 2 : .000000 1.000000 由于命令DIVE生成的磁盘文件是以ASCⅡ码存放的,因此所生成的文件是可以显示的,可以用各种文本编辑程序(如DOS编辑命令EDIT,Windows中的Notepat等)编辑修改。
这样,我们已经可以对一个模型进行输入(包括键盘输入和读取磁盘文件)、显示、运行、模型存盘、运行结果存盘等基本操作了。
§2.4 恢复屏幕显示命令 RVRT (Revert)
1.命令功能:清除输出转向命令DIVE,恢复屏幕输出。 2.命令格式:
:RVRT
3.命令使用:从上一节可以知道,命令DIVE执行以后,随后的各种命令,如GO,LOOK等产生的屏幕输出信息都将不再在屏幕上显示而是转到用户指定的磁盘文件中去。如果执行一个RVRT,就可以终止DIVE命令的转向功能,恢复信息的屏幕输出。因RVRT命令的这一功能可以知道,RVRT命令一定要与DIVE配合使用,而且RVRT命令一定要在DIVE后面执行。恰当地使用DIVE和RVRT命令,就可以根据用户的要求,把所需要的输出结果存放到磁盘文件中去。
§2.5 读取命令文件命令 TAKE
1.命令功能:从磁盘读取一个由LINDO命令组成的文件到内存并逐条执行这些命令。
2.命令格式:
:TAKE[文件名.扩展名]
其中文件名和扩展名都由用户定义。 3.命令使用:
315