物流配送中的车辆分配与路径安排的设计与实现
- 格式:doc
- 大小:236.00 KB
- 文档页数:18
物流配送中的车辆分配与路径安排的设计与实现:摘要物流配送中的车辆路径问题(CVRP)是为一些车辆确定一些客户的路径,每一客户只能被访问一次,且每条路径上的客户需求量之和不能超过车辆的承载能力,每条路径都以中心开始和结束。
本文的目标是通过蚁群算法实现对车辆分配与路径安排。
蚁群算法是受到人们对自然界中真实的蚁群集体行为的研究成果的启发而提出的一种基于种群的模拟进化算法。
本文介绍了基本蚁群算法及其应用领域。
通过对基本蚁群算法的理解,提出了三种对基本蚁群算法的修改策略,以求解 CVRP。
文中用伪码对修改后的算法进行了详细的描述。
同时,使用Visual C++实现了实验性仿真系统,模拟了车辆分派与路径安排。
通过对实验数据的分析,得到了较好的修改策略和合适的参数大小。
基于引入其他算法的优点来改进自身缺点的思想。
本文在适用于求解CVRP 的基本蚁群算法中引入变异机制,来提高收敛速度和寻找更优解。
实验数据表明,引入变异机制的蚁群算法能够有效地解决带有容量限制的车辆路径问题,并且大大提高了解的质量。
关键词:蚁群算法,CVRP ,变化1第1章绪论1.1研究背景中国物流业近 5 年才开始起步,并进入发展期。
物流业的兴起与外资进入中国市场,制造业转移中国密切相关,接着是连锁业物流、家电物流日用化工业物流、汽车物流等等。
据统计,美国 2000 年的运输费用为 5900 亿美元,占当年 GDP 总1作者简介:姓名,姚军,男(1987—),安徽宣城,汉族。
2005年9月至2009年7月就读于安徽农业大学信息与计算科学专业。
值 99600亿美元的 5.92%,可见,减少运输费用是有效减少物流成本的重要方面。
对于物流中心和第三方物流企业的货物配送,运输车辆的调度是工作的重点,正确合理的调度可以有效减少车辆的空驶率,实现合理路径运输,从而有效减少运输成本,节约运输时间,提高经济效益。
国外车辆优化调度研究已广泛用于生产、生活的各个方面,如报纸投递及线路的优化、牛奶配送及送达线路的优化、电话预订货物的车辆载货和线路设计、垃圾车的线路优化及垃圾站选址优化、连锁商店的送货及线路优化等等。
目前,研究水平已有很大发展,其理论成果除在汽车运输领域外,在水运、航空、通讯、电力、工业管理、计算机应用等领域也有一定的应用,还用于航空乘务员轮班安排、轮船公司运送货物经过港口与货物安排的优化设计、交通车线路安排、生产系统中的计划与控制等多种组合优化问题.在国内,该问题的系统研究还不多见。
蚁群优化算法是模拟自然界中真是蚁群的觅食行为而形成的一种模拟进化算法,是20世纪90年代意大利的M.Dorigo 等学者提出的。
受到其取得了较好的实验结果的影响,蚁群优化算法激起了其他学者的研究热情,并取得了很多研究和应用成果。
近10年来的研究结果已经表明:蚁群算法用于组合优化具有很强的发现较好解的能力,具有分布式计算、易于与其他方法相结合、鲁棒性强等优点,在动态环境下也表现出高度的灵活性和健壮性。
然而,蚁群算法存在搜索时间过长、易于停滞的问题。
为了克服这些缺点,不少学者提出了改进算法。
例如:一、MMAS(max-min ant system)算法,其基本思想是对路径上的信息素进行限制,以期克服停滞问题,并且仅让每一代中最好的个体所走的路径上的信息作调整,以加快收敛速度。
二、改进的信息素更新策略:其一,局部信息素修改时,挥发系数动态改变;其二,全局信息素更新时,则将蚂蚁所走路的较短的那些路径上的信息加强,而较差的那些路径上的信息减弱。
三、相遇算法,其基本思想是在求解 TSP 问题中,用两只蚂蚁共同完成对一条路径的搜索,以使搜索速度提高。
变异策略,以加快局部搜索。
四、引入交叉算子以提高搜索多样性、引入分支因子r 作为衡量群体多样性的指标,当r 低于某一值时,对各路径上的信息作动态调整,以期望克服停滞现象。
这些研究对算法有一定程度的改进,但对提高收敛速度的效果不是特别明显,速度慢仍然是制约蚁群算法在大规模优化问题中的应用的瓶颈。
1.2.1 实现基本蚁群算法在求解CVRP 中的应用带有容量限制的车辆路径问题(CVRP)可以概述如下:有n 个客户,已知每个客户的需求量及位置,用多辆汽车从中心仓库(depot )将货物运到每个客户处。
每辆车的容量是有限的,要求在运送过程中不能超过车的容量,每辆车从 depot 出发且在为最后一个客户服务完后返回到depot。
每个客户的需求必须由一辆车来提供即客户的需求量不大于车的容量。
目标是最小化总的汽车行驶距离和所需求车数目。
将最小化汽车总的行驶路程。
作为第一目标,最小化车辆数目作为第二目标图1.1 CVRP模型将基本蚁群算法应用于 CVRP,实现车辆的路径分配,使得汽车总的行驶路程最短和所需汽车的数量最少。
由于基本蚁群算法针对于旅行商问题(TSP),在应用于CVRP中需要对算法作适当的修改。
1.2.2 改进基本蚁群算法取得更好的性能蚁群算法主要分为初始化、第一个客户的选择、下一个客户的选择、信息素局部更新、寻找最好的蚂蚁和信息素全局更新几步。
每一步可以采用不同的策略来改进基本蚁群算法。
对于蚁群算法中公式有许多参数,参数的大小以及各参数之间相系对结果都有一定的影响,所以可以通过比较寻找合适的参数来改进蚁群算法。
第2章 蚁群算法2.1基本蚁群算法根据仿生学家的研究结果,蚂蚁凭借路径寻优的能力能够找到蚁巢与食物之间的最短路径,其原理在于:蚂蚁在所经过的路径上留下一种挥发性分泌物(以下称为信息素),信息素随着时间的推移会逐渐挥发消失。
蚂蚁在觅食过程中能够感知这种物质的存在及其强度,并以此来指导自己的运动方向,倾向于朝着这种物质强度高的方向移动,即选择该路径的概率与当时这条路径上该物质的强度成正比,信息素强度越高的路径,选择它的蚂蚁就越 多,则在该路径上留下的信息素的强度就更大,而强度大的信息素又吸引更多的蚂蚁,从而形成一种正反馈,通过这种正反馈,蚂蚁最终可以发现最佳路径,导致大部分的蚂蚁都会走此路径。
为了模拟实际蚁群的行为,首先引进如下记号:设 m 是蚁蚂蚁的数量ij d (i,j=1,2,……,n)表示城市 i 和城市 j 之间的距离,()t b t 表示 t 时 刻位于城市i 的蚂蚁的个数,则有1()nt t m b t ==∑,()ij t τ表示 t 时刻在城市i,j 连线上残留的信息量。
初始时刻,各条路径上信息量相等,设(0)ij C τ=(C 为常数)。
蚂蚁(1,2,,)k k m =在运动过程中,根据各条路径上的信息量决定转移方向。
()k ij p t 表示在 t 时刻蚂蚁k 由城市i 转移到城市j 的概率:[()][],[()][]()0,k ij ij k k ik ik ij k k t j tabu t p t tabu j tabu αβαβτητη∉⎧∉⎪⎪=⎨⎪⎪∈⎩∑ (1) 其中:ij η为先验知识或称为能见度,在为城市i 转移到城市j 的启发信息, 一般1ij ijd η=; α为在路径ij 上残留信息的重要程度;β为启发信息重要程度;与实际蚁群不同,人工蚁群系统具有记忆功能, k tabu (k=12,…,m )用以记录蚂蚁k 当前所走过的城市,下一步不允许选择的城 市,称为禁忌表。
经过n 个时刻,所有蚂蚁都完成了一次周将满,此时应清空,将当面蚂蚁所在城市置于k tabu ,准备下一次周游。
这 时 , 计 算 每 一 只 蚂 蚁 所 在 走 过 的 路 径 k L ,并保存最短径()min min min ,1,2,3,....,k k k L L L k m === (2)随着时间的推移,以前留下信息逐渐消逝,用参数 1-ρ 表示信息消逝程度,当蚂蚁完成一次循环以后,各路径上信息量要根据(3)作调整:(1)(1)ij k k ij ij t p γγρτ+=-+∆ (3) 1ij mk ij k ττ=∆=∆∑ 其中,10,k k ij Qk t t ij L τ⎧⎪∆=+⎨⎪⎩当第只蚂蚁在时刻和之间经过时其它 τ∆表示第k 只蚂蚁在本次循环中留在路径上的信息量,ij τ∆表示本次循环中路径 ij 上的信息量的增量,Q 为常数,L 表示第k 只蚂蚁在 本次循环中所走过的路径的长度.本次循环中所走过的路径的长度。
一般设置周游次数计数器 NC,当达到设定值时结束,最短路径为:min min min (11,2,...,)k L L NC ==2.2改进蚁群算法算法描述如下:Step1:初始化。
将每个边上的信息素初始化为一个很小的常数值;将 m 只蚂蚁随机地分配到n 个城市,同时,出发点城市设置到禁忌表中。
Step2:下一个节点的选择。
每只蚂蚁按照式(4)或式(1)选择下一个城市,并修改禁忌表。
00arg max{[][],(1),k ij ij j tabu q q j q q αβτη∉⎧≤⎪=⎨⎪>⎩按公式 (4)其中: 001q ≤≤ ,是初始设定的参数;q 是一个随机数,q ∈[0,1];S 是根据式(1)决定的随机变量。
该策略增强了搜索的多样性,以避免过早地陷于搜索停滞。
Step3:信息素局部更新。
每只蚂蚁选择一个城市以后,按式(5)更新该边上的信息素。
()(1)(1)t kij ij ij t p ργγτ+=-+∆ (5) ,10,k k ij Qk t t ij L τ⎧⎪∆=+⎨⎪⎩当第只蚂蚁在时刻和之间经过时其它 其中,jb l 是蚂蚁k 从开始城市到当前城市已走过的路径长度,其余参数与 式(3)相同。
Step4:计算最佳路径。
当m 只蚂蚁走完所有城市以后,按式(6)计算最佳路径长度并保留;{}min min ,1,2,....,k L L k m == (6)其中,k L 是第k 只蚂蚁所走的路径长度。
Step5:信息素全局更新。
当所有蚂蚁走完全部城市以后,仅对最佳路径上的信息素按式(7)行更新。
(1)newoldij ij ij a ατττ=-+ (7) 1,0,k k ij j l τ⎧∈⎪∆=⎨⎪⎩最近路程其它 其中,α为全局信息素挥发系数,k l 为最佳路径的长度,ij ∈最佳路径,表示蚂蚁k 所走的城市ij 属于最佳路径。
Step6:设置的搜索次数如果未完,则清空禁忌表,重复上述过程。
2.3蚁群算法应用领域Dorigo 等首先将自己提出的蚁群算法应用在 TSP 问题上,Olive30问题 题的求解结果同其他几种进化算法进行了对比研究,结果表明,AS 算法的 求解效果明显优于现在流行的几种进化算法。
随即众多学者以 TSP 问题为主 展开了研究,并迅速将这一研究拓展到其他几种典型的组合优化问题上Dorigo 和Maniezzo 等将AS 算法引入到二次分配问题(QAP)上,并对AS 算法进行了相应的改进。