admin 发表于 2015-7-14 13:16:18

§6.1 定义0-1变量命令INT

§6.1 定义0-1变量命令INT

1.命令功能:定义当前模型中的0-1型整数变量。
2.命令格式:
            :INT[变量名]<CR>
其中的变量名表示将要定义为0-1变量的变量。
3.命令使用:输入一个0-1型整数规划模型的方法,是先按前述的线性规划模型的输入方法进行操作,尔后用INT命令来定义0-1变量。INT命令一般应在对应的线性规划模型输入完毕后立即进行。下面请看有三个0-1变量的整数规划模型的上机操作实例:
MAX3X1+4X2+5X3+3X4+2X5?ST
?2X1+3X2+4X3+5X4+X5<11
?3X1+4X2+2X3+X4+3X5<16
?7X1+2X2+5X3+4X4+2X5<19
?END
:INTX1                        !定义X1为0-1变量:INTX2                        !定义X2为0-1变量:INTX3                        !定义X3为0-1变量:LOOK ALL
MAX3X1+4X2+5X3+3X4+2X5SUBJECTTO2)2X1+3X2+4X3+5X4+X5<=113)3X1+4X2+2X3+X4+3X5<=164)7X1+2X2+5X3+4X4+2X5<=19END
INTEGER-VARIABLES=3         !前三个变量为0-1变量
:GO

   LP OPTIMUM FOUND AT STEP 6!已获得线性规划的最优解

   OBJECTIVE FUNCTION VALUE

         1)16.4000000             !线性规划的目标函数值

VARIABLE       VALUE       REDUCEDCOSTX1             1.000000   .200000X2            .800000   .000000X3             1.000000    1.000000X4            .000000    1.400000X5             2.600000   .000000
ROW            SLACK       DUAL PRICES2)             .000000   .8000003)             .000000   .4000004)             .200000   .000000
NO.ITERATIONS=6               !开始分支定界算法
BRANCHES=0DETERM.=-5.000E0SET2 TO 1 AT 1 BND=16.333330 TWIN=16.000000SET1 TO 1 AT 2 BND=16.300000 TWIN=16.000000SET3 TO 1 AT 3 BND=16.000000 TWIN=16.000000
NEWINTEGER SOLUTION AT BRANCH 3 PIVOT 10
   OBJECTIVE FUNCTION VALUE
         1)16.0000000             !第一个(0-1)整数解

VARIABLE       VALUE       REDUCEDCOSTX1             1.000000    -1.000000X2             1.000000    -2.000000X3             1.000000    -3.000000X4            .000000    7.000000X5             2.000000   .000000
ROW            SLACK       DUAL PRICES2)            .000000    2.0000003)             1.000000   .0000004)             1.000000   .000000
NO.ITERATIONS=10BRANCHES=3DETERM.=1.000E0BESTREMAINING SOLUTION NO BETTER THAN 16.00000DELETE3 AT LEVEL 3DELETE1 AT LEVEL 2DELETE2 AT LEVEL 1ENUMERATIONCOMPLETE. BRANCHES = 3 PIVOTS = 10
LASTINTEGER SOLUTION IS THE BEST FOUND!以上整数解是最优解


从上例可以看到,求解一个0-1整数规划模型的命令,仍是GO命令。GO命令下的第一步计算结果不是整数的,接着键入回车键,即开始用分支定界法计算整数解(而不是进行灵敏度分析)。
当模型中有很多变量需要定义成0-1变量,可以有以下命令:
            :INT<n>其中n表示模型中的0-1型整数变量数目。使用这命令来定义0-1变量,可以极大地提高键盘输入效率。对于上节的例子,三个0-1变量的定义可以如此操作:
            :INT3使用该命令时须特别注意变量在目标函数中的排列次序。当目标函数中不是包含有全部变量时,应慎用这一命令。命令中的n,是指目标函数中(或模型中先输入的)前n个变量,不注意这一点,就容易出错。
如果要取消已定义的0-1变量,用以下命令:
            :INT0<CR>
键入这一命令后,模型中原有的0-1变量全部被取消,整数规划模型变成线性规划模型,但原有的 0-1变量被限制在区间上。如:

:LOOK ALL
MAX    3 X1 + 4 X2 + 5 X3 + 3 X4 + 2 X5 SUBJECT TO
      2)2 X1 + 3 X2 + 4 X3 + X4 + 3 X5 <=11      3)3 X1 + 4 X2 + 2 X3 + X4 + 3 X5 <=16      4)7 X1 + 2 X2 + 5 X3 + 4 X4 + 2 X5 <=19 END
INTE    3:INT0
:LOOK ALL
MAX    3 X1 + 4 X2 + 5 X3 + 3 X4 + 2 X5 SUBJECT TO
      2)2 X1 + 3 X2 + 4 X3 + X4 + 3 X5 <=11      3)3 X1 + 4 X2 + 2 X3 + X4 + 3 X5 <=16      4)7 X1 + 2 X2 + 5 X3 + 4 X4 + 2 X5 <=19 END
SUB      X1      1.00000 SUB      X2      1.00000 SUB      X3      1.00000
:


页: [1]
查看完整版本: §6.1 定义0-1变量命令INT