友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
富士康小说网 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

现代物流学-第35部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!


解,其结果与最优解比较接近,而且节约法的一个重要特点是其能够包含实际应用中许多
重要的约束条件,如时间窗口条件、最长驾驶时间条件、司机休息时间条件等,因此一直
以来是求解VRP问题的一个有效的方法。 

假设中心仓库0用两辆车分别向分仓库i和j送货,随后返回,如图12…30(a)所示,这
时的路线里程为: 

D 
=c 
+ 
c 
+ 
c 
+ 
c 
(12。24)

10ii00 jj0 

但如果使用一辆车辆由0…i…j…0进行一次巡回送货; 如图12…30(b)所示,;其总行驶
线路里程将变为: 

D 
=c 
+ 
c 
+ 
c 
(12。25)

20 iij 
j 
0 

显然,后一种送货方案比前一种可减少行驶里程为: 
ΔDij 
= 
ci0+ 
c0 j 
。 
cij 
(12。26) 


这一减少的行驶里程ΔDij 
就称为节约里程。 

中心仓库0 
i 

中心仓库0
j

j 

(a)分别进行送货的线路 
(b)合并后的送货线路 
图 12…30通过合并线路节约行驶里程
在对多个分仓库进行送货时,将其中能取得最大“节约里程”的两个分仓库合并在一
条线路上,进行巡回送货,能够获得最大的里程节约。同时,在不超过运输车辆载货容量
的条件下,设法使这条选定的巡回路线,尽可能将其他分仓库按其所能取得“节约里程”
的大小纳入这条线路中,则能获得更大的里程节约效果。这就是节约法的基本原理。 

一般VSP问题的节约法求解步骤如下: 

1。计算收货点i;j的节约里程ΔDij 
;令M= 
{ΔDij 
| ΔDij 
》 
0}; 
2。在M内按ΔDij从大到小的顺序进行排列; 
3。若 M=Φ 
,则终止,否则对第一项ΔDij;考察对应的(i;j);若满足下述条件之一: 
(1) 点i和点j均不在已构成的线路上; 
(2) 点i或点j在已构成的线路上,但不是线路的内点(即不与中心仓库相连); 
(3) 点i或点j位于已构成的不同线路上,均不是内点,且一个是起点,一个是终
点。 
则转下步,否则转步骤6。 


4。计算点i和点j连接后的线路上总货运量Q,若 Q 
≤bk 
(bk为车辆k的容量,可按容量从
大到小的原则采纳车辆),则转下一步,否则转步骤6。 
5。连接点i和点j。 
6。令M:=M 
。ΔDij 
;转步骤3。 
例12…8 有6个分仓库的货运任务(编号为1;2;3;4;5;6),各任务的货运量d i(单位为
吨)如表12…15,这些任务由中心仓库0发出的容量为4吨和2。5吨的车辆来完成,中心仓库

12…22 



及各分仓库点对间距离(单位为公里)由表12…16给出。试选择、构造合理车辆线路,完成
上述送货任务。 

 表 12…15 货运需求量 

分仓库 1 2 3 4 5 6 
Di(吨) 0。8 0。7 1。0 1。75 1。10 1。15 

表 12…16 点对间距

 i 
j 
0 1 2 3 4 5 6 
0 0 9 12 12 20 24 21 
1 9 0 9 19 29 33 30 
2 12 9 0 10 32 29 33 
3 12 19 10 0 25 19 25 
4 20 29 32 25 0 6 1 
5 24 33 29 19 6 0 6 
6 21 30 33 25 1 6 0 

解:首先计算各点对间节约里程ΔDij 
= 
ci0+ 
c0 j 
。 
cij 
,例如点1和点2,有 
ΔD12 = 
c10 + 
c02 。 
c12 = 
9 +12 。 
9 = 
12 ,类似地,可得到其他点对的节约里程,按从大
到小的顺序示于表12…17中。 

 表 12…17 节约里程表 

序号 (i;j) ΔDij序号 (i;j) ΔDij序号 (i;j) ΔDij 
1 (4; 6) 40 6 (1; 2) 12 11 (1; 4) 0 
2 (5; 6) 39 7 (3; 6) 8 12 (1; 5) 0 
3 (4; 5) 38 8 (2; 5) 7 13 (1; 6) 0 
4 (3; 5) 17 9 (3; 4) 7 14 (2; 4) 0 
5 (2; 3) 14 10 (1; 3) 2 15 (2; 6) 0 

然后, 根据表12…17所示的节约里程顺序,逐项考察对应的(i;j);进行点对间的连
接,过程如表12…18所示: 

 表 12…18 点对间连接过程 

i…j 两点位置 Q=Σdi连接否 
4…6 非线路上点 Q=d4+d6=2。94 × 
2…3 非线路上点 Q=d2+d3=1。74 × 

