离散型配送中心选址鲍姆尔沃尔夫算法Word下载.docx
- 文档编号:16576709
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:13
- 大小:33.34KB
离散型配送中心选址鲍姆尔沃尔夫算法Word下载.docx
《离散型配送中心选址鲍姆尔沃尔夫算法Word下载.docx》由会员分享,可在线阅读,更多相关《离散型配送中心选址鲍姆尔沃尔夫算法Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
2.二次解。
根据初始解,仓库i的通过量可按下式计算:
Wi0=∑{所有的k,j如Ikj0=i}Xkj0
用通过量反过来计算仓库的可变费用:
在这个阶段中,对于所有的(k,j)取下式:
Chj2的仓库序号设为hhj2。
再次按希契科克运输问题求解,使费用函数∑Chj2xni为最小时,就为二次解。
3.n次解。
设n-1次的解为,则仓库的通过量如下:
是n-1次解得到的所使用仓库的序号。
n-1次解可使仓库通过量反映到可变费用上,因此求得n次解,就可得到仓库的新的通过量。
4.最终解。
把n-1次解的仓库通过量
和n次解的仓库通过量
进行比较,如果完全相等就停止计算;
如果不等,再继续反复计算。
也就是说,当
=
时,
为最终解。
3.部分程序说明
3、1输入已知条件
i=5;
%表示仓库的个数;
j=8;
%表示用户的个数;
k=2;
%表示工厂的个数;
%ckh表示最小运输费率所通过的仓库号;
gcck=[7781211;
1412968];
%工厂仓库之间的单位运输费率;
ckkbfyxs=[75,80,75,80,70];
%仓库可变费用系数;
ckyh=[511385101111
1416894744
1011352595
15139672102
973265128];
ckh=ones(k,j);
%工厂用户之间的中转的仓库号码;
gcyh=zeros(k,j);
%工厂用户之间的运输费率;
3、2最小元素法求初调方案
ylb=zeros(2,10);
%设一个2行、10列的零运量表
wqgcyhwq=gcyhwq;
fori=1:
k+j-1%i表示仓库个数,k表示工厂个数,j表示客户个数
min=999;
form=1:
2%m表示从第一个工厂到第二个工厂的循环
forn=1:
10%n表示十个客户的循环
ifmin>
gcyh(m,n)
min=gcyh(m,n);
hzb=m;
zzb=n;
%判断工厂到用户的运输费用是不是最小,如果是最小就把工厂m赋予hzb,用户n赋予zzb
end
min;
hzb;
zzb;
ifgcyhwq(hzb,11)>
gcyhwq(3,zzb)
ylb(hzb,zzb)=gcyhwq(3,zzb);
gcyh(:
zzb)=gcyh(:
zzb)*10000;
gcyhwq(hzb,11)-ylb(hzb,zzb);
gcyhwq(hzb,11)=gcyhwq(hzb,11)-ylb(hzb,zzb);
%如果行中的生产能力大于需求能力,就将最小的客户所需要的需求量全部满足。
elseifgcyhwq(hzb,11)<
ylb(hzb,zzb)=gcyhwq(hzb,11);
gcyh(hzb,:
)=gcyh(hzb,:
)*10000;
gcyhwq(3,zzb)-ylb(hzb,zzb);
gcyhwq(3,zzb)=gcyhwq(3,zzb)-ylb(hzb,zzb);
%如果行中的生产能力小于需求能力,用该行的生产能力减去该行工厂为用户提供的需求量,剩下的数即为此行对用户提供的运量。
elseifgcyhwq(hzb,11)==gcyhwq(3,zzb)
%如果行中的生产能力等于需求能力,不再考虑此行任何用户的需求量。
end
ylb;
gcyh;
ylb
gcyhwq;
3、3用位势法判断是否最优
%用位势法判断是否最优;
%x=[u1u2v1v2v3v4v5v6v7v8]'
;
a=zeros(9,9);
%检验数的系数;
b=zeros(9,1);
%检验数的常数;
jys=zeros(2,8);
%检验数;
zyjbz=0;
%最优解的标志,zyjbz=0表示不是运输问题的最优解,zyjbz=1表示是运输问题的最优解。
i=0;
k
j
ifylb(m,n)~=0
i=i+1;
m;
n;
gcyh(m,n);
a(i,m)=1;
a(i,n+2)=1;
b(i,1)=wqgcyhwq(m,n);
fprintf(1,'
u(%d)+v(%d)=%d\n'
m,n,wqgcyhwq(m,n));
a;
fori=1:
9
forj=1:
aa(i,j)=a(i,j+1);
aa
xx=[0;
inv(aa)*b];
%inv表示逆
2
u(i)=xx(i);
8
v(j)=xx(j+2);
v
ifylb(m,n)==0
jys(m,n)=wqgcyhwq(m,n)-u(m)-v(n);
jys
ifjys>
=0
disp('
此调运方案就是运输问题的最优解'
)
四、运行结果
gcyh=
1218101310131111
17151110118168
ckh=
15153322
55553424
运输平衡问题的费用表
gcyhwq=
121810131013111140
1715111011816850
10101015515101590
此问题是运输平衡问题
ylb=
10510050100
05015015015
u
(1)+v
(1)=12
u
(1)+v
(2)=18
u
(1)+v(3)=10
u
(1)+v(5)=10
u
(1)+v(7)=11
u
(2)+v
(2)=15
u
(2)+v(4)=10
u
(2)+v(6)=8
u
(2)+v(8)=8
aa=
010000000
001000000
000100000
000001000
000000010
101000000
100010000
100000100
100000001
u=
0-3
v=
1218101310111111
jys=
00000200
80404080
此调运方案就是运输问题的最优解
ysf=
935
ww=
[]
yes
201053025
ckf=
1.5443e+003
zfy=
2.4793e+003
第一次运算结束
=====================================================================================================================================================
ckkbfy2=
8131777
gcckzf=
00000
1520251918
2225261315
2025182020212421
2422181720152315
15151424
55554444
202518202021242140
242218172015231550
u
(1)+v
(1)=20
u
(1)+v
(2)=25
u
(1)+v(3)=18
u
(1)+v(5)=20
u
(1)+v(7)=24
u
(2)+v
(2)=22
u
(2)+v(4)=17
u
(2)+v(6)=15
u
(2)+v(8)=15
2025182020182418
00000303
70303020
251003025
1.4162e+003
2.3512e+003
第二次运算结束
ckkbfy3=
813077
gcckzf3=
2333252625
3038262022
ylb1=
03
第三次运算结束
五、结果分析
本次课程设计主要是运用MATLAB软件,运用配送中心鲍姆尔—沃尔夫计算方法来计算出运输费用和仓库费用,再算出总费用。
多次迭代进行对比找出最优解。
第一次求解:
由已知条件,将工厂到仓库间单位运输费率行与仓库到用户间的单位发送费用的列一一对应相加,取其最小即为最小运费,同时注明通过的仓库号。
采用位势法计算初始方案每个空格的闭合回路的检验数,经计算得知该方案的检验数均是正数,因此,该出事方案可行。
第二次求解:
根据初始解求第二次解。
将可变费用加上已知条件的工厂到仓库见的单位运输费,同初始解的计算一样,计算出最小运输费率,根据最小运输费加上发送费结合最小元素法分配工厂向用户提供的需求量,用位势法去判断是否是最优解。
在这过程中出现检验数存在负数。
因此,要闭合回路进行调整将负数变成零,对角线处奇数位加检验数,偶数位减去检验数,当检验数均为正时重新带入求出运量表,计算各仓库的通过量,重复上述步骤,直到检验数均为正,停止,计算出的结果可视为最优解。
第三次求解:
同理,计算出第三次结果。
运费为7170,仓库费为61579,总费用为13328。
三次结果一次比一次少,而第一次与第三次的运费一样,但第三次的总费用比第一次少,所以第三次的解可视为最优解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 配送 中心 选址 鲍姆尔沃尔夫 算法
![提示](https://static.bdocx.com/images/bang_tan.gif)