文章目录

  • 一、运输规划模型
    • 1、产销平衡模型
    • 2、产销不平衡模型
  • 二、运输规划数学模型变量个数
  • 三、表上作业法
  • 四、表上作业法 : 求初始基可行解
    • 1、最小元素法
    • 2、差额法 ( Vogel ) 推荐方法 ★★
  • 五、表上作业法 : 最优解判别
    • 1、闭回路法
    • 2、闭回路法示例 1
    • 3、初始基可行解
    • 4、计算检验数
    • 5、调整运量 ( 换基 )
    • 6、闭回路法示例 2

一、运输规划模型


参考博客 :

  • 【运筹学】运输规划 ( 运输规划问题的数学模型 | 运输问题引入 )
  • 【运筹学】运输规划 ( 运输规划基变量个数分析 )
  • 【运筹学】运输规划 ( 运输规划基变量个数 | 运输问题一般形式 | 产销平衡 | 产销不平衡 )
  • 【运筹学】运输规划 ( 运输规划问题模型及变化 | 表上作业法引入 )

1、产销平衡模型

将 两个产地 A1\rm A_1A1​ , A2\rm A_2A2​ 的物品运往 三个销售地 B1\rm B_1B1​ , B2\rm B_2B2​ , B3\rm B_3B3​ ,

各地的 产量 , 销量 ,

各个产地 运往 各个销售地 的每件物品的运费如下图所示 :

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ 产量
A1\rm A_1A1​ 666 444 666 200200200
A2\rm A_2A2​ 666 555 555 300300300
销量 150150150 150150150 200200200

A1,A2\rm A_1 , A_2A1​,A2​ 的产量之和是 500500500 ,

B1,B2,B3\rm B_1 , B_2 , B_3B1​,B2​,B3​ 的总的销量之和是 500500500 ,

上述产量之和等于销量之和 , 是产销平衡的 ;

不同的产地运往不同的销地 , 运费不同 , 如何合理安排运输 , 能使总运费最少 ;

这里存在一个产销平衡问题 : 总产量 = 总销量 = 500500500 ;

假设变量 :

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ 产量
A1\rm A_1A1​ x1\rm x_1x1​ x2\rm x_2x2​ x3\rm x_3x3​ 200200200
A2\rm A_2A2​ x4\rm x_4x4​ x5\rm x_5x5​ x6\rm x_6x6​ 300300300
销量 150150150 150150150 200200200

A1\rm A_1A1​ 产地运往 B1\rm B_1B1​ 产地的产品数量是 x1\rm x_1x1​ ,

A1\rm A_1A1​ 产地运往 B2\rm B_2B2​ 产地的产品数量是 x2\rm x_2x2​ ,

A1\rm A_1A1​ 产地运往 B3\rm B_3B3​ 产地的产品数量是 x3\rm x_3x3​ ,

A2\rm A_2A2​ 产地运往 B1\rm B_1B1​ 产地的产品数量是 x4\rm x_4x4​ ,

A2\rm A_2A2​ 产地运往 B2\rm B_2B2​ 产地的产品数量是 x5\rm x_5x5​ ,

A2\rm A_2A2​ 产地运往 B3\rm B_3B3​ 产地的产品数量是 x6\rm x_6x6​ ;

存在以下等式约束 :

A1\rm A_1A1​ 的产量 x1+x2+x3=200\rm x_1 + x_2 + x_3 = 200x1​+x2​+x3​=200 ;

A2\rm A_2A2​ 的产量 x4+x5+x6=300\rm x_4 + x_5 + x_6 = 300x4​+x5​+x6​=300 ;

B1\rm B_1B1​ 的销量 x1+x4=150\rm x_1 + x_4 = 150x1​+x4​=150 ;

B2\rm B_2B2​ 的销量 x2+x5=150\rm x_2 + x_5= 150x2​+x5​=150 ;

B3\rm B_3B3​ 的销量 x3+x6=200\rm x_3 + x_6= 200x3​+x6​=200 ;

变量约束 : 每个变量肯定大于等于 0 ;

