附录2 LINDO使用手册
3) 2X1+4X2<=18 END : 增加一个新的变量以及相应的系数:
:LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) X1+2X2<=12 3) 2X1+4X2<=18 END :ALT 1 !修改第一行 VAR: !请输入变量 ALT>X3 !变量为X3 VARIABLE NOT USED IN THIS PROBLEM BEFORE. WANT IT INCLUDED? ALT>Y !以前未曾用到这个变量,是否将其引入?(是) NEW COEFFICIENT: !新的系数 ALT>4 !系数为4 :LOOK ALL MAX 2X1+3X2+4X3 SUBJECT TO 2) X1+2X2<=12 3) 2X1+4X2<=18 END : 使用ALT命令时须注意下述两个问题:
(1).不可把一行中所有的变量系数都改为零,否则模型结构将被破坏(出现非法约束行)。如果要想删除一行,应使用DEL命令(见本章第三节)。
(2).执行ALT命令后再次迭代运算得到的最优解,是在上一次的最后结果基础上根据新参数修改情况进行的,而不是从头开始计算。因此,在求解大规模的问题时,用ALT命令可以较快地得到多种方案的最优解。
§4.2 行增加命令EXT (Extension)
1.命令功能:在当前模型中增加若干约束(行)。 2.命令格式:
326
附录2 LINDO使用手册
:EXT
§4.3 行删除命令DEL (Delete)
1.命令功能:从当前模型中峒除一个约束(行)。 2.命令格式:
:DEL [n]
其中n表示要删除的约束的行号。 3.命令使用:请看下列: :LOOK ALL
327
附录2 LINDO使用手册
MAX 2X1+3X2 SUBJECT TO 2) X1+2X2<=12 3) 3X1+5X2<=15 4) 2X1+4X2<=18 END :DEL 2 :LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) 3X1+5X2<=15 3) 2X1+4X2<=18 END :DEL 2 :LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) 2X1+4X2<=18 END : !删除第二行 !删除第二行。注意,这时的第二行 !是原来问题的第三行 关于DEL命令的使用有如下三点说明:
(1).第一行的目标函数不能用DEL命令删除。如果出现删除第一行的命令,屏幕上会出现提示信息,如:
:LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) X1+2X2<=12 3) 3X1+5X2<=15 4) 2X1+4X2<=18 END :DEL 1 !删除第一行 CANNOT DELETE ROW 1 ...REENTER ROW NUMBER ROW: !不能删除第一行,重新输入行号 : (2).如果输入的行号超过已有的编号,屏幕上会出现提示信息。例如对于本节的模型,有:
:LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) X1+2X2<=12
328
附录2 LINDO使用手册
3) 3X1+5X2<=15 4) 2X1+4X2<=18 END :DEL 5 !删除第5行 INVALID ROW NUMBER...REENTER VALID ROWS ARE FROM 1 TO 4 ROW: !无效的行号,重新输入有效的1~4行行号 : (3).将原模型中的某一行删除后,LINDO会重新按自然数顺序排列剩下的约束,如果忽略了这一点,则有可能删去本应保留的约束。
§4.4 变量上限定义命令SUB (Simple Upper Bound)
1.命令功能:给当前模型中的变量设置上限。 2.命令格式:
:SUB [变量名] [常数]
其中的常数为给相应变量设置的上限数值。
3.命令使用:给下述模型中变量X1设置上限5(即x1≤5)的操作如下: :LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) X1+2X2<=12 3) 3X1+5X2<=15 4) 2X1+4X2<=18 END :SUB X1 5 !为X1设定上限5 :LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) X1+2X2<=12 3) 3X1+5X2<=15 4) 2X1+4X2<=18 END SUB X1 5.00 !X1的上限为5 : LOOK ALL MAX 2 X1 + 3 X2 SUBJECT TO 2) X1 + 2 X2 <= 12 3) 3 X1 + 5 X2 <= 15
329
附录2 LINDO使用手册
4) 2 X1 + 4 X2 <= 18 END SUB X1 5.00000 : 虽然给一个变量增加上限与增加一个相应的约束作用是一样的,但增加变量上限的计算效率要高得多,因此凡是遇到有上限变量得情况,都应该用SUB命令而避免增加约束。
§4.5 列增加命令APPC(Append Column)
1.命令功能:在当前模型中增加一个变量并增加相应的列。 2.命令格式:
:APPC [变量名]
其中的变量名是要在模型中新增加的变量。
3.命令使用:在APPC命令状态下,屏幕上会出现一系列提示信息,只要按照提示要求依次输入行号和对应的新变量系数即可。请看下例: :LOOK ALL MAX 2X1+3X2 SUBJECT TO 2) X1+2X2<=12 3) 3X1+5X2<=15 4) 2X1+4X2<=18 END :APPC X3 APPC>1 7 APPC>2 8 APPC>3 9 APPC>0 :LOOK ALL MAX 2X1+3X2+7X3 SUBJECT TO 2) X1+2X2+8X3<=12 3) 3X1+5X2+9X3<=15 4) 2X1+4X2<=18 END :
!增加列X3 !X3在第一行中的系数是7 !X3在第二行中的系数是8 !X3在第三行中的系数是9 !退出APPC命令 330