表中第一列表示根据表12…17的顺序考察的i…j;若两点均不在线路上,则考察i→j和j

→i;若一点不在线路上,一点为外点,则考察i→j(i不在线路上、j是线路的起点,或i
12…23 



是线路的终点、j不在线路上)或者j→i(j不在线路上、i是线路的起点,或j是线路的终
点、i不在线路上);若两点都是不同线路上的外点,则根据点的位置关系,构造终点(一
条线路)→起点(另一条线路)的顺序。第二列表示考察的两点的位置,若不满足位置条
件,显然不能连接,不再考察其它各项,在第四列划×,转其他点对。第三列表示连接后
线路的总货运量,若大于车辆容量,则在第四列中划×。 

当一个点i不在线路上时,认为点i与中心仓库单独构成线路0→i→0。 

由表12…18,得到最终送货线路分别为: 

4吨货车: 0→4→6→5→0,其送货里程=20+1+6+24=51公里

2。5吨货车: 0→1→2→3→0,其送货里程=9+9+10+12=40公里
这样,完成上述送货任务需安排4吨和2。5吨货车各一辆,总送货里程为91公里。 
12。4。4 遗传算法求解 
遗传算法(Geic Algorithm;GA)是由J。H。Holland等于70年代发展起来的。它是一
种以自然选择和遗传理论为基础,将生物进化过程中适者生存规则与同一群染色体的随机
信息变换机制相结合的搜索算法。其通过给解向量编码、形成初始种群,然后用变异、交
叉重组、自然选择等算子,进行并行迭代,求得优化解。由于它采用随机运算,对搜索空
间无特殊要求,无需求导,具有运算简单、收敛速度快等优点,因此近年来有很快的发
展,并在组合优化、自适应控制、机器学习等许多领域获得应用,有着广泛的应用前景。
应用遗传算法可方便地对式(12…16)到式(12…21)所表示的VSP模型进行求解。 
从上述模型可知,求解的关键是合理确定车辆与各分仓库的关系;在满足车辆载重量和
分仓库需求约束条件的情况下使得总里程最小;因此可以构造遗传算法如下: 

1。 构造染色体;产生初始种群 
用矢量(S1 ;S2 ;。。。;Sl )表示染色体G,其中元素(基因)S j 为'1;Kl'之间的一个互不
重复的自然数,它表示了第j个确定第 m 
= 
(sj 
。'sj 
。1 '。 l) 个分库与路径 k='sj 。1 '+1的关系 
(。。表示取整数; 下同。),即确定分库m是否由车辆(l) k配送及确定分库 m在路径(l) k中的顺序的
次序为j。随机产生一组染色体G h (h=1;2;。。。;n)(其中n为一代种群中的个体数),G h 各
不相同,此为第一代种群。 

2。 可行化过程 
将染色体的编码向量映射为满足全部约束条件的可行解称为可行化,其过程如下: 
a。 令分库需求条件满足的标志变量dz m=0 (m=1;2; …;l)。 
b。 令路径k中的分库数目n k=0 (k=1;2;。。。;K),令 bk 
' = 
bk 
;Rk=φ (k=1;2;。。。;K),路径
k中除去中心仓库后第i个位置的分库号为r ki=0 (i=1;2;…;l);即此时所有路径皆未形成。 
j 


c。 j=1。 
d。 第j次确定分库m与路径k间的关系,其中;m 
= 
(s'sj。l 
。1 '。 
l) ; k='lsj'。1 +1。 

 e。 判断dz m是否等于0,若等于0,表明分库m的需求尚未满足,转e继续判断路径m的情
况;否则转g。 
f。 判断bz k是否为0? 
①若为0:判断d 
≤ 
bk 
' 成立否? 若成立;令dzm 
= 
1; bk 
' = 
bk 
' 。 
dm 

nk 
=nk 
+1; rkn 
= 
m; Rk 
= 
Rk 
{m} ;若不成立,转g。∪(m) 
k 


 ② 若不为0:转g。 
g。 j=j+1;转d重复上述过程,直到j=K l+1。此时检查是否所有 dzm 
=1; (m 
= 
1;2;L;l) 
成立,若成立,说明在满足各约束条件的情况下,所有的分库均分配了一个路径,构成路
径集合RT={R1;R2;…;Rk};即为染色体所相应的原车辆路径问题的一个可行解;若不成立,
说明此染色体表示的路径分配方案不满足约束,为原VRP问题的一个不可行解。
以例12…9的数据为例说明上述过程,假设一染色体编码为:

12…24 



 1 2 4 7 8 16 15 9 10 13 12 5 6 14 3 11 

s1=1,首先确定路径 k='s1 
l 
。1'+1 ='1。1'+1 = 1 与分库 m = s 。'1ls'。1 。l = 1。 0 = 1 关系,此时dz1=0,d1=1
返回目录 上一页 回到顶部 1 0
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!