文章目录

  • 一、" 最小元素法 " 分析
  • 二、Vogel 方法 ( 差额法 )

一、" 最小元素法 " 分析


在上一篇博客 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 ) 中 , 按照 " 最小元素法 " 找到了初始基可行解 ,

使用 " 最小元素法 " , 属于贪婪算法 , 每次都找运费最小的优先供应 , 每个步骤的方案都是最优 , 局部最优 ,

每步最优不一定能使得全局最优 ;

二、Vogel 方法 ( 差额法 )


" Vogel 方法 " 的核心思想就是从运价表中 , 分别计算 各行 , 各列 的 最小运费 和 次最小运费 差额 , 填写到表的 最右列 和 最下行 ;

基于如下运输问题进行分析 : 下面的表格代表 333 个产地 , 444 个销地 的运输规划问题 , 表格中的内容是 某产地运往某销地的运费 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 111111 333 101010 777 000
A2\rm A_2A2​ 111 999 222 888 444 111
A3\rm A_3A3​ 777 444 101010 555 999 111
销量 333 666 555 666
列差额 222 555 111 333

列差额 :

第 111 列 列差额 : 最小运费 111 , 次最小运费 333 , 差额是 222 ;

第 222 列 列差额 : 最小运费 444 , 次最小运费 999 , 差额是 555 ;

第 333 列 列差额 : 最小运费 222 , 次最小运费 333 , 差额是 111 ;

第 444 列 列差额 : 最小运费 555 , 次最小运费 888 , 差额是 333 ;

行差额 :

第 111 行 行差额 : 最小运费 333 , 次最小运费 333 , 差额是 000 ;

第 222 行 行差额 : 最小运费 111 , 次最小运费 222 , 差额是 111 ;

第 333 行 行差额 : 最小运费 444 , 次最小运费 555 , 差额是 111 ;

第 111 列 列差额 为例进行分析 , 最小运费 111 , 次最小运费 333 , 差额是 222 ; 如果不能使用最小运费 111 , 那么退而求其次 , 使用次最小运费 333 ; 最优方案无法使用 , 考虑次优方案 , 这两个方案的差距就是 列差额 222 , 次优方案比最优方案运费高 , 高 222 ;

第二列的列差额是 555 , 如果不能使用最优方案 , 使用次优方案 , 每个都要增加运费 555 , 这个增加的就太多了 , 应该 优先满足差额较高的行列 优先安排运输 ;

" Vogel 方法 " 将全局的最优考虑了进去 , 不再追求局部最优 , 使用该方法得出的初始基可行解 , 距离最优解更近 , 可以迭代更少次数 ;

第 111 个基变量 :

从所有 没有被划掉 的并且 没有被安排 的的运费中找到差额最大的 , 是 B2\rm B_2B2​ 的列差额 555 ;

B2\rm B_2B2​ 列最小运费 : 这里优先给 B2\rm B_2B2​ 销地的最小运费 444 安排运输 , 避免为其安排次小运费 , 对应表格第 333 行第 222 列 , A3\rm A_3A3​ 产地运往 B2\rm B_2B2​ 销地的运费 ;

产地分析 : 对于产地 A3\rm A_3A3​ 来说 , 其生产 999 个 , 已经安排了 000 个 , 还可以再安排 999 个 ;

销地分析 : 对于销地 B2\rm B_2B2​ 来说需求 666 个 , 已经安排了 000 个 , 还可以再安排 666 个 ;

最大安排最小运费运输 , 从 A3\rm A_3A3​ 向 B2\rm B_2B2​ 运输 666 个产品 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 101010 777 000
A2\rm A_2A2​ 111 9̸\not 9​9 222 888 444 111
A3\rm A_3A3​ 777 4̸\not 4​4 , 666 101010 555 999 111
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 333

此时 B2\rm B_2B2​ 的销量已经全部消耗完毕 , 该列就不需要安排其它产地向 B2\rm B_2B2​ 销地运输了 , 可以划掉这一列 , 讨论其它列的运输问题 ;

第 222 个基变量 :

划掉了 B2\rm B_2B2​ 行 , 这里重新计算行差与列差 ,

B1\rm B_1B1​ , B3\rm B_3B3​ 列最小运费 与 次小运费 没有变化 , 行差额不变 ;

A1\rm A_1A1​ , A2\rm A_2A2​ 行最小运费 与 次小运费 没有变化 , 行差额不变 ;

A3\rm A_3A3​ 行差额需要重新计算 , 最小运费被划掉了 , 此时最小运费是 555 , 次小运费是 777 , 行差额变为 222 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 101010 777 000
A2\rm A_2A2​ 111 9̸\not 9​9 222 888 444 111
A3\rm A_3A3​ 777 4̸\not 4​4 , 666 101010 555 999 222
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 333

