【运筹学】表上作业法 ( 最小元素法分析 | Vogel 方法 )
文章目录
- 一、" 最小元素法 " 分析
- 二、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 1111 | 333 | 101010 | 777 | 000 |
A2\rm A_2A2 | 111 | 9̸\not 99 | 222 | 888 | 444 | 111 |
A3\rm A_3A3 | 777 | 4̸\not 44 , 666 | 101010 | 555 | 999 | 111 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 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 1111 | 333 | 101010 | 777 | 000 |
A2\rm A_2A2 | 111 | 9̸\not 99 | 222 | 888 | 444 | 111 |
A3\rm A_3A3 | 777 | 4̸\not 44 , 666 | 101010 | 555 | 999 | 222 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 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 1111 | 333 | 101010 | 777 | 000 |
A2\rm A_2A2 | 111 | 9̸\not 99 | 222 | 888 | 444 | 111 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 222 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 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 1111 | 333 | 101010 | 777 | 000 |
A2\rm A_2A2 | 111 | 9̸\not 99 | 222 | 888 | 444 | 111 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 2̸\not 22 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 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 1111 | 333 | 1̸0\not 1010 | 777 | 000 |
A2\rm A_2A2 | 111 | 9̸\not 99 | 222 | 8̸\not 88 , 333 | 444 | 111 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 2̸\not 22 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 111 | 2̸\not 22 |
此时 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 1111 | 333 | 1̸0\not 1010 | 777 | 000 |
A2\rm A_2A2 | 111 | 9̸\not 99 | 222 | 8̸\not 88 , 333 | 444 | 111 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 2̸\not 22 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 111 | 2̸\not 22 |
从所有 没有被划掉 的并且 没有被安排 的的运费中找到差额最大的 , 是 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 1111 | 333 | 1̸0\not 1010 | 777 | 000 |
A2\rm A_2A2 | 1̸\not 11 , 111 | 9̸\not 99 | 2̸\not 22 | 8̸\not 88 , 333 | 444 | 1̸\not 11 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 2̸\not 22 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 111 | 2̸\not 22 |
此时 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 1111 | 333 | 1̸0\not 1010 | 777 | 000 |
A2\rm A_2A2 | 1̸\not 11 , 111 | 9̸\not 99 | 2̸\not 22 | 8̸\not 88 , 333 | 444 | 1̸\not 11 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 2̸\not 22 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 111 | 2̸\not 22 |
从所有 没有被划掉 的并且 没有被安排 的的运费中找到差额最大的 , 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 33 , 222 | 1̸1\not 1111 | 333 | 1̸0\not 1010 | 777 | 000 |
A2\rm A_2A2 | 1̸\not 11 , 111 | 9̸\not 99 | 2̸\not 22 | 8̸\not 88 , 333 | 444 | 1̸\not 11 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 2̸\not 22 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 111 | 2̸\not 22 |
此时 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 1111 | 333 , 555 | 1̸0\not 1010 | 777 | 000 |
A2\rm A_2A2 | 1̸\not 11 , 111 | 9̸\not 99 | 2̸\not 22 | 8̸\not 88 , 333 | 444 | 1̸\not 11 |
A3\rm A_3A3 | 7̸\not 77 | 4̸\not 44 , 666 | 1̸0\not 1010 | 5̸\not 55 , 333 | 999 | 2̸\not 22 |
销量 | 333 | 666 | 555 | 666 | ||
列差额 | 222 | 5̸\not 55 | 111 | 2̸\not 22 |
此时 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 方法 )相关推荐
- 【运筹学】运输规划、表上作业法总结 ( 运输规划模型 | 运输规划变量个数 | 表上作业法 | 最小元素法 | 差额 Vogel 法 ★ | 闭回路法 ) ★★★
文章目录 一.运输规划模型 1.产销平衡模型 2.产销不平衡模型 二.运输规划数学模型变量个数 三.表上作业法 四.表上作业法 : 求初始基可行解 1.最小元素法 2.差额法 ( Vogel ) 推荐 ...
- 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 )
文章目录 一.表上作业法 第一步 : 确定初始基可行解 二.最小元素法 一.表上作业法 第一步 : 确定初始基可行解 运输问题如下 : 下面的表格代表 333 个产地 , 444 个销地 的运输规划问 ...
- 【运筹学】表上作业法 ( 最优解判别 | 初始基可行解 | 运费修改可行性方案 | 闭回路法 )
文章目录 一.最优解判别 二.初始基可行解 三.运费修改可行性方案 四.闭回路法 一.最优解判别 在上两篇博客 [运筹学]表上作业法 ( 求初始基可行解 | 最小元素法 ) , [运筹学]表上作业法 ...
- 【运筹学】表上作业法 ( 示例 | 使用 “ 最小元素法 “ 找初始基可行解 )
文章目录 一.运输规划问题 二.找初始基可行解 一.运输规划问题 运输规划问题 : B1\rm B_1B1 B1\rm B_1B1 B1\rm B_1B1 B1\rm B_1B1 产量 A1\ ...
- 【运筹学】运输规划 ( 运输规划问题模型及变化 | 表上作业法引入 )
文章目录 一.运输规划问题模型及变化 二.运输规划问题求解 ( 表上作业法 ) 一.运输规划问题模型及变化 运输规划问题一般形式 ( 产销平衡 ) : m\rm mm 个产地 : A1,A2,A3,⋯ ...
- 运筹学—运输问题与表上作业法
西北角法 不考虑运价,从西北角的格子开始分配运量,按尽可能满足一方取小的原则,第一行和第一列的格子分配完后,依次向东南角方向的格子进行运量分配. 例如: 第一步:列出产售平衡表 第二步:利用西北角法进 ...
- 【运筹学】表上作业法 ( 示例 | 使用 “ 闭回路法 “ 计算检验数判定最优解 )
文章目录 一.运输规划问题 二.使用 " 闭回路法 " 计算检验数判定最优解 一.运输规划问题 运输规划问题 : B1\rm B_1B1 B1\rm B_1B1 B1\rm B ...
- 【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )
文章目录 一.运输规划问题 二.找初始基可行解 三.计算检验数 四.调整运量 ( 换基 ) 一.运输规划问题 运输规划问题 : 二.找初始基可行解 使用最小元素法求得的初始基可行解 : B1\rm B ...
- 平衡运输问题及其表上作业法---指派问题及其匈牙利解法
一.平衡运输问题及其表上作业法 平衡问题及数学建模 平衡运输问题: 就是生产数量与销售数量相等的运输问题.对总产量等于总需求量的运输问题,可直接采用表上作业法求最优运输方案 数学模型: 2.表上 ...
最新文章
- python3 字典 dict 常见用法总结(判断key是否存在)
- Python cv2 摄像头
- Java开发:什么是序列化?
- 苹果电脑怎么设置佳博标签打印机_热销斑马标签打印机恢复出厂设置的方法
- 解决idea 控制台中文乱码
- php 复制文件夹并压缩到最小_PHP压缩文件夹的方法
- leetcode 167 Two Sum II - Input array is sorted
- kubernetes学习笔记之七:Ingress-nginx部署使用
- 在Windows上构建OpenJDK
- New StoryBoard in iOS9
- 程序员到架构师,其实没那么难!
- ubuntu18.04安装qt5.9.0,图文详解
- Linux基础实操二
- PS_02_大师之路
- CNKI知网论文下载工具
- SQLMAP使用教程(一)
- sublime改成中文简体及菜单变成中文
- PHP防范XSS攻击
- opencv应用实例-金圣韬-专题视频课程
- nginx 配置后缀