运输问题的解法运输问题是一类特殊的线性规划问题,最早是从物质调运工作中提出的,后来又有许多其它问题也归结到这一类问题中。
正是由于它的特殊结构,我们不是采用线性规划的单纯方法求解,而是根据单纯形方法的基本原理结合运输问题的具体特性须用表上作业的方法求解。
§1 运输问题的数学模型及其特性1.1 运输问题的数学模型设有 个地点(称为产地或发地) 的某种物资调至 个地点(称为销地或收地),各个发点需要调出的物资量分别为个单位,各个收点需要调进的物资量分别为 个单位。
已知每个发点到每个收点的物资每单位运价为 ,现问如何调运,才能使总的运费最小。
我们把它列在一张表上(称为运价表)。
设表示从产地运往销地的运价( =1,2,…, ; =1,2,…,)。
表3-1如果(总发量)(总收量),我们有如下线性规划问题:m mA A A ,,,21 n nB B B ,,,21 ma a a ,,,21 nb b b ,,,21 iA jB ijc ijx iA jB i m jn(3.1)(3.1)式称为产销平衡运输问题的数学模型。
当(总发量)(总收量)时。
即当产大于销()时,其数学模型为(3.2)当销大于产()时,其数学模型为(3.3)因为产销不平衡的运输问题可以转化为产销平衡的运输问题。
所以我们先讨论产销平衡的运输问题的求解。
运输问题有个未知量,个约束方程。
例如当≈40,=70时(3.1)式就有2800个未知量,110个方程,若用前面的单纯形法求解,计算工作量是相当大的。
我们必须寻找特殊解法。
∑∑===m i nj ijij x c z 11min ⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧==≥====∑∑==),,2,1;,2,1(0),,2,1(),,2,1(11n j m i x n j b x m I a x ij j mi ij i nj ij ∑∑==≠nj jm i i ba 11∑∑==>nj jm i i ba 11∑∑===m i nj ijij x c z 11min ⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧==≥===≤∑∑==),,2,1;,2,1(0),,2,1(),,2,1(11n j m i x n j b x m I a x ij j mi ij i nj ij ∑∑==<nj jm i i ba 11∑∑===m i nj ijij x c z 11min ⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧==≥=≤==∑∑==),,2,1;,2,1(0),,2,1(),,2,1(11n j m i x n j b x m I a x ij j mi ij i nj ij mn n m +m n1.2 运输问题的特性由于运输问题也是线性规划问题,根据线性规划的一般原理,如果它的最优解存在,一定可以在基可行解中找到。
因此,我们先求运输问题(3.1)的约束方程组的系数矩阵的秩()等于多少。
(3.1)式有个约束,将前个约束相加得, (3.4)将后个约束相加,得, (3.5)因为,,所以,(3.4)式与(3.5)式是相同得。
由此可见,这个约束不是独立的。
我们可以证明:当所有的,都大于零时,任何个约束都是相互独立的。
即,系数矩阵A 的秩,事实上,… … … …注意到在中去掉第1行而取出第2,第3,…,第行,又取出与所对对应的列,则由这些取出的行和列的交叉处的元素构成的一个级子式r A n m +m ∑∑∑====mi im i nj ija x111n ∑∑∑====ni jn j mi ijb x111∑∑===nj jmi i ba 11n m +ia jb 1-+n m 1)(-+=n m A r 11x 12x n x121x 22x n x 21m x 2m x mn x ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=111111111111111111 A A n m +1312111211,,,,,,,m n x x x x x x A 1-+n m D所以 ,由此可知,运输问题的任何一组基都由 个变量组成。
第一,所有未划去的行列中找出最小元素(若有几个元素同时最小,则可任取其一),在该元素所在的变量处填上尽可能大的数字,并作上标记;第二,划去已被满足的行或列的空格,若表中某一变量处填入一数后,使该变量所在之行和所在之列同时被满足,遇只能划去一行或一列,而不能将两者同时划去;第三.上述步骤,直至所有的空格都已填数或被划去为止。
§2 运输问题的表上作业法2.1 初始解的求法同单纯形法一样,首先要求初始调运方案必须是一个基可行解,初始解一般来说不是最优解,主要希望给出求初始解的方法简便可行,且有较好的效果。
这种方法很多,最常 见的是左上角法(或西北角法)、最小元素法和Vogl 近似法(VAM)。
后两法的效果较好,在此我们仅对最小元素法加以介绍。
最小元素法的所谓元素就是指单位运价。
此法的基本思想是:运价最便宜的优先调运,现通过例子来说明。
例1 设有某种物质要从三个仓库运往四个销售点。
各发点(仓库)的发货量、各收点(销售点)的收货量以及到的单位运费如表3-2( =1,2,3; =1,2,3,4).组织运输才能使总运费最少?表3-21111111111≠=⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯=D 1)(-+=n m A r 1-+n m 321,,A A A .,,,4321B B B B iA jB ijC ij由表3-2知,总的发量=总的收量,供销平衡。
现从取最小值的格子开始(若有几个 同时取最小值,则可取其中之一)。
在本例中 最小。
这说明,将 的物质调给是最便宜的,故应给所对应的变量 以尽可能大的数值。
显然应取。
在处填上7。
由于的 需求已经得到满足(或者说 列已被满足),故应为零,在处打×将列划去,并将的发量相应地改为2(见表3-3)。
在表3-3未划线的格子中,最小的为。
有 即令,并在第二列的其它空格(即在 )处打×,于是第二列又被划去,且 的发量只有1了。
表3-3ijc ijc 113=c 1A 3B 13c 13x 7)7,9m in(13==x 13x 3B 3B 3323,x x 3323,x x 3B 1A ijc 622=c )9,10m in(22=x 922=x 3212,x x 2A接下去的做法是:在 处填上2,此时, 的发量已分配完毕(一般说成: 行被满足),故应在第一行的其它空格处(实际上只有)打上×,划去第一行。
在处填上1,在第二行的其它空格处(实际上只有了)打上×,划去第二行。
在处填上1,在第一列的其它空格处(实际上已无空格)打上×,划去第一列。
在处填上5,在第四列(或第3行)的其它空格处(实际上已无空格)打上×,划去第四列(或第三行),见表3-4。
至此,所有方格都已填上数或打上×,总共填了3+4-1=6个数(等于基变量的个数)其余方格均已打×。
每填一数就划去了一行或一列,总共划去的行数与列数之和也是6。
可以证明,用最小元素法所得到的一组解 是基可行解,而且填数处是基变量,打×处是非基变量。
它对应的目标函数为在用最小元素法确定初始调运方案的 基本步骤:11x 1A 1A 14x 21x 24x 31x 34x ijx 184516114961117129=⨯+⨯+⨯+⨯+⨯+⨯=z值得注意的是,如是空格,但的需求已满足,(或的物质已调完)不需要(或不可能)再调运物质到,此时必须禽,以保证最后填数的个数个。
这一点对于以下的计算是重要的。
2.2验数的求法表上作业法同单纯形法一样,也是利用检验数判别已取得的解是否为最优解。
表上作业法求检验数一般有两种方法:位势法和闭回路法。
这里我们先介绍位势法。
1 位势法首先构造位势表我们将运价表中对应于表3-4有运量处划方格,然后在表的右边添加一列,下面添加一行。
并且在添加的行、列里填上一些数,使得表中任何划了方格的对应运价正好等于它所在行及所在列中新填入数字之和。
(见表3-5)具体作法如下:将行右边空格填入零,则列、列下面的空格中必须分别填入9、1。
由于11=9+2,所以,行的右边空格必须填入2。
类似地,列的下面应该填入4(因6=4+2),行的右边只能填5(因14=9+5),最后,由,所以,列必须填入11。
这样就得到了表3-5.这个表称为位势表,新填入的数字分别称为行位势和列位势。
并分别记为和(=1,2,3;=1,2,3,4)。
ijxjBiAiA j B0=ijx1-+nm 1A1B3B2A2B3A1634=C4Biαjβi j再求检验数设所在的格子的检验数为,则我们可以证明=-(+)( =1,2,…, ; =1,2,…, ),(3.6)并且当所有的0时,对应的调运方案是最优方案。
表3-5显然,对于那些在方中已确定了调运量的格子的检验数应该为零,即有=+,上面我们在求行位势与列位势时就利用了这一关系。
下面我们来求其余格子所对ijx ijσijσijc iαjβi m j n ≥ijσijσijc iαjβ应的检验数。
;;;;;;2 闭回路法首先介绍闭回路的概念:如果已确定了某一调运方案,我们从某一空格出发(无调运量的格子),沿水平方向或垂直方向前进,遇到某一个适当有调运量的格子就转向继续前进。
如此继续下去,经过若干次,就一定回到原来出发的空格。
这样形成的一条由水平和垂直线段组成的封闭折线称为闭回路。
在表上作业法中,闭回路中重要的概念之一,它既可以计算检验数又可以调整调运方案。
由于数字格对应着基变量,其检验数均为零,而我们考虑的是非基变量的检验数,所以只研究从空格出发所形成的闭回路。
由闭回路的构成可见,除起点是空格外,其余所有的拐角点都是填有调运量的。
我们可以证明一个重要的事实:从每一个空格出发都存在唯一的闭回路。
例如在表3-5所示的初始调运方案中作出从(3.2)对应的空格为起点的闭回路为(3,2) (2,2) (2,1) (3,1) (3,2)这条闭合回路,除出发格(3,2)为空格外,其余都是数字格,如表3-6所示。
14)40(18)(211212=+-=+-=βασc 1)110(10)(211414-=+-=+-=βασc 5)12(8)(322323=+-=+-=βασc 5)112(18)(422424=+-=+-=βασc 3)45(12)(233232=+-=+-=βασc 4)15(2)(333333-=+-=+-=βασc ︒90→→→→为确定空格( )的检验数,便可以从空格( )出发作闭回路,并对该回路的顶点进行编号,即以( )格为第一个顶点,所经过的顶点依次为第二个、第三个……。
则闭回路上奇数顶点的单位运价之和减去偶数顶点的单位运价之和所得到的差,就是空格( )的检验数。