从所有 没有被划掉 的并且 没有被安排 的的运费中找到差额最大的 , 是 B4\rm B_4B4​ 的列差额 333 ;

B4\rm B_4B4​ 列最小运费 : 这里优先给 B4\rm B_4B4​ 销地的最小运费 555 安排运输 , 避免为其安排次小运费 , 对应表格第 333 行第 444 列 , A3\rm A_3A3​ 产地运往 B4\rm B_4B4​ 销地的运费 ;

产地分析 : 对于产地 A3\rm A_3A3​ 来说 , 其生产 999 个 , 已经安排了 666 个 , 还可以再安排 333 个 ;

销地分析 : 对于销地 B4\rm B_4B4​ 来说需求 666 个 , 已经安排了 000 个 , 还可以再安排 666 个 ;

最大安排最小运费运输 , 从 A3\rm A_3A3​ 向 B4\rm B_4B4​ 运输 333 个产品 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 101010 777 000
A2\rm A_2A2​ 111 9̸\not 9​9 222 888 444 111
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 222
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 333

此时 A3\rm A_3A3​ 的产量已经全部消耗完毕 , 该行就不需要安排其它销地运输了 , 可以划掉这一行 , 讨论其它列的运输问题 ;

第 333 个基变量 :

划掉了 B2\rm B_2B2​ 行 , 这里重新计算行差与列差 ,

A1\rm A_1A1​ , A2\rm A_2A2​ 行最小运费 与 次小运费 没有变化 , 行差额不变 ;

B1\rm B_1B1​ , B3\rm B_3B3​ 列最小运费 与 次小运费 没有变化 , 列差额不变 ;

B4\rm B_4B4​ 列差额需要重新计算 , 最小运费被划掉了 , 此时最小运费是 888 , 次小运费是 101010 , 行差额变为 222 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 101010 777 000
A2\rm A_2A2​ 111 9̸\not 9​9 222 888 444 111
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 2̸\not 2​2
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 222

从所有 没有被划掉 的并且 没有被安排 的的运费中找到差额最大的 , 是 B1\rm B_1B1​ 和 B4\rm B_4B4​ 的列差额 222 ; 这两个任选一个都可以 ;

B4\rm B_4B4​ 列最小运费 : 这里优先给 B4\rm B_4B4​ 销地的最小运费 888 安排运输 , 避免为其安排次小运费 , 对应表格第 222 行第 444 列 , A2\rm A_2A2​ 产地运往 B4\rm B_4B4​ 销地的运费 ;

产地分析 : 对于产地 A2\rm A_2A2​ 来说 , 其生产 444 个 , 已经安排了 666 个 , 还可以再安排 444 个 ;

销地分析 : 对于销地 B4\rm B_4B4​ 来说需求 666 个 , 已经安排了 333 个 , 还可以再安排 333 个 ;

最大安排最小运费运输 , 从 A2\rm A_2A2​ 向 B4\rm B_4B4​ 运输 333 个产品 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 1̸0\not 10​10 777 000
A2\rm A_2A2​ 111 9̸\not 9​9 222 8̸\not 8​8 , 333 444 111
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 2̸\not 2​2
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 2̸\not 2​2

此时 B4\rm B_4B4​ 的销量已经全部消耗完毕 , 该列就不需要安排其它产地向 B4\rm B_4B4​ 销地运输了 , 可以划掉这一列 , 讨论其它列的运输问题 ;

第 444 个基变量 :

划掉了 B4\rm B_4B4​ 行列 , 这里重新计算行差与列差 ,

A1\rm A_1A1​ , A2\rm A_2A2​ 行最小运费 与 次小运费 没有变化 , 行差额不变 ;

B1\rm B_1B1​ , B3\rm B_3B3​ 列最小运费 与 次小运费 没有变化 , 列差额不变 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 1̸0\not 10​10 777 000
A2\rm A_2A2​ 111 9̸\not 9​9 222 8̸\not 8​8 , 333 444 111
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 2̸\not 2​2
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 2̸\not 2​2

从所有 没有被划掉 的并且 没有被安排 的的运费中找到差额最大的 , 是 B1\rm B_1B1​ 的列差额 222 ;

B1\rm B_1B1​ 列最小运费 : 这里优先给 B1\rm B_1B1​ 销地的最小运费 111 安排运输 , 避免为其安排次小运费 , 对应表格第 222 行第 111 列 , A2\rm A_2A2​ 产地运往 B1\rm B_1B1​ 销地的运费 ;

产地分析 : 对于产地 A2\rm A_2A2​ 来说 , 其生产 444 个 , 已经安排了 333 个 , 还可以再安排 111 个 ;

销地分析 : 对于销地 B1\rm B_1B1​ 来说需求 333 个 , 已经安排了 000 个 , 还可以再安排 333 个 ;