x1,x2,x3,x4,x5,x6≥0\rm x_1, x_2, x_3 , x_4 , x_5 , x_6 \geq 0x1​,x2​,x3​,x4​,x5​,x6​≥0

目标函数 : 目的是为了使运费最小 ;

minW=6x1+4x2+6x3+6x4+5x5+5x6\rm minW = 6x_1 + 4x_2 + 6x_3 + 6x_4 + 5x_5 + 5x_6minW=6x1​+4x2​+6x3​+6x4​+5x5​+5x6​

上述的目标函数与约束方程都是线性的 , 因此该规划是线性规划 ;

最终的线性规划如下 :

minW=6x1+4x2+6x3+6x4+5x5+5x6s.t{x1+x2+x3=200x4+x5+x6=300x1+x4=150x2+x5=150x3+x6=200x1,x2,x3,x4,x5,x6≥0\begin{array}{lcl} \rm minW = 6x_1 + 4x_2 + 6x_3 + 6x_4 + 5x_5 + 5x_6 \\\\ \rm s.t\begin{cases} \rm x_1 + x_2 + x_3 = 200 \\\\ \rm x_4 + x_5 + x_6 = 300 \\\\ \rm x_1 + x_4 = 150 \\\\ \rm x_2 + x_5= 150 \\\\ \rm x_3 + x_6= 200 \\\\ \rm x_1, x_2, x_3 , x_4 , x_5 , x_6 \geq 0 \end{cases}\end{array}minW=6x1​+4x2​+6x3​+6x4​+5x5​+5x6​s.t⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​x1​+x2​+x3​=200x4​+x5​+x6​=300x1​+x4​=150x2​+x5​=150x3​+x6​=200x1​,x2​,x3​,x4​,x5​,x6​≥0​​

使用单纯形法对上述规划求解即可得到最优解 ;

单纯形法解线性规划最优解过程 :

① 基可行解 : 先找到一个 初始基可行解 ;

② 检验数 : 计算检验数 , 判定当前基可行解是否是 最优解 ;

③ 迭代 : 根据检验数确定 入基变量 , 根据入基变量系数计算 出基变量 , 然后进行 同解变换 , 生成新的单纯形表 , 继续计算检验数 ;

首先确定基是多少 , 将上述线性规划 , 转为标准形 , 约束方程的系数矩阵 Am×n\rm A_{m \times n}Am×n​ 是 m×n\rm m \times nm×n 矩阵 , n≥m\rm n \geq mn≥m , n\rm nn 是变量个数 , m\rm mm 是约束方程个数 ,

假设 Am×n\rm A_{m \times n}Am×n​ 矩阵是行满秩的 , 即秩为 m\rm mm , 约束方程个数为 m\rm mm , 上述运输问题的约束方程个数是 555 个 ;

上述运输问题的系数矩阵为 : 555 个约束方程对应的是 5×6\rm 5 \times 65×6 矩阵 ;

(111000000111100100010010001001)\begin{pmatrix} \quad 1 \quad 1 \quad 1 \quad 0 \quad 0 \quad 0 \quad \\\\ \quad 0 \quad 0 \quad 0 \quad 1 \quad 1 \quad 1 \quad \\\\ \quad 1 \quad 0 \quad 0 \quad 1 \quad 0 \quad 0 \quad \\\\ \quad 0 \quad 1 \quad 0 \quad 0 \quad 1 \quad 0 \quad \\\\ \quad 0 \quad 0 \quad 1 \quad 0 \quad 0 \quad 1 \quad \end{pmatrix}⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛​111000000111100100010010001001​⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞​

运输问题约束方程的 系数矩阵都是由 000 或 111 组成 的 , 这种矩阵称为 稀疏矩阵 , 稀疏矩阵的计算要远远比正常的矩阵更简单 ;

针对运输问题 , 存在一个简化版的单纯形法 ;

简化版的单纯形法与单纯形法的框架基本类似 , 也需要按照 ① 初始基可行解 , ② 最优解判定 , ③ 迭代 , 步骤进行计算 ;

2、产销不平衡模型

运输规划中 , 如果产量 = 销量 , 则 产销平衡 ;

如果 产量 ≥\geq≥ 销量 , 或 产量 ≤\leq≤ 销量 , 则 产销不平衡 ;

产量 === 销量 , 销量可以全部满足 , 产量可以满足 ,

产量的约束方程是 等式 ;

销量的约束方程是 等式 ;

产量 ≥\geq≥ 销量 , 销量可以全部满足 , 产量有些地方就有剩余的 ,

产量的约束方程就是 大于等于不等式 ;

销量的约束方程仍然是 等式 ;

产量 ≤\leq≤ 销量 , 产量可以全部满足 , 销量有些地方就有剩余的 ,

产量的约束方程仍然是 等式 ;

销量的约束方程仍然就是 小于等于不等式 ;

二、运输规划数学模型变量个数


参考博客 :

  • 【运筹学】运输规划 ( 运输规划问题的数学模型 | 运输问题引入 )
  • 【运筹学】运输规划 ( 运输规划基变量个数分析 )
  • 【运筹学】运输规划 ( 运输规划基变量个数 | 运输问题一般形式 | 产销平衡 | 产销不平衡 )
  • 【运筹学】运输规划 ( 运输规划问题模型及变化 | 表上作业法引入 )

运输规划问题数学模型基变量数定理 :

假设有 m\rm mm 个产地 , n\rm nn 个销地 , 并且 产销平衡 , 其基变量数为 m+n−1\rm m + n - 1m+n−1 ;

m\rm mm 个产地 , n\rm nn 个销地 , 变量个数是 m×n\rm m \times nm×n 个 ;

m\rm mm 个产地 , n\rm nn 个销地 , 约束方程个数是 m+n\rm m + nm+n 个 , 这些约束方程中 , 有一个是多余的 , 最本质的方程最多有 m+n−1\rm m + n - 1m+n−1 个 ;

任意删掉一个约束方程 , 就不再有多余的方程了 ;

确定约束方程个数后 , 就确定了基矩阵的秩 , 根据单纯形法的基本流程 , 第一步找初始基可行解 , 可行基就知道找什么样的可行基了 ;

单纯形法解线性规划最优解过程 :

① 基可行解 : 先找到一个 初始基可行解 ;

② 检验数 : 计算检验数 , 判定当前基可行解是否是 最优解 ;

③ 迭代 : 根据检验数确定 入基变量 , 根据入基变量系数计算 出基变量 , 然后进行 同解变换 , 生成新的单纯形表 , 继续计算检验数 ;

三、表上作业法


运输问题线性规划 本质也是线性规划 , 是特殊的线性规划 , 其 最优解 可以使用 单纯形法 求得 ;

运输问题是线性规划中比较简单的模型 , 其系数矩阵中的元素都是 0,10,10,1 , 是稀疏矩阵 , 可以使用简化版的单纯形法求最优解 , 该方法称为 " 表上作业法 " ;

m\rm mm 个产地 , n\rm nn 个销地 , 变量个数是 m×n\rm m \times nm×n 个 ;

m\rm mm 个产地 , n\rm nn 个销地 , 约束方程个数是 m+n\rm m + nm+n 个 , 这些约束方程中 , 有一个是多余的 , 最本质的方程最多有 m+n−1\rm m + n - 1m+n−1 个 ;

第一步 , 开始找 初始基可行解 , 基变量个数是 m+n−1\rm m + n - 1m+n−1 个 , 基矩阵的秩是 m+n−1\rm m + n - 1m+n−1 ;

求解基可行解时 , 非基变量取值 000 , 基变量允许非 000 变量 , 找 m+n−1\rm m + n - 1m+n−1 个基变量 ,

第二步 , 找到一个规则 , 判断是否是最优解 ;

第三步 , 如果不是最优解 , 进行 迭代 , 如何进行迭代 ;

四、表上作业法 : 求初始基可行解


1、最小元素法


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

上述运输规划问题 总共有 m×n=3×4=12\rm m \times n = 3 \times 4 = 12m×n=3×4=12 个变量 ;

基变量个数 =m+n−1=3+4−1=6\rm = m + n - 1 = 3 + 4 - 1 = 6=m+n−1=3+4−1=6 ;

初始基可行解中需要找 666 个变量作为基变量 , 其取值是非 000 的 ; 剩余的 666 个变量是非基变量 , 取值为 000 ;

运输规划的目的是使总运费最小 ,

这里引入 最小元素法 思想 , 基本原则是 " 安排运输方案时 , 从单位成本最小的开始安排 " , 优先满足运费最小的运输 , 然后再考虑其它情况 ;

最小元素法基本思想 :

就近供应 , 从运费最小的地方开始供应 , 然后逐步供应运费稍高的地方 , 直到最终供应完毕为止 ;

每个表格中需要填写两部分 , 第一部分是 cij\rm c_{ij}cij​ 运费 , 第二部分是变量 xij\rm x_{ij}xij​ ;

第 111 个基变量 :

从所有 没有被划掉 的并且 没有被安排 的的运费中找到最小的 , 即 111 ; 对应表格第 222 行第 111 列 , A2\rm A_2A2​ 产地运往 B1\rm B_1B1​ 销地的运费 ;

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

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

如果要使运费最低 , 优先让运费最低的情况 , 最大量运输 , 这里直接从 A2\rm A_2A2​ 向 B1\rm B_1B1​ 运输 333 个产品 ;

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
A2\rm A_2A2​ 1,31, 31,3 999 222 888 444
A3\rm A_3A3​ 777 444 101010 555 999
销量 333 666 555 666

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

第 222 个基变量 :

从所有 没有被划掉 的并且 没有被安排 的运费中找到最小的 , 即 222 ; 对应表格第 222 行第 333 列 , A2\rm A_2A2​ 产地运往 B3\rm B_3B3​ 销地的运费 ;

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

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

如果要使运费最低 , 优先让运费最低的情况 , 最大量运输 , 这里直接从 A2\rm A_2A2​ 向 B3\rm B_3B3​ 运输 111 个产品 ;

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
A2\rm A_2A2​ 1,31, 31,3 999 2,12,12,1 888 444
A3\rm A_3A3​ 777 444 101010 555 999
销量 333 666 555 666

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

第 333 个基变量 :

从所有 没有被划掉 的并且 没有被安排 的的运费中找到最小的 , 即 333 ; 对应表格第 111 行第 333 列 , A1\rm A_1A1​ 产地运往 B3\rm B_3B3​ 销地的运费 ;

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

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

如果要使运费最低 , 优先让运费最低的情况 , 最大量运输 , 这里直接从 A1\rm A_1A1​ 向 B3\rm B_3B3​ 运输 444 个产品 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量
A1\rm A_1A1​ 333 111111 3,43, 43,4 101010 777
A2\rm A_2A2​ 1,31, 31,3 999 2,12,12,1 888 444
A3\rm A_3A3​ 777 444 101010 555 999
销量 333 666 555 666

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

第 444 个基变量 :

从所有 没有被划掉 的并且 没有被安排 的的运费中找到最小的 , 即 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 111111 3,43, 43,4 101010 777
A2\rm A_2A2​ 1,31, 31,3 999 2,12,12,1 888 444
A3\rm A_3A3​ 777 4,64,64,6 101010 555 999
销量 333 666 555 666

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

第 555 个基变量 :

从所有 没有被划掉 的并且 没有被安排 的的运费中找到最小的 , 即 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 111111 3,43, 43,4 101010 777
A2\rm A_2A2​ 1,31, 31,3 999 2,12,12,1 888 444
A3\rm A_3A3​ 777 4,64,64,6 101010 5,35,35,3 999
销量 333 666 555 666

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

第 666 个基变量 :

从所有 没有被划掉 的并且 没有被安排 的的运费中找到最小的 , 即 101010 ; 对应表格第 111 行第 444 列 , A1\rm A_1A1​ 产地运往 B4\rm B_4B4​ 销地的运费 ;

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

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

如果要使运费最低 , 优先让运费最低的情况 , 最大量运输 , 这里直接从 A1\rm A_1A1​ 向 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 111111 3,43, 43,4 10,310,310,3 777
A2\rm A_2A2​ 1,31, 31,3 999 2,12,12,1 888 444
A3\rm A_3A3​ 777 4,64,64,6 101010 5,35,35,3 999
销量 333 666 555 666

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

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

至此所有的行列全部划掉 , 所有的产销全部安排完毕 ;

此时找到的解就是运输问题的可行解 , 并且是基可行解 ;

基变量个数分析 : 在上述找基变量的时候 , 有 m\rm mm 行 n\rm nn 列 , 每找到一个基变量 , 或者划掉一行 , 或者划掉一列 , 最后的一个基变量同时花掉了一行一列 , 因此这里有 m+n−1\rm m + n - 1m+n−1 个基变量 ;

2、差额法 ( 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 方法 ( 差额法 ) " , 其中 Vogel 方法 得到的初始基可行解更靠近最优解 ;

下面开始判断该 初始基可行解 是否是 最优解 ;

最优解判别 : 得到一组 基可行解 之后 , 使用 检验数 判定该解是否是最优解 ;

检验数符号 : 变量 xij\rm x_{ij}xij​ 的检验数记作 λij\rm \lambda_{ij}λij​ ;

检验数判定原则 : 运输规划的 目标函数求最小值 时 , 所有的 非基变量检验数 λij\rm \lambda_{ij}λij​ 都非负 , 该基可行解就是最优解 , 该运输方案是最优方案 ;

求检验数的方法 : ① 闭回路法 , ② 位势法 ;

1、闭回路法


闭回路法 :

上述示例中找了一个 A2\rm A_2A2​ 到 B4\rm B_4B4​ 的格子对应的非基变量 x24\rm x_{24}x24​ 找闭回路 , 实际上任意一个非基变量都存在一个闭回路 ;

此时找到了针对最优解的判定方案 , 是针对 非基变量 进行判断 , 对于 任意一个非基变量 , 都可以找到这样的闭回路 ,

出发的格子中 增加运输量 , 然后某个格子需要 减少运输量 , 增加 与 减少 依次交替 , 最终能回到初始的格子, 达到产销平衡 ;

出发的格子使用加号 +++ , 第二个格子使用减号 −-− , 之后的歌词依次使用 加号减号交替 +−+-+− 符号 ;

让其运费做一个 " +−+−⋯+-+-\cdots+−+−⋯ " 运算 , 最终看代数和 ;

如果代数和 大于等于 000 , 说明当前的非基变量格子取 000 就是 最优选择 ;

如果代数和 小于 000 , 说明当前的非基变量格子取 000 不是最优选择 ;

2、闭回路法示例 1

运输规划问题 :

3、初始基可行解

使用最小元素法求得的初始基可行解 :

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

使用 最小元素法, 得到初始基可行解 : {x13=4x14=3x21=3x23=1x32=6x34=3\begin{cases} \rm x_{13} = 4 \\\\ \rm x_{14} = 3 \\\\ \rm x_{21} = 3 \\\\ \rm x_{23} = 1 \\\\ \rm x_{32} = 6 \\\\ \rm x_{34} = 3 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​x13​=4x14​=3x21​=3x23​=1x32​=6x34​=3​

4、计算检验数


计算检验数 :

使用闭回路法 , 逐个计算每个非基变量的检验数 ,

以非基变量为起点 , 出发的格子使用加号 +++ , 第二个格子使用减号 −-− , 之后的歌词依次使用 加号减号交替 +−+-+− 符号 ;

计算上述闭回路的运费代数和 ,

如果代数和 大于等于 000 , 说明当前的非基变量格子取 000 就是 最优选择 ;

如果代数和 小于 000 , 说明当前的非基变量格子取 000 不是最优选择 ;

这里以计算 σ24\rm \sigma_{24}σ24​ 检验数为例 :

A24+\rm A_{24} +A24​+ , A23−\rm A_{23} -A23​− , A13+\rm A_{13} +A13​+ , A14−\rm A_{14} -A14​−

σ24=(1×8)−(1×2)+(1×3)−(1×10)=−1\rm \sigma_{24} = ( 1 \times 8 ) - ( 1 \times 2 ) + ( 1 \times 3 ) - ( 1 \times 10 ) = -1σ24​=(1×8)−(1×2)+(1×3)−(1×10)=−1

检验数小于 000 ;

计算出的 非基变量 检验数使用 蓝色括号字体 写在表格中 :

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量
A1\rm A_1A1​ 333 , (1)(1)(1) 111111 , (2)(2)(2) 333 , 444 101010 , 333 777
A2\rm A_2A2​ 111 , 333 999 , (1)(1)(1) 222 , 111 888 , (−1)(-1)(−1) 444
A3\rm A_3A3​ 777 , (10)(10)(10) 444 , 666 101010 , (12)(12)(12) 555 , 333 999
销量 333 666 555 666

5、调整运量 ( 换基 )


上述检验数中 , σ24\rm \sigma_{24}σ24​ 为负数 , 需要进行换基 , 该非基变量就是入基变量 ;

该检验数的闭合回路如下 : A24+\rm A_{24} +A24​+ , A23−\rm A_{23} -A23​− , A13+\rm A_{13} +A13​+ , A14−\rm A_{14} -A14​− ;

在 −-− 符号的基变量中挑选一个最小的 , 作为出基变量 ;

换基之后的结果如下 :

经过上述计算后的运费表格如下 :

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

计算当前的总运费 :

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

计算检验数验证 , 是最优解 ;

6、闭回路法示例 2

运输规划问题 :

B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ 产量
A1\rm A_1A1​ 333 111111 444 444 777
A1\rm A_1A1​ 777 777 333 888 444
A1\rm A_1A1​ 111 222 101010 666 999
销量 333 666 555 666 202020

可以使用 " 最小元素法 " 或 " Vogel 方法 " 找初始基可行解 , 这里使用 最小元素法 ;

【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 ) 博客中有详细的 " 最小元素法 " 的分析过程 , 这里只进行简要分析 ;

基变量个数 是 m+n−1=4+3−1=6\rm m+ n - 1 = 4 + 3 - 1 = 6m+n−1=4+3−1=6

最小元素法找初始基可行解:

① x31\rm x_{31}x31​ 运费为 111 最小 , 安排 333 个 , B1\rm B_1B1​ 销地满足 , 划掉该列 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量
A1\rm A_1A1​ 3̸\not 3​3 111111 444 444 777
A2\rm A_2A2​ 7̸\not 7​7 777 333 888 444
A3\rm A_3A3​ 1̸\not 1​1 , 333 222 101010 666 999
销量 333 666 555 666 202020

② x32\rm x_{32}x32​ 运费为 222 最小 , 安排 666 个 , B2\rm B_2B2​ 销地满足 , A3\rm A_3A3​ 产量也满足 , 这里注意除了最后一个基变量之外 , 不能同时删除一行一列 , 每次只能删除一行 , 或者删除一列 ; 这里选择划掉 B2\rm B_2B2​ 销地 这一列 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量
A1\rm A_1A1​ 3̸\not 3​3 1̸1\not 11​11 444 444 777
A2\rm A_2A2​ 7̸\not 7​7 7̸\not 7​7 333 888 444
A3\rm A_3A3​ 1̸\not 1​1 , 333 2̸\not 2​2 , 666 101010 666 999
销量 333 666 555 666 202020

③ x23\rm x_{23}x23​ 运费为 333 最小 , 安排 444 个 , A3\rm A_3A3​ 产量满足 , 划掉 A3\rm A_3A3​ 行 ;

B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ B4\rm B_4B4​ 产量
A1\rm A_1A1​ 3̸\not 3​3 1̸1\not 11​11 444 444 777
A2\rm A_2A2​ 7̸\not 7​7 7̸\not 7​7 3̸\not 3​3 , 444 8̸\not 8​8 444
A3\rm A_3A3​ 1̸\not 1​1 , 333 2̸\not 2​2 , 666 101010 666 999
销量 333 666 555 666 202020

④ x13\rm x_{13}x13​ 运费为 444 最小 , 安排 111 个 , B3\rm B_3B3​ 销量满足 , 划掉 B3\rm B_3B3​ 列 ;

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

⑤ x14\rm x_{14}x14​ 运费为 444 最小 , 安排 666 个 , A1\rm A_1A1​ 产量满足 , 划掉 A1\rm A_1A1​ 行 ;

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

⑥ 剩下最后一个变量 x34\rm x_{34}x34​ , 安排 000 个 ; 划掉该行改了 , 所有的运输都安排完毕 ;

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

使用最小元素法找到的初始基变量与基可行解 :

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

计算检验数 判定上述 初始基可行解 是否是 最优解 ;

每个非基变量 , 都要计算一次检验数 ;

1. 计算 σ11\sigma_{11}σ11​ 检验数

使用 闭回路法 计算检验数 , 首先要确定闭回路 ; 以非基变量为起点 , 然后构造回路 , 只能在基变量对应的格子位置拐弯 ;

σ11=3−1+6−4=4≥0\sigma_{11} = 3 - 1 + 6 - 4 =4 \geq 0σ11​=3−1+6−4=4≥0

该检验数 ≥0\geq 0≥0 , 如果按照这个回路调整运费会增加 , 每调整一个产品都会增加 444 个单位运费 ;

计算检验数时 , 只计算拐弯的基变量的运费 , 经过的基变量运费不计算 ;

2. 计算 σ12\sigma_{12}σ12​ 检验数

使用 闭回路法 计算检验数 , 首先要确定闭回路 ; 以非基变量为起点 , 然后构造回路 , 只能在基变量对应的格子位置拐弯 ;

σ12=11−2+6−4=11≥0\sigma_{12} = 11 - 2 + 6 - 4 =11 \geq 0σ12​=11−2+6−4=11≥0

该检验数 ≥0\geq 0≥0 , 如果按照这个回路调整运费会增加 , 每调整一个产品都会增加 111111 个单位运费 ;

计算检验数时 , 只计算拐弯的基变量的运费 , 经过的基变量运费不计算 ;

3. 计算 σ21\sigma_{21}σ21​ 检验数

使用 闭回路法 计算检验数 , 首先要确定闭回路 ; 以非基变量为起点 , 然后构造回路 , 只能在基变量对应的格子位置拐弯 ;

σ21=7−1+6−4+4−3=9≥0\sigma_{21} = 7 - 1 + 6 - 4 + 4 - 3 =9 \geq 0σ21​=7−1+6−4+4−3=9≥0

该检验数 ≥0\geq 0≥0 , 如果按照这个回路调整运费会增加 , 每调整一个产品都会增加 999 个单位运费 ;

计算检验数时 , 只计算拐弯的基变量的运费 , 经过的基变量运费不计算 ;

4. 计算 σ22\sigma_{22}σ22​ 检验数

使用 闭回路法 计算检验数 , 首先要确定闭回路 ; 以非基变量为起点 , 然后构造回路 , 只能在基变量对应的格子位置拐弯 ;

σ22=7−2+6−4+4−3=8≥0\sigma_{22} = 7 - 2 + 6 - 4 + 4 - 3 =8 \geq 0σ22​=7−2+6−4+4−3=8≥0

该检验数 ≥0\geq 0≥0 , 如果按照这个回路调整运费会增加 , 每调整一个产品都会增加 888 个单位运费 ;

计算检验数时 , 只计算拐弯的基变量的运费 , 经过的基变量运费不计算 ;

5. 计算 σ24\sigma_{24}σ24​ 检验数

使用 闭回路法 计算检验数 , 首先要确定闭回路 ; 以非基变量为起点 , 然后构造回路 , 只能在基变量对应的格子位置拐弯 ;

σ24=8−4+4−3=5≥0\sigma_{24} = 8 - 4 + 4 - 3 =5 \geq 0σ24​=8−4+4−3=5≥0

该检验数 ≥0\geq 0≥0 , 如果按照这个回路调整运费会增加 , 每调整一个产品都会增加 555 个单位运费 ;

计算检验数时 , 只计算拐弯的基变量的运费 , 经过的基变量运费不计算 ;

6. 计算 σ33\sigma_{33}σ33​ 检验数

使用 闭回路法 计算检验数 , 首先要确定闭回路 ; 以非基变量为起点 , 然后构造回路 , 只能在基变量对应的格子位置拐弯 ;

σ33=10−6+4−4=4≥0\sigma_{33} = 10 - 6 + 4 - 4 =4 \geq 0σ33​=10−6+4−4=4≥0

该检验数 ≥0\geq 0≥0 , 如果按照这个回路调整运费会增加 , 每调整一个产品都会增加 444 个单位运费 ;

计算检验数时 , 只计算拐弯的基变量的运费 , 经过的基变量运费不计算 ;

经过上述运算 , 所有的非基变量检验数都 ≥0\geq 0≥0 , 当前的基可行解就是最优解 ;

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

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

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

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

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

  3. 闭回路法代码MATLAB,闭回路调整法解析.ppt

    -闭回路调整法 改进的方法 销地 加工厂 3 11 3 10 1 9 2 8 7 4 10 5 销地 产地 产量 7 4 9 销量 3 6 5 6 问题: 通过伏格尔法得到的初始解列于下表: 销地 产 ...

  4. MYSQL存储过程中 使用变量 做表名--转

    原文地址:http://blog.csdn.net/business122/article/details/7528859 今天写一个对数据库做快照的存储过程,用到了动态表名,突然发现MYSQL不支持 ...

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

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

  6. 【运筹学】表上作业法 ( 最小元素法分析 | Vogel 方法 )

    文章目录 一." 最小元素法 " 分析 二.Vogel 方法 ( 差额法 ) 一." 最小元素法 " 分析 在上一篇博客 [运筹学]表上作业法 ( 求初始基可行 ...

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

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

  8. 【运筹学】表上作业法 ( 闭回路示例 )

    文章目录 一.闭回路示例 1 二.闭回路示例 2 一.闭回路示例 1 运输规划变量如下 : B1\rm B_1B1​ B2\rm B_2B2​ B3\rm B_3B3​ A1\rm A_1A1​ x1 ...

  9. 【运筹学】运输规划 ( 运输规划基变量个数分析 )

    文章目录 一.运输规划基变量个数 二.运输规划问题数学模型基变量数定理 一.运输规划基变量个数 上一篇博客 [运筹学]运输规划 ( 运输规划问题的数学模型 | 运输问题引入 ) 提出了运输规划问题 , ...

最新文章

  1. Linux之软件卸载 apt-get
  2. TCP实现服务器与单客户端连接(多线程)
  3. html中设置父盒子的高度,【CSS】设置浮动元素高度等于父元素
  4. laravel 除了主页 都是404 webconfig_基于Laravel,开箱即用,这个PHP后台管理系统好看又省心...
  5. 如何快速定位程序Core?
  6. elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议
  7. 大数据基础系列 4:伪分布式 Hadoop 在 Ubuntu 上的安装流程完整步骤及易错点分析
  8. 少年,你知道怎么用一行代码解决分布式事务问题吗?
  9. DTC精彩回顾—黄东旭《TiDB数据驱动的企业智能化转型新方向》丨PPT视频
  10. 软件需求说明书(GB856T——88)
  11. 百度地图WEB服务-正地理编码使用心得
  12. SNS网店软文推广法
  13. [软件人生]IT168年会的一点感受——简评专题的内容和说实话的流氓
  14. mysql: load data与select into outfile
  15. MySQL自定义中文转拼音函数
  16. 连载32:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
  17. 关于选择护肤品功效成分时可以参考一下!!!
  18. Pascal voc2007安装和pytorch使用
  19. iPhone 相机操作指南 3.0
  20. linux中的ctrl+z和ctrl+c以及exit

热门文章

  1. 中小企业数据异地备份容灾解决方案
  2. JAVA基础之理解JNI原理
  3. Mac怎么刷新DNS缓存
  4. c++ static 存储类
  5. 如何让SQLServer的 itemNum 字段 按照数字大小顺序排序
  6. .NET面试题(三)
  7. 支付宝接口参数调用相关
  8. 2015/12/28 十六进制转八进制 八进制转十六进制 作业
  9. 编写查询功能TextBox
  10. IIS启动时出现0x8ffe2740的错误