陈宝林《最优化理论与算法》超详细学习笔记 (七)————第五章 运输问题

  • 第1节 运输问题的数学模型
  • 第2节 表上作业法
    • 2.1 确定初始基可行解
    • 2.2 最优解的判别
    • 2.3 改进的方法——闭回路调整法
    • 2.4 表上作业法计算中的问题
  • 第3节 产销不平衡的运输问题及其求解方法

第1节 运输问题的数学模型

已知有mmm个生产地点Ai,i=1,2,…,mA_i, i=1,2,…,mAi​,i=1,2,…,m。可供应某种物资,其供应量(产量)分别为ai,i=1,2,…,ma_i, i=1,2,…,mai​,i=1,2,…,m,有nnn个销地Bj,j=1,2,…,nB_j, j=1,2,…,nBj​,j=1,2,…,n,其需要量分别为bj,j=1,2,…,nb_j, j=1,2,…,nbj​,j=1,2,…,n,从AiA_iAi​到BjB_jBj​运输单位物资的运价(单价)为cijc_{ij}cij​,这些数据可汇总于产销平衡表和单位运价表中,见表如下。有时可把这两表合二为一。

若用xijx_{ij}xij​表示从AiA_iAi​到BjB_jBj​的运量,那么在产销平衡的条件下,要求得总运费最小的调运方案的数学模型为:
min⁡z=∑i=1m∑j=1ncijxij\min z=\sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j} x_{i j}minz=i=1∑m​j=1∑n​cij​xij​
s.t. {∑i=1mxij=bjj=1,2,⋯,n∑j=1nxij=aiji=1,2,⋯,mxij≥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=1m​xij​=bj​j=1,2,⋯,n∑j=1n​xij​=aij​i=1,2,⋯,mxij​≥0​
这就是运输问题的数学模型。它包含m×nm×nm×n个变量,(m+n)(m+n)(m+n)个约束方程,其系数矩阵的结构比较松散,且特殊。

该系数矩阵中对应于变量xijx_{ij}xij​的系数向量PijP_{ij}Pij​,其分量中除第iii个和第m+jm+jm+j个为111以外,其余的都为零。即:
Pij=(0,…,1,0,…,0,1,0,…,0)T=ei+em+jP_{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=1nbj=∑i=1m(∑j=1nxij)=∑j=1n(∑i=1mxij)=∑i=1mai\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∑n​bj​=i=1∑m​(j=1∑n​xij​)=j=1∑n​(i=1∑m​xij​)=i=1∑m​ai​

第2节 表上作业法

表上作业法是单纯形法在求解运输问题时的一种简化方法,其实质是单纯形法。但具体计算和术语有所不同。可归纳为:
(1) 找出初始基可行解。即在(m×n)(m×n)(m×n)产销平衡表上用西北角法或最小元素法,Vogel法给出m+n−1m+n-1m+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=1mai=∑j=1nbj=d\sum_{i=1}^{m} a_{i}=\sum_{j=1}^{n} \mathcal{b}_{j}=di=1∑m​ai​=j=1∑n​bj​=d
必存在xij≥0,i=1,…,m,j=1,…,nx_{ij}≥0,i=1,…,m,j=1,…,nxij​≥0,i=1,…,m,j=1,…,n,这就是可行解。又因0≤xij≤min(aj,bj)0≤x_{ij}≤min(aj,bj)0≤xij​≤min(aj,bj),故运输问题必存在最优解。
确定初始基可行解的方法很多,有西北角法,最小元素法和伏格尔(Vogel)法。一般希望的方法是既简便,又尽可能接近最优解。下面介绍两种方法:

  1. 最小元素法
    基本思想是就近供应,即从单位运价表中最小的运价开始确定供销关系,然后次小。一直到给出初始基可行解为止。以例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)个基变量对应的系数列向量是线性独立的。证若表中确定的第一个基变量为它对应的系数列向量为:
Pi1j1=ei1+em+j1P_{i_{1} j_{1}}=e_{i_{1}}+e_{m+j_{1}}Pi1​j1​​=ei1​​+em+j1​​
因当给定xi1j1x_{i_{1} j_{1}}xi1​j1​​的值后,将划去第i1i_1i1​行或第j1j_1j1​列,
即其后的系数列向量中再不出现ei1e_{i_1}ei1​​或e_{m+j 1},
因而Pi1j1P_{i_{1} j_{1}}Pi1​j1​​不可能用解中的其他向量的线性组合表示。
类似地给出第二个,…,第(m+n-1)个。
这(m+n-1)个向量都不可能用解中的其他向量的线性组合表示。故这(m+n-1)个向量是线性独立的。
用最小元素法给出初始解时,有可能在产销平衡表上填入一个数字后,在单位运价表上同时划去一行和一列。这时就出现退化。关于退化时的处理将在2.4节中讲述。
2. 伏格尔法
最小元素法的缺点是:为了节省一处的费用,有时造成在其他处要多花几倍的运费。伏格尔法考虑到,一产地的产品假如不能按最小运费就近供应,就考虑次小运费,这就有一个差额。差额越大,说明不能按最小运费调运时,运费增加越多。因而对差额最大处,就应当采用最小运费调运。
伏格尔法的步骤是:
第一步:在表中分别计算出各行和各列的最小运费和次最小运费的差额,并填入该表的最右列和最下行,见表。

第二步:从行或列差额中选出最大者,选择它所在行或列中的最小元素。在表3-10中B2列是最大差额所在列。B2列中最小元素为4,可确定A3的产品先供应B2的需要。得表

同时将运价表中的B2列数字划去。如表所示

第三步:对表3-12中未划去的元素再分别计算出各行、各列的最小运费和次最小运费的差额,并填入该表的最右列和最下行。重复第一、二步。直到给出初始解为止。用此法给出例1的初始解列于表如下。


由以上可见:伏格尔法同最小元素法除在确定供求关系的原则上不同外,其余步骤相同。伏格尔法给出的初始解比用最小元素法给出的初始解更接近最优解。

本例用伏格尔法给出的初始解就是最优解。

2.2 最优解的判别

判别的方法是计算空格(非基变量)的检验数cij−CBB−1Pij,i,j∈Nc_{ij}−C_BB^{-1}P_{ij},i,j∈Ncij​−CB​B−1Pij​,i,j∈N。因运输问题的目标函数是要求实现最小化,故当所有的cij−CBB−1Pij≥0c_{ij}−C_BB^{-1}P_{ij}≥0cij​−CB​B−1Pij​≥0时,为最优解。下面介绍两种求空格检验数的方法。
1.闭回路法
在给出调运方案的计算表上,如下表,从每一空格出发找一条闭回路。它是以某空格为起点。用水平或垂直线向前划,当碰到一数字格时可以转90°后,继续前进,直到回到起始空格为止。闭回路如图的(a),(b),©等所示。


从每一空格出发一定存在和可以找到唯一的闭回路。因(m+n−1)(m+n-1)(m+n−1)个数字格(基变量)对应的系数向量是一个基。任一空格(非基变量)对应的系数向量是这个基的线性组合。如Pij,i,j∈NP_{ij}, i,j∈NPij​,i,j∈N可表示为
Pij=ei+em+j=ei+em+k−em+k+el−el+em+s−em+s+eu−eu+em+j=(ei+em+k)−(el+em+k)+(el+em+s)−(eu+em+s)+(eu+em+j)=Pik−Plk+Pls−Pus+Puj\begin{aligned} P_{i j} &=e_{i}+e_{m+j} \\ &=e_{i}+e_{m+k}-e_{m+k}+e_{l}-e_{l}+e_{m+s}-e_{m+s}+e_{u}-e_{u}+e_{m+j} \\ &=\left(e_{i}+e_{m+k}\right)-\left(e_{l}+e_{m+k}\right)+\left(e_{l}+e_{m+s}\right)-\left(e_{u}+e_{m+s}\right) \\ &+\left(e_{u}+e_{m+j}\right) \\ &=P_{i k}-P_{l k}+P_{l s}-P_{u s}+P_{u j} \end{aligned}Pij​​=ei​+em+j​=ei​+em+k​−em+k​+el​−el​+em+s​−em+s​+eu​−eu​+em+j​=(ei​+em+k​)−(el​+em+k​)+(el​+em+s​)−(eu​+em+s​)+(eu​+em+j​)=Pik​−Plk​+Pls​−Pus​+Puj​​
其中Pik,Plk,Pls,Pus,Puj∈BP_{ik},P_{lk},P_{ls},P_{us},P_{uj}∈BPik​,Plk​,Pls​,Pus​,Puj​∈B。而这些向量构成了闭回路。

闭回路法计算检验数的经济解释为:在已给出初始解的表3-9中,可从任一空格出发,如(A1,B1)。若让A1的产品调运1吨给B1。为了保持产销平衡,就要依次作调整:
在(A1,B3)处减少1吨,(A2,B3)处增加1吨,(A2,B1)处 减少1吨,即构成了以(A1,B1)空格为起点,其他为数字格的闭回路。如表3-14中的虚线所示。在这表中闭回路各顶点所在格的右上角数字是单位运价。

可见这调整的方案使运费增加
(+1)×3+(−1)×3+(+1)×2+(−1)×1=1(元)(+1)×3+(−1)×3+(+1)×2+(−1)×1=1(元)(+1)×3+(−1)×3+(+1)×2+(−1)×1=1(元)
这表明若这样调整运量将增加运费。将“1”这个数填入(A1,B1)格,这就是检验数。按以上所述,可找出所有空格的检验数,见上表。

当检验数还存在负数时,说明原方案不是最优解,要继续改进,改进方法见2.3小节。
2. 位势法
用闭回路法求检验数时,需给每一空格找一条闭回路。当产销点很多时,这种计算很繁。下面介绍较为简便的方法——位势法。
设u1,u2,…,um;v1,v2,…,vnu_1,u_2,…,u_m; v_1,v_2,…,v_nu1​,u2​,…,um​;v1​,v2​,…,vn​是对应运输问题的m+n个约束条件的对偶变量。B是含有一个人工变量x_a的(m+n)×(m+n)初始基矩阵。人工变量x_a在目标函数中的系数c_a=0,从线性规划的对偶理论可知:
CBB−1=(u1,u2,⋯,um;v1,v2,⋯,vn)C_{B} B^{-1}=\left(u_{1}, u_{2}, \cdots, u_{m} ; v_{1}, v_{2}, \cdots, v_{n}\right)CB​B−1=(u1​,u2​,⋯,um​;v1​,v2​,⋯,vn​)
而每个决策变量xijx_{ij}xij​的系数向量Pij=ei+em+jP_{ij}=e_i+e_{m+j}Pij​=ei​+em+j​,所以CBB−1Pij=ui+vjC_BB^{-1}P_{ij}=u_i+v_jCB​B−1Pij​=ui​+vj​。于是检验数
σij=cij−CBB−1Pij=cij−(ui+vj)\sigma_{i j}=c_{i j}-C_{B} B^{-1} P_{i j}=c_{i j}-\left(u_{i}+v_{j}\right)σij​=cij​−CB​B−1Pij​=cij​−(ui​+vj​)
由单纯形法得知所有基变量的检验数等于0。即
cij−(ui+vj)=0.i,j∈Bc_{i j}-\left(u_{i}+v_{j}\right)=0 . \quad i, j \in Bcij​−(ui​+vj​)=0.i,j∈B
例如,在例1的由最小元素法得到的初始解中x23,x34,x21,x32,x13,x14x_{23},x_{34},x_{21},x_{32},x_{13},x_{14}x23​,x34​,x21​,x32​,x13​,x14​是基变量。xax_axa​为人工变量,对应的检验数是
xaca−u1=0∵ca=0∴u1=0即 2−(u2+v3)=0x23c23−(u2+v3)=0x34c34−(u3+v4)=05−(u3+v4)=0x21c21−(u2+v1)=01−(u2+v1)=0x32c32−(u3+v2)=04−(u3+v2)=0x13c13−(u1+v3)=03−(u1+v3)=0x14c14−(u1+v4)=010−(u1+v4)=0\begin{aligned} &x_{a} \quad c_{a}-u_{1}=0 \quad \because c_{a}=0 \quad \therefore u_{1}=0\\ &\text { 即 } 2-\left(\mathrm{u}_{2}+\mathrm{v}_{3}\right)=0\\ &x_{23} \quad c_{23}-\left(u_{2}+v_{3}\right)=0\\ &x_{34} \quad c_{34}-\left(u_{3}+v_{4}\right)=0 \quad 5-\left(u_{3}+v_{4}\right)=0\\ &x_{21} \quad c_{21}-\left(u_{2}+v_{1}\right)=0 \quad 1-\left(u_{2}+v_{1}\right)=0\\ &x_{32} \quad c_{32}-\left(u_{3}+v_{2}\right)=0 \quad 4-\left(u_{3}+v_{2}\right)=0\\ &x_{13} \quad c_{13}-\left(u_{1}+v_{3}\right)=0 \quad 3-\left(u_{1}+v_{3}\right)=0\\ &x_{14} \quad c_{14}-\left(u_{1}+v_{4}\right)=0 \quad 10-\left(u_{1}+v_{4}\right)=0 \end{aligned}​xa​ca​−u1​=0∵ca​=0∴u1​=0 即 2−(u2​+v3​)=0x23​c23​−(u2​+v3​)=0x34​c34​−(u3​+v4​)=05−(u3​+v4​)=0x21​c21​−(u2​+v1​)=01−(u2​+v1​)=0x32​c32​−(u3​+v2​)=04−(u3​+v2​)=0x13​c13​−(u1​+v3​)=03−(u1​+v3​)=0x14​c14​−(u1​+v4​)=010−(u1​+v4​)=0​

从以上7个方程中,由u1=0u_1=0u1​=0可求得
u2=−1,u3=−5,v1=2,v2=9,v3=3,v4=10u_2= −1,u_3= −5,v_1=2,v_2=9,v_3=3,v_4=10u2​=−1,u3​=−5,v1​=2,v2​=9,v3​=3,v4​=10

因非基变量的检验数为
σij=cij−(ui+vj).i,j∈N\sigma_{i j}=c_{i j}-\left(u_{i}+v_{j}\right) . \quad i, j \in Nσij​=cij​−(ui​+vj​).i,j∈N
这就可以从已知的ui,vju_i,v_jui​,vj​值中求得。这些计算可在表格中进行。
以例1说明。
第一步:按最小元素法给出表3-9的初始解,然后做表3-16;即在对应表3-9的数字格处填入单位运价,见表3-16。

第二步:在上表上增加一行一列,在列中填入uiu_iui​,在行中填入vjv_jvj​,得下表。

先令u1=0u_1=0u1​=0,然后按ui+vj=ciju_i+v_j=c_{ij}ui​+vj​=cij​, i,j∈Bi,j∈Bi,j∈B相继地确定uiu_iui​,vjv_jvj​。由表3-17可见,当u1=0u_1=0u1​=0时,由u1+v3=3u_1+v_3=3u1​+v3​=3可得v3=3v_3=3v3​=3,由u1+v4=10u_1+v_4=10u1​+v4​=10可得v4=10v_4=10v4​=10;在v4=10v_4=10v4​=10时,由u3+v4=5u_3+v_4=5u3​+v4​=5可得u3=−5u_3= −5u3​=−5,以此类推可确定所有的uiu_iui​,vjv_jvj​的数值。

第三步:按σij=cij−(ui+vj),i,j∈Nσ_{ij}=c_{ij} −(u_i+v_j), i,j∈Nσij​=cij​−(ui​+vj​),i,j∈N计算所有空格的检验数。如
σ11=c11−(u1+v1)=3−(0+2)=1σ_{11}=c_{11} − (u_1+v_1)=3 − (0+2)=1σ11​=c11​−(u1​+v1​)=3−(0+2)=1
σ12=c12−(u1+v2)=11−(0+9)=2σ_{12}=c_{12} − (u_1+v_2)=11 − (0+9)=2σ12​=c12​−(u1​+v2​)=11−(0+9)=2
这些计算可直接在表3-17上进行。为方便,特设计计算表3-18如下:

表3-18 中还有负检验数。说明未得最优解,还可以改进。

2.3 改进的方法——闭回路调整法

当在表中空格处出现负检验数时,表明未得最优解。若有两个和两个以上的负检验数时,一般选其中最小的负检验数,以它对应的空格为调入格。即以它对应的非基变量为换入变量。由表得(2,4)为调入格。以此格为出发点,作一闭回路,如下表所示。

(2,4)格的调入量θ是选择闭回路上具有(-1)的数字格中的最小者。即θ=min(1,3)=1(其原理与单纯形法中按θ规划来确定换出变量相同)。然后按闭回路上的正、负号,加入和减去此值,得到调整方案,如表3-20所示。

对给出的解,再用闭回路法或位势法求各空格的检验数,见下表。表中的所有检验数都非负,故解为最优解。这时得到的总运费最小是85元。

2.4 表上作业法计算中的问题

  1. 无穷多最优解
    在本章2.1节中提到,产销平衡的运输问题必定存在最优解。那么有唯一最优解还是无穷多最优解? 判别依据与第1章3.3节讲述的相同。即某个非基变量(空格)的检验数为0时,该问题有无穷多最优解。空格(1,1)的检验数是0,表明例1有无穷多最优解。可在表3-20中以(1,1)为调入格,作闭回路
    (1,1)+−(1,4)−−(2,4)+−(2,1)−−(1,1)+(1,1)_{+}-(1,4)_{-}-(2,4)_{+}-(2,1)_{-}-(1,1)_{+}(1,1)+​−(1,4)−​−(2,4)+​−(2,1)−​−(1,1)+​
    确定θ=min(2,3)=2。经调整后得到另一最优解,见表。
  2. 退化
    用表上作业法求解运输问题当出现退化时,在相应的格中一定要填一个0,以表示此格为数字格。有以下两种情况:
    (1) 当确定初始解的各供需关系时,若在(i,j)格填入某数字后,出现Ai处的余量等于BjB_jBj​处的需量。这时在产销平衡表上填一个数,而在单位运价表上相应地要划去一行和一列。为了使在产销平衡表上有(m+n-1)个数字格。这时需要添一个“0”。它的位置可在对应同时划去的那行或那列的任一空格处。如表3-23,表3-24所示。因第一次划去第一列,剩下最小元素为2,其对应的销地B2,需要量为6,而对应的产地A3未分配量也是6。这时在产销表(3,2)交叉格中填入6,这时在单位运价表中需同时划去B2列和A3行。在表3-23的空格(1,2),(2,2),(3,3),(3,4)中任选一格添加一个0


    (2) 在用闭回路法调整时,在闭回路上出现两个和两个以上的具有(-1)标记的相等的最小值。这时只能选择其中一个作为调入格。而经调整后,得到退化解。这时另一个数字格必须填入一个0,表明它是基变量。当出现退化解后,并作改进调整时,可能在某闭回路上有标记为(-1)的取值为0的数字格,这时应取调整量θ=0。

第3节 产销不平衡的运输问题及其求解方法

前面所讲表上作业法,都是以产销平衡为前提条件的;但是实际问题中产销往往是不平衡的。就需要把产销不平衡的问题化成产销平衡的问题。
当产大于销时
∑i=1mai>∑j=1nbj\sum_{i=1}^{m} a_{i}>\sum_{j=1}^{n} b_{j}i=1∑m​ai​>j=1∑n​bj​
运输问题的数学模型可写成
min⁡z=∑i=1m∑j=1ncijxij\min z=\sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j} x_{i j}minz=i=1∑m​j=1∑n​cij​xij​
{∑j=1nxij≤ai,(i=1,2,⋯,m)∑i=1mxij≤bj,(j=1,2,⋯,n)xij≥0\left\{\begin{array}{l} \sum_{j=1}^{n} x_{i j} \leq a_{i}, \quad(i=1,2, \cdots, m) \\ \sum_{i=1}^{m} x_{i j} \leq b_{j}, \quad(j=1,2, \cdots, n) \\ x_{i j} \geq 0 \end{array}\right.⎩⎨⎧​∑j=1n​xij​≤ai​,(i=1,2,⋯,m)∑i=1m​xij​≤bj​,(j=1,2,⋯,n)xij​≥0​
由于总的产量大于销量,就要考虑多余的物资在哪一个产地就地储存的问题。设xi,n+1x_{i, n+1}xi,n+1​是产地AiA_iAi​的储存量,于是有:
∑j=1nxij+xi,n+1=∑j=1n+1xij=ai,(i=1,2,⋯,m)∑i=1mxij=bj(j=1,2,⋯,n)∑i=1mxi,n+1=∑i=1mai−∑j=1nbj=bn+1\begin{array}{l} \sum_{j=1}^{n} x_{i j}+x_{i, n+1}=\sum_{j=1}^{n+1} x_{i j}=a_{i}, \quad(i=1,2, \cdots, m) \\ \sum_{i=1}^{m} x_{i j}=b_{j} \quad(j=1,2, \cdots, n) \\ \sum_{i=1}^{m} x_{i, n+1}=\sum_{i=1}^{m} a_{i}-\sum_{j=1}^{n} b_{j}=b_{n+1} \end{array}∑j=1n​xij​+xi,n+1​=∑j=1n+1​xij​=ai​,(i=1,2,⋯,m)∑i=1m​xij​=bj​(j=1,2,⋯,n)∑i=1m​xi,n+1​=∑i=1m​ai​−∑j=1n​bj​=bn+1​​
令cij′=cijc_{i j}^{\prime}=c_{i j}cij′​=cij​,当 i=1,…,m,j=1,…,n时
cij′=0c_{i j}^{\prime}=0cij′​=0,当 i=1,…,m,j=n+1时
将其分别代入,得到
min⁡z=∑i=1m∑j=1n+1cij′xij=∑i=1m∑j=1ncij′xij+∑i=1mci,n+1=∑i=1m∑j=1ncijxij\begin{aligned} \min z &=\sum_{i=1}^{m} \sum_{j=1}^{n+1} c_{i j}^{\prime} x_{i j}=\sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j}^{\prime} x_{i j}+\sum_{i=1}^{m} c_{i, n+1} \\ &=\sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j} x_{i j} \end{aligned}minz​=i=1∑m​j=1∑n+1​cij′​xij​=i=1∑m​j=1∑n​cij′​xij​+i=1∑m​ci,n+1​=i=1∑m​j=1∑n​cij​xij​​
{∑j=1n+1xij=ai∑i=1mxij=bjxij≥0\left\{\begin{array}{l} \sum_{j=1}^{n+1} x_{i j}=a_{i} \\ \sum_{i=1}^{m} x_{i j}=b_{j} \\ x_{i j} \geq 0 \end{array}\right.⎩⎨⎧​∑j=1n+1​xij​=ai​∑i=1m​xij​=bj​xij​≥0​
由于该模型中有
∑i=1mai=∑j=1nbj+bn+1=∑j=1n+1bj\sum_{i=1}^{m} a_{i}=\sum_{j=1}^{n} b_{j}+b_{n+1}=\sum_{j=1}^{n+1} b_{j}i=1∑m​ai​=j=1∑n​bj​+bn+1​=j=1∑n+1​bj​
所以这是一个产销平衡的运输问题。
当产大于销时,只要增加一个假想的销地j=n+1(实际上是储存),该销地总需要量为
∑i=1mai−∑j=1nbj\sum_{i=1}^{m} a_{i}-\sum_{j=1}^{n} b_{j}i=1∑m​ai​−j=1∑n​bj​
而在单位运价表中从各产地到假想销地的单位运价为,
ci,n+1=0c_{i, n+1}=0ci,n+1​=0 就转化成一个产销平衡的运输问题。
当销大于产时,可以在产销平衡表中增加一个假想的产地i=m+1,该地产量为

∑j=1nbj−∑i=1maj\sum_{j=1}^{n} b_{j}-\sum_{i=1}^{m} a_{j}j=1∑n​bj​−i=1∑m​aj​
在单位运价表上令从该假想产地到各销地的运价,
ci,n+1=0c_{i, n+1}=0ci,n+1​=0同样可以转化为一个产销平衡的运输问题。
例2 设有三个化肥厂(A,B,C)供应四个地区(Ⅰ,Ⅱ,Ⅲ,Ⅳ)(Ⅰ,Ⅱ,Ⅲ,Ⅳ)(Ⅰ,Ⅱ,Ⅲ,Ⅳ)的农用化肥。假定等量的化肥在这些地区使用效果相同。各化肥厂年产量,各地区年需要量及从各化肥厂到各地区运送单位化肥的运价如表3-25所示。试求出总的运费最节省的化肥调拨方案。

解:这是一个产销不平衡的运输问题,总产量为160万吨,四个地区的最低需求为110万吨,最高需求为无限。根据现有产量,第Ⅳ个地区每年最多能分配到60万吨,这样最高需求为210万吨,大于产量。为了求得平衡,在产销平衡表中增加一个假想的化肥厂D,其年产量为50万吨。由于各地区的需要量包含两部分,如地区Ⅰ,其中30万吨是最低需求,故不能由假想化肥厂D供给,令相应运价为M(任意大正数),而另一部分20万吨满足或不满足均可以,因此可以由假想化肥厂D供给,按前面讲的,令相应运价为0。对凡是需求分两种情况的地区,实际上可按照两个地区看待。这样可以写出这个问题的产销平衡表和单位运价表。

产销平衡表(上表),单位运价表(下表)


根据表上作业法计算,可以求得这个问题的最优方案如表

陈宝林《最优化理论与算法》超详细学习笔记 (七)————第五章 运输问题相关推荐

  1. 【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)

    数值微积分 前言 一.多项式微积分 1. 多项式计算 2. 多项式微分 3. 多项式积分 二.数值微积分 1. 数值微分法 2. 高阶微分法 3. 数值积分法 三.回顾Function Handles ...

  2. 陈宝林《最优化理论与算法》超详细学习笔记 (三)————单纯形法

    陈宝林<最优化理论与算法>详细学习笔记 (三)----单纯形法 数学模型 最优性检验与解的判别 最优解的判别定理 无穷多最优解判别定理 无界解判别定理 其他情形 第三章 单纯形法 单纯形表 ...

  3. 陈宝林《最优化理论与算法》超详细学习笔记 (八)————最优性条件

    陈宝林<最优化理论与算法>超详细学习笔记 (八)----最优性条件 无约束问题的极值条件 必要条件 二阶充分条件 充要条件 约束极值问题的最优性条件 不等式约束的一阶最优性条件 无约束问题 ...

  4. 陈宝林《最优化理论与算法》超详细学习笔记 (四)————第四章 对偶理论

    陈宝林<最优化理论与算法>超详细学习笔记 (四)----第四章 对偶理论 1. 对偶问题的提出 2. 线性规划的对偶理论 2.1 原问题与对偶问题的关系 2.2 对偶问题的基本性质 3. ...

  5. 陈宝林《最优化理论与算法》超详细学习笔记 (一)————第十章 使用导数的最优化方法(最速下降法、牛顿法、阻尼牛顿法)

    陈宝林<最优化理论与算法>超详细学习笔记 (一)----第十章 使用导数的最优化方法(最速下降法.牛顿法.阻尼牛顿法) 写在前面 第十章 使用导数的最优化方法 最速下降法 牛顿法 阻尼牛顿 ...

  6. 陈宝林《最优化理论与算法》超详细学习笔记 (五)————最优性条件 之 KKT条件

    陈宝林<最优化理论与算法>超详细学习笔记 (五)----最优性条件 之 KKT条件 Lagrange对偶问题 原问题 Lagrange函数 Lagrange对偶函数 强/弱对偶性 弱对偶性 ...

  7. 陈宝林《最优化理论与算法》超详细学习笔记 (二)————补充知识(凸集) 第二章 线性规划的基本性质

    陈宝林<最优化理论与算法>超详细学习笔记 (二)----补充知识 凸集 & 第二章 线性规划的基本性质 补充知识 凸集 方向与极方向 表示定理 择一定理 第一章 线性规划的基本性质 ...

  8. 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)

    Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...

  9. Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)

    所有示例使用的数据表均为Oracle提供的SQL基础数据表(t_employees.sql dept.sql emp.sql salgrade.sql) 熟练掌握多多练习即可达到完成后端开发所需具备的 ...