最大安排最小运费运输 , 从 A2\rm A_2A2​ 向 B1\rm B_1B1​ 运输 111 个产品 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 1̸0\not 10​10 777 000
A2\rm A_2A2​ 1̸\not 1​1 , 111 9̸\not 9​9 2̸\not 2​2 8̸\not 8​8 , 333 444 1̸\not 1​1
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 2̸\not 2​2
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 2̸\not 2​2

此时 A2\rm A_2A2​ 的产量已经全部消耗完毕 , 该行就不需要安排其它销地运输了 , 可以划掉这一行 , 讨论其它列的运输问题 ;

第 555 个基变量 :

划掉了 A2\rm A_2A2​ 行 , 这里重新计算行差与列差 ,

A1\rm A_1A1​ , A2\rm A_2A2​ 行最小运费 与 次小运费 没有变化 , 行差额不变 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 1̸1\not 11​11 333 1̸0\not 10​10 777 000
A2\rm A_2A2​ 1̸\not 1​1 , 111 9̸\not 9​9 2̸\not 2​2 8̸\not 8​8 , 333 444 1̸\not 1​1
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 2̸\not 2​2
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 2̸\not 2​2

从所有 没有被划掉 的并且 没有被安排 的的运费中找到差额最大的 , A1\rm A_1A1​ 的行差额 000 ;

A1\rm A_1A1​ 列最小运费 : 这里优先给 A1\rm A_1A1​ 销地的最小运费 333 安排运输 , 避免为其安排次小运费 , 对应表格第 111 行第 111 列 , A1\rm A_1A1​ 产地运往 B1\rm B_1B1​ 销地的运费 ; ( 次小运费 = 最小运费 , 任选一个即可 )

产地分析 : 对于产地 A1\rm A_1A1​ 来说 , 其生产 777 个 , 已经安排了 000 个 , 还可以再安排 777 个 ;

销地分析 : 对于销地 B1\rm B_1B1​ 来说需求 333 个 , 已经安排了 111 个 , 还可以再安排 222 个 ;

最大安排最小运费运输 , 从 A1\rm A_1A1​ 向 B1\rm B_1B1​ 运输 222 个产品 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 3̸\not 3​3 , 222 1̸1\not 11​11 333 1̸0\not 10​10 777 000
A2\rm A_2A2​ 1̸\not 1​1 , 111 9̸\not 9​9 2̸\not 2​2 8̸\not 8​8 , 333 444 1̸\not 1​1
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 2̸\not 2​2
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 2̸\not 2​2

此时 B1\rm B_1B1​ 的销量已经全部消耗完毕 , 该列就不需要安排其它产地向 B1\rm B_1B1​ 销地运输了 , 可以划掉这一列 , 讨论其它列的运输问题 ;

第 666 个基变量 :

此时只剩下最后一个运费没有被安排 , A1\rm A_1A1​ 产地运往 B3\rm B_3B3​ 销地的运费 ;

产地分析 : 对于产地 A1\rm A_1A1​ 来说 , 其生产 777 个 , 已经安排了 222 个 , 还可以再安排 555 个 ;

销地分析 : 对于销地 B3\rm B_3B3​ 来说需求 555 个 , 已经安排了 000 个 , 还可以再安排 555 个 ;

最大安排最小运费运输 , 从 A1\rm A_1A1​ 向 B3\rm B_3B3​ 运输 555 个产品 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量 行差额
A1\rm A_1A1​ 333 , 222 1̸1\not 11​11 333 , 555 1̸0\not 10​10 777 000
A2\rm A_2A2​ 1̸\not 1​1 , 111 9̸\not 9​9 2̸\not 2​2 8̸\not 8​8 , 333 444 1̸\not 1​1
A3\rm A_3A3​ 7̸\not 7​7 4̸\not 4​4 , 666 1̸0\not 10​10 5̸\not 5​5 , 333 999 2̸\not 2​2
销量 333 666 555 666
列差额 222 5̸\not 5​5 111 2̸\not 2​2

此时 B3\rm B_3B3​ 的销量已经全部消耗完毕 , 该列就不需要安排其它产地向 B3\rm B_3B3​ 销地运输了 , 可以划掉这一列 , 讨论其它列的运输问题 ;

至此 , 所有的产量与销量分配完毕 ;

上述初始基可行解方案总运费 :

(2×3)+(3×5)+(1×1)+(3×8)+(4×6)+(3×5)=85\rm ( 2 \times 3 ) + ( 3 \times 5 ) + ( 1 \times 1 ) + ( 3 \times 8 ) + ( 4 \times 6 ) + ( 3 \times 5 ) = 85(2×3)+(3×5)+(1×1)+(3×8)+(4×6)+(3×5)=85

最小元素法求出来的初始基可行解的 总运费是 868686 , " Vogel 方法 " 比 " 最小元素法 " 能找出更近的初始基可行解 ;

