第三节 求检验数的的求法
由于表上作业法也是一个迭代算法,何时终止迭代,总得有一个判定条件,这个判定条件类似于单纯法中的检验数,只是由于运输问题的特殊性,求检验数的方法与单纯形法有所不同,下面给出求检验数的两种方法。 一、闭回路法
1.定理:运输问题的表上作业法中,任一个非基变量都能和若干个基变量构成唯一的闭回路。 如图示:
顶点 (1) (2) 非基变量 基变量 (3) (4) 基变量 基变量 (6) (5) 基变量 基变量
非基变量的检验数就等于闭回路上所有奇数顶点(顶点(1)、(3)、(5))对应的单位运价之和减去所有偶数顶点(顶点(2)(4)、(6))对应的单位运价之和。
下面通过上例给出说明
销地 产地 运费 A1 B1 x11 =× 3 A2 x21= 3 1 A3 × 7 销量
要计算非基变量x11的检验数,按照定理非基变量x11 与基变量 x13 、x23 、 x21组成唯一的闭回路。闭回路的奇数顶点对应的单位运价之和为3+2,偶数顶点对应的单位运价之和为3+1,所以x11的检验数为5-4=1。
利用闭回路法求检验数可以作出如下的经济解释。
+1 -1 行平衡 3 3
-1 +1 行平衡 1 2 列平衡 列平衡
就是把运量给x11 处分配一个单位,看看会对目标函数值带来什么影响(增加还是减少)。由于表上作业法中表的每行上分配的运量之和是一个常数(等于对应产地的产量),所以若给x11(分配前x11=0,
3 B2 × 11 × 9 6 4 6 B3 x 13 =4 3 x23= 1 2 × 10 5 B4 3 10 × 8 3 5 6 产量 7 4 9 是非基变量)分配了1个单位的运量,将增加1×3个单位的运费;同时为保持产量平衡,对应的x13 处就要减少一个单位的运量,这样将减少1×3个单位的运费;与此同时,由于表上作业法中表的每列上分配的运量之和是一个常数(等于对应销地的销量)所以当x13减少了1个单位的运量时,为保持销量平衡x23将增加1个单位的运量,这样将增加1×2个单位的运费;同理可知对应的x21 处就要减少一个单位的运量,将减少1×1个单位的运费。
综上所述,目标函数值增加了3+2,同时又减少了3+1 。所以目标函数总的变化量为:(3+2) -(3+1)=1。这就是说,每给x11分配一个单位的运量,目标函数(总运费)将增加一个单位。因此在表上作业法中对检验数大于零的地方不再分配运量,若所有非基变量的检验数全大于零,任何形式的运量调整只能使目标函数值增加,所以算法终止,此时的解就是最优解。请大家参考上面的例子仔细想一想,若非基变量的检验数小于零,是否应该给该处分配运量把非基变量调整成基变量答案是肯定的,为什么 通过上述的闭回路法,可以把所有非基变量的检验数求出来。
从运算上说,都是加减运算,难就难在寻找闭回路,但是只要多练习,还是比较容易的。 二、位势法
用闭回路法求检验数,需要对每一个非基变量(表上画“×”的地方)寻找闭回路,然后再去求检验数,当一个运输问题的产销点很多时,这种方法的计算工作量是很大的,不如位势法简单,下面通 过实例简单介绍一下位势法。
简单的说,位势法就是通过与基变量的对应的单位运价把各行、各列对应的位势(可以先设成未知数)求出来,再利用它求出非基变量检验数的一种方法,这种方法的合理性来自于线性规划问题的对偶理论(有兴趣的同学可以参考文献(1)86页的内容)。
在线性规划问题的对偶理论和单纯型法,在基变量对应的检验数为零,所以有下面的方程组
u1 + v3 =3
u1 + v4 =10 u2 + v1 =1 u2 + v3 =2 u3 + v2 =4 u3 + v4 =5
由于是7个未知数6个方程,所以必须给某一变量初始值。一般是令u1=0,可以解出其它的位势如表上所示。
根据定理(课本上的定理5) 非基变量xij的检验数