【运筹学】产销平衡下的运输问题概念理解(4月9日学习笔记)

一、运输问题的数学模型

运输问题的建模有点类似于初高中的解方程组问题,以清华大学出版社的《运筹学(第四版)》P82页中的表格为例
运输问题

图源:清华大学出版社的《运筹学(第四版)》P82
https://my.oschina.net/liyangke/blog/2981227

运输问题的建模就是一个解决运输问题的建模,这里的变量设的是从各个产地运往哥哥销售地的物资量Xij(即为表3-1中未显示内容的方框内应填入的变量)。
在产销平衡的条件下, 表3-1代表产量和销量间的关系。竖着看这张表,各个产地i(从1到m)运往同一销地j的物资量之和等于bj;因为i地卖了这么多出去,那肯定需要进这么多物资进来。横着看表格同理。
表3-2代表从i地进到j地在运输过程中产生的运输单价,通俗来说也就是邮费。

那么模型的构建就很简单了,目标函数是求所有邮费之和的最小值在这里插入图片描述
约束条件是表3-1所描述的供销关系:
从第1个产地发出的物资受到的约束条件方程是
在这里插入图片描述
以此类推,得到方程组
在这里插入图片描述

图源:https://www.docin.com/p-2088705409.html

整合成数学模型如下
在这里插入图片描述
这就是运输问题的数学模型。
从我们上面得到的在这里插入图片描述
如图结果,我们发现,这个数学模型总共有m*n个变量(m个产地和n个销售地一一组合),m+n个约束方程(m个关于产量的约束方程,n个关于销量的约束方程)。
该图结果亦可化为系数矩阵形式
在这里插入图片描述

图源:中国大学慕课网-华侨大学运筹学

把每一列Xij看作一个对应于变量Xij的系数向量Pij,其分量中除了第i个和第m+j个为1以外,其余都为0。即
Pij=(0…1…0…1…0)T=eie_i+em+je_m+j(e表示单位向量)

我们前面也提到,这是产销平衡下的运输问题模型,所以产量之和也等于销量之和
在这里插入图片描述
也就是说,可以做到有两行完全一样,比如让前面的m行加到其中一行,后面的n行加到其中一行,就会得到两个相同的约束条件,一行减去另一行得到一行全为0的向量。
结合矩阵秩的求法,最小非零行数为矩阵秩的值;所以模型最多只有m+n-1个独立约束方程,即系数矩阵的秩r<=m+n-1.
我们可以得到结论,(在不含闭回路的情况下,)运输问题任何一组基都由m+n-1个变量构成
关于什么是闭回路,将在下文进行讲解。

二、表上作业法

要解前面的运输问题模型,用学过的单纯形表法求解不是不行,但是计算量很大,所以运输问题模型一般采用表上作业法求解。
不过表上作业法的实质也是单纯形表法的迭代,所以求解过程类似。首先需要画出单位运价表和产销平衡表,这里以清华大学出版社的《运筹学(第四版)》P94例1为例。
在这里插入图片描述

1.确定初始可行解

有两种确定方法。

(1)最小元素法

最小元素法顾明思意,就是从运价最小的产销地开始外销。同样以清华大学出版社的《运筹学(第四版)》P94例1为例,根据上表,运价最便宜的是从A2运往B1的价格(为1)
在这里插入图片描述
所以先尝试B1所需要的物资全部由A2供给,在表格中填入如图
在这里插入图片描述
因为第1列饱和了,所以舍弃第1列,在剩余列中继续寻找运价最小的地方
在这里插入图片描述
因为第二行到4就饱和了,所以A2-B3只能填入1,填入后第二行饱和。
接下来重复上述步骤
在这里插入图片描述
直到所有行列饱和。最终得到最初的6个基变量(恰好是m+n-1=3+4-1=6个)。

但是,需要注意的是,最小元素法可能出现退化现象。以下题为例:
在这里插入图片描述
在填入第二个数:A3-B2的6后,第三行,第二列同时饱和,最终只会得到5个基变量,这时候需要在同时被划去的行或列中任选一个空格填入0作为基变量。补充的0有两个补充原则
1.尽量先选运费小的实变量
2.补充后不能有某个基变量独占一行一列