最新文章

  1. 正则表达式获取TABLE里的内容
  2. 英特尔用ViT做密集预测效果超越卷积,性能提高28%,mIoU直达SOTA|在线可玩
  3. qt中QList使用removeAt()删除元素
  4. mysql存储过程中删除定时器_mysql创建存储过程,定时任务,定时删除log 莫大人...
  5. 自动化测试---页面截图
  6. codeforces 653D D. Delivery Bears(二分+网络流)
  7. 使用wordpress分页函数paginate_links
  8. Android Studio稍微较新的版本下载
  9. 关于NGINX变量的一些测试结果
  10. 宏基4750网卡驱动linux,宏碁4750g无线网卡驱动下载
  11. win10安装visio2010出错_四种解决安装Office 2010时出现错误1907的提示方法介绍
  12. 配置JAVA_HOME
  13. 单细胞测序的marker基因
  14. Linux 文本三剑客之awk 木石前盟
  15. 无论是要打牢计算机基础还是准备校招面试,这本书你不可错过!
  16. 易中天品汉代风云人物02: 冤死的晁错(下)
  17. 【DDD 8】领域驱动设计实践 —— Application层实现
  18. HDU-1546-Idiomatic Phrases Game
  19. guzzlehttp/guzzle使用
  20. 计算机表格快捷键,工具 | 20个超级实用的Excel快捷键,会用5个是高手!

热门文章

  1. 建筑八大员培训湖北标准员培训施工现场质量标准化的建设措施
  2. “多个帮主同意某人加入工会”思考异步编程的问题
  3. 基于Python的Django和MySQL实现的合同管理系统
  4. 微软MSDN现Bug?非订阅用户可下载Win10/Win8/Win7等
  5. 游戏系统开发笔记(三)——通用代码库
  6. 怎样设计一个好玩的游戏——游戏设计的艺术
  7. 装修必看丨超详细省钱装修干货!
  8. 人工学院2卡顿_人工学院2怎么那么卡 | 手游网游页游攻略大全
  9. 阿里CTO:阿里是世界领先的大数据公司
  10. Python获取英雄联盟皮肤原画:新手玩家们都懵了!