陈宝林《最优化理论与算法》超详细学习笔记 (七)————第五章 运输问题
第1节 运输问题的数学模型
已知有 m m m个生产地点 A i , i = 1 , 2 , … , m A_i, i=1,2,…,m Ai,i=1,2,…,m。可供应某种物资,其供应量(产量)分别为 a i , i = 1 , 2 , … , m a_i, i=1,2,…,m ai,i=1,2,…,m,有 n n n个销地 B j , j = 1 , 2 , … , n B_j, j=1,2,…,n Bj,j=1,2,…,n,其需要量分别为 b j , j = 1 , 2 , … , n b_j, j=1,2,…,n bj,j=1,2,…,n,从 A i A_i Ai到 B j B_j Bj运输单位物资的运价(单价)为 c i j c_{ij} cij,这些数据可汇总于产销平衡表和单位运价表中,见表如下。有时可把这两表合二为一。
若用 x i j x_{ij} xij表示从 A i A_i Ai到 B j B_j Bj的运量,那么在产销平衡的条件下,要求得总运费最小的调运方案的数学模型为:
min z = ∑ i = 1 m ∑ j = 1 n c i j x i j \min z=\sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j} x_{i j} minz=i=1∑mj=1∑ncijxij
s.t. { ∑ i = 1 m x i j = b j j = 1 , 2 , ⋯ , n ∑ j = 1 n x i j = a i j i = 1 , 2 , ⋯ , m x i j ≥ 0 \text { s.t. }\left\{\begin{array}{l} \sum_{i=1}^{m} x_{i j}=b_{j} j=1,2, \cdots, n \\ \sum_{j=1}^{n} x_{i j}=a_{i j} i=1,2, \cdots, m \\ x_{i j} \geq 0 \end{array}\right. s.t. ⎩⎨⎧∑i=1mxij=bjj=1,2,⋯,n∑j=1nxij=aiji=1,2,⋯,mxij≥0
这就是运输问题的数学模型。它包含 m × n m×n m×n个变量, ( m + n ) (m+n) (m+n)个约束方程,其系数矩阵的结构比较松散,且特殊。
该系数矩阵中对应于变量 x i j x_{ij} xij的系数向量 P i j P_{ij} Pij,其分量中除第 i i i个和第 m + j m+j m+j个为 1 1 1以外,其余的都为零。即:
P i j = ( 0 , … , 1 , 0 , … , 0 , 1 , 0 , … , 0 ) T = e i + e m + j P_{i j}=(0, \ldots, 1,0, \ldots, 0,1,0, \ldots, 0)^{\mathrm{T}}=e_{i}+e_{m+j} Pij=(0,…,1,0,…,0,1,0,…,0)T=ei+em+j
对产销平衡的运输问题,由于有以下关系式存在:
∑ j = 1 n b j = ∑ i = 1 m ( ∑ j = 1 n x i j ) = ∑ j = 1 n ( ∑ i = 1 m x i j ) = ∑ i = 1 m a i \sum_{j=1}^{n} b_{j}=\sum_{i=1}^{m}\left(\sum_{j=1}^{n} x_{i j}\right)=\sum_{j=1}^{n}\left(\sum_{i=1}^{m} x_{i j}\right)=\sum_{i=1}^{m} a_{i} j=1∑nbj=i=1∑m(j=1∑nxij)=j=1∑n(i=1∑mxij)=i=1∑mai
第2节 表上作业法
表上作业法是单纯形法在求解运输问题时的一种简化方法,其实质是单纯形法。但具体计算和术语有所不同。可归纳为:
(1) 找出初始基可行解。即在 ( m × n ) (m×n) (m×n)产销平衡表上用西北角法或最小元素法,Vogel法给出 m + n − 1 m+n-1 m+n−1个数字,称为数字格。它们就是初始基变量的取值。 。
(2) 求各非基变量的检验数,即在表上计算空格的检验数,判别是否达到最优解。如已是最优解,则停止计算,否则转到下一步。
(3) 确定换入变量和换出变量,找出新的基可行解。在表上用闭回路法调整。
(4) 重复(2),(3)直到得到最优解为止。
例1 某公司经销甲产品。它下设三个加工厂。每日的产量分别是:A1为7吨,A2为4吨,A3为9吨。该公司把这些产品分别运往四个销售点。各销售点每日销量为:B1为3吨,B2为6吨,B3为5吨,B4为6吨。已知从各工厂到各销售点的单位产品的运价为表3-3所示。问该公司应如何调运产品,在满足各销点的需要量的前提下,使总运费为最少。
解:先作出这问题的产销平衡表和单位运价表
2.1 确定初始基可行解
与一般线性规划问题不同,产销平衡的运输问题总是存在可行解。因有
∑ i = 1 m a i = ∑ j = 1 n b j = d \sum_{i=1}^{m} a_{i}=\sum_{j=1}^{n} \mathcal{b}_{j}=d i=1∑mai=j=1∑nbj=d
必存在 x i j ≥ 0 , i = 1 , … , m , j = 1 , … , n x_{ij}≥0,i=1,…,m,j=1,…,n xij≥0,i=1,…,m,j=1,…,n,这就是可行解。又因 0 ≤ x i j ≤ m i n ( a j , b j ) 0≤x_{ij}≤min(aj,bj) 0≤xij≤min(aj,bj),故运输问题必存在最优解。
确定初始基可行解的方法很多,有西北角法,最小元素法和伏格尔(Vogel)法。一般希望的方法是既简便,又尽可能接近最优解。下面介绍两种方法:
- 最小元素法
基本思想是就近供应,即从单位运价表中最小的运价开始确定供销关系,然后次小。一直到给出初始基可行解为止。以例1进行讨论。
第一步:从表3-3中找出最小运价为1,这表示先将A2的产品供应给B1。因a2>b1,A2除满足B1的全部需要外,还可多余1吨产品。在表3-4的(A2,B1)的交叉格处填上3。得表3-5。并将表3-3的B1列运价划去。得表3-6。
第二步:在表3-6未划去的元素中再找出最小运价2,确定A2多余的1吨供应B3,并给出表3-7,表3-8。
第三步:在表3-8未划去的元素中再找出最小运价3;这样一步步地进行下去,直到单位运价表上的所有元素划去为止,最后在产销平衡表上得到一个调运方案,见表。这方案的总运费为86元。
用最小元素法给出的初始解是运输问题的基可行解,其理由为:
(1) 用最小元素法给出的初始解,是从单位运价表中逐次地挑选最小元素,并比较产量和销量。当产大于销,划去该元素所在列。当产小于销,划去该元素所在行。然后在未划去的元素中再找最小元素,再确定供应关系。这样在产销平衡表上每填入一个数字,在运价表上就划去一行或一列。表中共有m行n列,总共可划(n+m)条直线。但当表中只剩一个元素时,这时当在产销平衡表上填这个数字时,而在运价表上同时划去一行和一列。此时把单价表上所有元素都划去了,相应地在产销平衡表上填了(m+n-1)个数字。即给出了(m+n-1)个基变量的值。
(2) 这(m+n-1)个基变量对应的系数列向量是线性独立的。证若表中确定的第一个基变量为它对应的系数列向量为:
P i 1 j 1 = e i 1 + e m + j 1 P_{i_{1} j_{1}}=e_{i_{1}}+e_{m+j_{1}} Pi1j1=ei1+em+j1
因当给定 x i 1 j 1 x_{i_{1} j_{1}} xi1j