管理科学-运输问题(伏格尔法)

伏格尔法

  1. 算出各行各列中最小元素和次小元素的差额
  2. 对行差和列差进行对比,找出最大差额。以与最大差额值同行(或同列)的最小运价为准,倾其所有在行的产量,最大限度地满足在列的需求,一量需求(或库存)被彻底满足(或库存调光)则随即划去列(或行)的所有运价信息
  3. 对未划去的行列重复以上步骤,直到得到一个初始解

例题

假设某产品有三个产地A1,A2,A3,四个销地B1,B2,B3,B4,其供应量、需求量和单位产品运价如表所示。试求使总运费最低的运输方案。

产地销地供应量
B1B2B3B4
A123213
A2108547
A376685
需求量4344

求解过程

第一步:计算各行列中最小元素和次小元素差额

产地销地行差额供应量
B1B2B3B4
A1232113
A21085417
A3766805
列差额5333
需求量4344

第二步:找出列最大差额的最小运费并计算运费

A1B1:3*2=6 , B1还剩1个需求 , A1供应量清零

产地销地行差额供应量
B1B2B3B4
A21085417
A3766805
列差额3214
需求量1344
A2B4: 4*4=16, B4需求量清零,A2供应量还剩3
产地销地行差额供应量
B1B2B3
A2108533
A376605
列差额321
需求量134
A2B3:5*3=15,B3剩1,A2清零
产地销地行差额供应量
B1B2B3
A376605
列差额766
需求量131
7*1+6*3+6*1=31

最终得出最低运费:6+16+15+16+31=78

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用中的介绍,伏格尔法是确定初始运输方案的一种方法。下面是使用Matlab实现伏格尔法求解运输问题的步骤: 1.首先,我们需要将运输问题转化为矩阵形式,其中矩阵的行表示供应商,列表示需求商,矩阵中的元素表示从供应商到需求商的运输量。 2.接下来,我们需要计算每行和每列的差额向量,分别表示该行和该列中最小运输成本与次小运输成本之间的差额。 3.然后,我们需要找到差额向量中的最大值,如果该最大值在某一行上,则选择该行对应的需求商作为下一个运输对象;如果该最大值在某一列上,则选择该列对应的供应商作为下一个运输对象。 4.接着,我们需要计算所选运输对象的最小运输成本,并将该成本从矩阵中减去,同时更新差额向量。 5.重复步骤3和步骤4,直到所有的需求商和供应商都被满足。 下面是使用Matlab实现伏格尔法求解运输问题的代码: ```matlab function B = Vogel1(A,X) [m,n] = size(A); B = zeros(m,n); while sum(sum(A)) > 0 % 计算每行和每列的差额向量 row_diff = zeros(m,1); col_diff = zeros(1,n); for i = 1:m row = A(i,:); row(row == 0) = NaN; row_diff(i) = min(row) - min(row(isfinite(row))); end for j = 1:n col = A(:,j); col(col == 0) = NaN; col_diff(j) = min(col) - min(col(isfinite(col))); end % 找到差额向量中的最大值 if max(row_diff) >= max(col_diff) [~,i] = max(row_diff); [~,j] = min(A(i,:)); else [~,j] = max(col_diff); [~,i] = min(A(:,j)); end % 计算所选运输对象的最小运输成本 if X(i) <= X(j) B(i,j) = X(i); X(j) = X(j) - X(i); X(i) = 0; A(i,j) = NaN; else B(i,j) = X(j); X(i) = X(i) - X(j); X(j) = 0; A(i,j) = NaN; end end end ``` 其中,输入参数A是运输成本矩阵,X是需求量向量。输出参数B是初始运输方案矩阵。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值