并且,最小二乘法还有一个缺点,其算法必定导致为了一处费用的节省而可能导致的在其他处的运费多花,所以又出现了伏格尔法

(2)伏格尔法

伏格尔法考虑的是运费的差额。差额太大了,就会出现我不使用最便宜的运输方法,就要花多上许多的钱执行昂贵的次优运输方案。
继续以清华大学出版社的《运筹学(第四版)》P94例1为例。
在这里插入图片描述
首先计算其行差额与列差额:
在这里插入图片描述
列差额最大的是第2列,如果不执行A3-B2的话,就要多花5个单位的钱去补给B2,很亏,所以优先通过A3补给B2,得到下表结果
在这里插入图片描述
此时第3行差额发生了变化,最小变为5,次小变为7,行差额变为2.
不过接下来差额最大的还是第4列,所以选择A3-B4,填入3.(9-6=3)
类似最小元素法推导,最终得到如图结果。
在这里插入图片描述

2.判别最优解

最优解的判别方法基于一个公式
在这里插入图片描述
在这里插入图片描述
基于这一公式,我们常用两种方式判别。

(1)闭回路法

这一方法用于求检验数。
怎么求呢?很好理解,其实就是从空白格出发,遇到(合适的)数字就转90度弯,最终会转回来形成闭回路,就像下图这样。
在这里插入图片描述
从A1-B1格子出发,遇到A1-B3有数字4,转弯;遇到A2-B3有数字,转弯;遇到A2-B1转弯;回到A1-B1。闭回路结束。(已经有的数字是运量,填入的是检验数)
那怎么算A1-B1的检验数呢,很简单,先假设A1-B1多进了一单位物资,那A1-B3和A2-B1就要少进一单位物资,A2-B2就要多进一单位物资。
结合运价表,这时候的调整带来的运费变化是
在这里插入图片描述
这段检验数计算的意义是,从A1运往B1的资源增加1单位,带来运费增加量也是1单位,这1单位增加量即为该空格处的检验数,检验数大于0,说明该空格符合最优解判别。
同理继续求其他格子,遇到(合适的)数字就转弯。那什么时候是不合适的数字呢?以求A1-B2检验数为例
在这里插入图片描述
遇到B3格子上的4不能转弯,因为在4转弯的话,下一个转弯点是1,再下一个转弯点是A2-B1的3,没办法回到A1-B2,所以要在A1-B4转弯,以此类推求出每个格子的检验数
在这里插入图片描述
我们发现A2-B4检验数小于0,说明现在的方案不是最优解。

(2)位势法

位势法是一个计算的方法。
根据原解,分别设产量对偶变量为u1,u2…ui;销量对偶变量v1,v2…vj
通过初始解的表格
在这里插入图片描述
得到方程组
在这里插入图片描述
如果令u1=0,解方程组得
在这里插入图片描述
根据得到的数字,重新填入表格(玩数学填格子,要求Ui+Vj是格子里的数字)
在这里插入图片描述
最后根据检验数公式在这里插入图片描述求得
在这里插入图片描述
表中仍有负数,说明现在的方案不是最优解。
上述过程可以在一张表中完成↓
在这里插入图片描述
右上角是单价,格子正中间是检验数。

3.迭代求最优解

改进的方法又称为闭回路调整法
继续以上图为例,找到负数值最小的检验数,出发进行闭回路检验
在这里插入图片描述
四个格子中,最小的基变量是1,把1换出,换给A2-B4;得到新的基变量表。
在这里插入图片描述
再进行检验
在这里插入图片描述
此时所有检验数均>=0,所以上表基变量已经是最优解了。
另外,上表结果出现了很多检验数=0,这是一个个例,表示无穷多最优解,换成下图解其实也是最优解。
在这里插入图片描述
需要注意的是,除了可能出现无穷多解的问题外,闭回路调整过程中也可能出现(和1.最小元素法 中出现一样的)退化现象

其情况如下
在这里插入图片描述

图源:中国大学慕课网-华侨大学运筹学

同样,此时仍然是尽量选取运费最大的作为出基变量。

以上内容为本人对于产销平衡下运输问题的概念理解,如果有误,欢迎批评指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章