【运筹学】表上作业法 ( 最小元素法分析 | Vogel 方法 )相关推荐

  1. 【运筹学】运输规划、表上作业法总结 ( 运输规划模型 | 运输规划变量个数 | 表上作业法 | 最小元素法 | 差额 Vogel 法 ★ | 闭回路法 ) ★★★

    文章目录 一.运输规划模型 1.产销平衡模型 2.产销不平衡模型 二.运输规划数学模型变量个数 三.表上作业法 四.表上作业法 : 求初始基可行解 1.最小元素法 2.差额法 ( Vogel ) 推荐 ...

  2. 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 )

    文章目录 一.表上作业法 第一步 : 确定初始基可行解 二.最小元素法 一.表上作业法 第一步 : 确定初始基可行解 运输问题如下 : 下面的表格代表 333 个产地 , 444 个销地 的运输规划问 ...

  3. 【运筹学】表上作业法 ( 最优解判别 | 初始基可行解 | 运费修改可行性方案 | 闭回路法 )

    文章目录 一.最优解判别 二.初始基可行解 三.运费修改可行性方案 四.闭回路法 一.最优解判别 在上两篇博客 [运筹学]表上作业法 ( 求初始基可行解 | 最小元素法 ) , [运筹学]表上作业法 ...

  4. 【运筹学】表上作业法 ( 示例 | 使用 “ 最小元素法 “ 找初始基可行解 )

    文章目录 一.运输规划问题 二.找初始基可行解 一.运输规划问题 运输规划问题 : B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ 产量 A1\ ...

  5. 【运筹学】运输规划 ( 运输规划问题模型及变化 | 表上作业法引入 )

    文章目录 一.运输规划问题模型及变化 二.运输规划问题求解 ( 表上作业法 ) 一.运输规划问题模型及变化 运输规划问题一般形式 ( 产销平衡 ) : m\rm mm 个产地 : A1,A2,A3,⋯ ...

  6. 运筹学—运输问题与表上作业法

    西北角法 不考虑运价,从西北角的格子开始分配运量,按尽可能满足一方取小的原则,第一行和第一列的格子分配完后,依次向东南角方向的格子进行运量分配. 例如: 第一步:列出产售平衡表 第二步:利用西北角法进 ...

  7. 【运筹学】表上作业法 ( 示例 | 使用 “ 闭回路法 “ 计算检验数判定最优解 )

    文章目录 一.运输规划问题 二.使用 " 闭回路法 " 计算检验数判定最优解 一.运输规划问题 运输规划问题 : B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B ...

  8. 【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )

    文章目录 一.运输规划问题 二.找初始基可行解 三.计算检验数 四.调整运量 ( 换基 ) 一.运输规划问题 运输规划问题 : 二.找初始基可行解 使用最小元素法求得的初始基可行解 : B1\rm B ...

  9. 平衡运输问题及其表上作业法---指派问题及其匈牙利解法

    一.平衡运输问题及其表上作业法 平衡问题及数学建模  平衡运输问题: 就是生产数量与销售数量相等的运输问题.对总产量等于总需求量的运输问题,可直接采用表上作业法求最优运输方案  数学模型:  2.表上 ...

最新文章

  1. python3 字典 dict 常见用法总结(判断key是否存在)
  2. Python cv2 摄像头
  3. Java开发:什么是序列化?
  4. 苹果电脑怎么设置佳博标签打印机_热销斑马标签打印机恢复出厂设置的方法
  5. 解决idea 控制台中文乱码
  6. php 复制文件夹并压缩到最小_PHP压缩文件夹的方法
  7. leetcode 167 Two Sum II - Input array is sorted
  8. kubernetes学习笔记之七:Ingress-nginx部署使用
  9. 在Windows上构建OpenJDK
  10. New StoryBoard in iOS9
  11. 程序员到架构师,其实没那么难!
  12. ubuntu18.04安装qt5.9.0,图文详解
  13. Linux基础实操二
  14. PS_02_大师之路
  15. CNKI知网论文下载工具
  16. SQLMAP使用教程(一)
  17. sublime改成中文简体及菜单变成中文
  18. PHP防范XSS攻击
  19. opencv应用实例-金圣韬-专题视频课程
  20. nginx 配置后缀

热门文章

  1. 离散数学及其应用第6版中文版勘误
  2. ubuntu安装Java开发环境
  3. 判断一个python字符串中是否包含中文字符
  4. .NET面试题(三)
  5. Weblogic部署项目过程中的一些问题
  6. CSS background属性
  7. 使用VS2012进行性能测试和负载测试
  8. editplus替换空白行的正则表达式
  9. [导入]创建笔 (Visual C#)
  10. springmvc静态资源;mvc:default-servlet-handler后Controller失效