基于粒子群的物流车辆调度的实现方法

文档序号:6623466阅读:236来源:国知局
基于粒子群的物流车辆调度的实现方法
【专利摘要】本发明涉及一种基于粒子群的物流车辆调度的实现方法,其特征在于包括以下步骤:步骤S01:粒子初始化;步骤S02:参数因子的设置;步骤S03:采用实数向量的编码方式对车辆调度问题进行求解;其中每个粒子对应两维向量X和Xpso,其中X表示位置向量,Xpso表示位置向量X对应的配送点;步骤S04:粒子速度和车辆数目自调整;步骤S05:Mapreduce模型的引入。本发明通过对基本粒子群算法进行了改进并与云计算下的MapReduce并行计算相结合,并将其运用到车辆调度问题中,实现了车辆的合理调度。
【专利说明】基于粒子群的物流车辆调度的实现方法

【技术领域】
[0001] 本发明是通过对基本粒子群算法进行了改进并与云计算下的MapReduce并行计 算相结合,并将其运用到车辆调度问题(Vehicle Routing Problem,VRP)中,属于车辆管控

【技术领域】。

【背景技术】
[0002] 随着经济全球化和网络信息技术的快速发展,物流产业被誉为经济发展的"加速 器"、产业结构转换的"润滑剂"和现代企业的"第三方利润源泉",物流产业对经济活动的影 响日益显著。而车辆调度作为物流配送的核心环节,合理的车辆调度可以简化配送程序、增 长物流经济效益、实现物流科学化。
[0003] 车辆调度问题指有一系列的收货点或发货点,寻找适当的行车路线,使车辆对各 个配送点进行有序的访问,在满足一定约束的条件如:车辆限制、车辆最大载重限制、时间 窗限制等,达到所要求的目标如:费用最少、路径最短、耗费时间最短等。
[0004] 粒子群算法是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜 索算法,能够用于求解各种组合优化问题包括VRP。


【发明内容】

[0005] 本发明的目的是提供一种基于粒子群的物流车辆调度的实现方法,能实现车辆的 合理调度。
[0006] 本发明采用以下方案实现:一种基于粒子群的物流车辆调度的实现方法,其特征 在于包括以下步骤:
[0007] 步骤SOl :对于每个粒子,随机选取0?η之间的整数k,其中η为配送点的个数, 求出其余各配送点到配送点k之间的距离作为当前粒子的初始位置,粒子群中初始群体最 优位置是以各配送点到配送中心的距离作为粒子群体历史最优位置;
[0008] 步骤S02 :进行参数因子的设置,包括惯性权重w设为可调因子:w = 0. 9_r*0. 4/ d ;学习因子c2也设为可调因子:c2 = 2. 0*r/d ;其中r为当前迭代次数,d为总迭代次数;
[0009] 步骤S03 :采用实数向量的编码方式对车辆调度问题进行求解;其中每个粒子对 应两维向量X和Xpso,其中X表示位置向量,Xpso表示位置向量X对应的配送点;
[0010] 步骤S04:粒子的速度采用自调节因子,在某个区间范围内搜索当前粒子群最适 宜的速度,通过比较得出最优解时车辆是否全部使用,如果没有全部使用,则下一轮运行时 可调度的车辆就转变为目前为止找到最优解时的车辆使用数目;
[0011] 步骤S05 :基于Mapreduce的改进粒子群算法:通过Mapreduce模型将数据集分割 成互相独立的数据块进行Map操作,群体最优解的计算通过Reduce实现,把粒子的每次迭 代更新用一次Mapreduce完成。
[0012] 在本发明一实施例中,所述步骤S03的求解中不可行解的调整步骤为:
[0013] (1)每辆车的平均载重:当全部车辆都使用时,平均每辆车的载重averageCap ;
[0014] (2)预选车辆:假设没有车辆数目的限制,对于位置向量X中整数部分相同的,其 所对应的配送点向量Xpso由同一辆车服务,分别计算所需要的车辆数目及每辆车的载重 preCap ;
[0015] (3)车辆安排:调整预选车辆,先判断实际安排的车辆kl的载重realCap[kl]是 否大于averageCap,如果大于,则另外选取下一车辆kl+Ι ;否则,依次判断当前预选车辆k2 的载重preCap[k2]加上realCap[kl]是否大于车辆的最大载重,如果小于,则把当前预选 车辆k2所服务的配送点加入进车辆kl中,对下一预选车辆做同样的判断直到全部预选车 辆都判断结束;否则另外选取车辆kl+1。
[0016] 在本发明一实施例中,所述基于Mapreduce的改进粒子群算法的具体步骤为:首 先,初始化种群及各粒子个体最优位置及群体最优位置并以文件的形式保存在本地计算机 上;然后对文件中的数据进行读取,Map阶段完成评估函数值的计算以及粒子状态的更新, Map操作完的中间结果保存在本地计算机上,reduce阶段完成粒子群体历史最优位置的更 新并把结果写入文件中。
[0017] 本发明通过对基本粒子群算法进行了改进并与云计算下的MapReduce并行计算 相结合,并将其运用到车辆调度问题中,实现了车辆的合理调度。

【专利附图】

【附图说明】
[0018] 图1是调整不可行解流程示意图。
[0019] 图2是车辆自调整流程图不意图。
[0020] 图3是基于Mapreduce的改进粒子群算法流程示意图。

【具体实施方式】
[0021] 为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明 的【具体实施方式】做详细的说明。
[0022] 在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不 同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类 似推广。因此本发明不受下面公开的【具体实施方式】的限制。
[0023] 本实施例的基于粒子群的物流车辆调度的实现方法包括以下步骤:
[0024] ①粒子初始化
[0025] 在基本粒子群算法中,粒子群初始位置是随机选取,跟实际问题的求解没有关联。 而为了使粒子群算法跟实际问题相关联并更好的解决车辆调度问题,本发明中粒子初始 位置的确定是:对于每个粒子,随机选取〇?η之间的整数k(其中η为配送点的个数),求 出其余各配送点到配送点k之间的距离作为当前粒子的初始位置,粒子群中初始群体最优 位置是以各配送点到配送中心的距离作为粒子群体历史最优位置。粒子的种群规模取配送 点个数的5倍。
[0026] ②参数因子的设置
[0027] 在基本粒子群算法中,粒子速度更新公式中的参数,一般选取惯性权重w = 1和学 习因子C2 = 2,但考虑到基本粒子群算法容易陷入局部最优,而惯性权重w主要是粒子保持 自身运动状态的惯性,用来平衡算法局部和全局搜索,当w取大值时有利于探索新领域,较 小时有利于详细搜索当前区域。因此迭代初始时粒子应扩大搜索区域,进行全局搜索,使搜 索区域收敛于某一局部区域,而随着迭代次数的增加,粒子应进行局部范围搜索,有利于寻 找最优解,防止陷入局部最优。所以本发明中惯性权重W设为可调因子:w = 0. 9-r*0. 4/d。
[0028] 由于学习因子c2是粒子向群体历史最优位置学习,粒子开始搜索阶段,群体历史 最优位置在群体最优解所占据的优势还不是很明显,因此通过参数设置使粒子开始阶段向 群体历史最优位置学习的比重较低,而搜索后期,由于群体历史最优位置在搜索全局最优 解中的比重较大,因此可以使粒子多向群体历史最优位置学习,防止陷入局部最优,有利于 找到最优解。所以本发明中,c2也设为可调因子:c 2 = 2. 0*r/d其中r为当前迭代次数,d 为总迭代次数。
[0029] 由于粒子位置的更新依赖于粒子速度的更新,而粒子速度的更新很大程度上取决 于权重系数w和学习因子c2,因此在步骤①的粒子初始位置的选择基础上增加参数因子的 调整可以使粒子位置更新更实际化及朝着最优解目标靠齐,防止粒子搜索过程陷入局部最 优。
[0030] ③编码方式
[0031] 本发明中采用实数向量的编码方式。每个粒子对应两维向量X和Xpso,其中X表 示位置向量,是在步骤②的基础上存储对应粒子的位置信息,Xpso表示位置向量X对应的 配送点。
[0032] 采用这种编码方式可以直接利用粒子群算法的更新公式而不需要对速度更新操 作进行重新定义,并且解码时只需对位置向量X进行一次排序和取整操作即可,方便对粒 子状态进行调整。位置向量X中整数部分相同的所对应的配送点由同一辆车服务,小数部 分代表配送点在对应车辆中的服务顺序。
[0033] 例1 :假设有1个配送中心,8个配送点,位置向量X及对应的配送点向量Xpso如 表1所示:
[0034]

【权利要求】
1. 一种基于粒子群的物流车辆调度的实现方法,其特征在于包括以下步骤: 步骤SOI :对于每个粒子,随机选取0?η之间的整数k,其中η为配送点的个数,求出 其余各配送点到配送点k之间的距离作为当前粒子的初始位置,粒子群中初始群体最优位 置是以各配送点到配送中心的距离作为粒子群体历史最优位置; 步骤S02 :进行参数因子的设置,包括惯性权重w设为可调因子:w = 0. 9-r*0. 4/d ;学 习因子c2也设为可调因子:c2 = 2. 0*r/d ;其中r为当前迭代次数,d为总迭代次数; 步骤S03 :采用实数向量的编码方式对车辆调度问题进行求解;其中每个粒子对应两 维向量X和Xpso,其中X表示位置向量,Xpso表示位置向量X对应的配送点; 步骤S04 :粒子的速度采用自调节因子,在某个区间范围内搜索当前粒子群最适宜的 速度,通过比较得出最优解时车辆是否全部使用,如果没有全部使用,则下一轮运行时可调 度的车辆就转变为目前为止找到最优解时的车辆使用数目; 步骤S05 :基于Mapreduce的改进粒子群算法:通过Mapreduce模型将数据集分割成互 相独立的数据块进行Map操作,群体最优解的计算通过Reduce实现,把粒子的每次迭代更 新用一次Mapreduce完成。
2. 根据权利要求1所述的基于粒子群的物流车辆调度的实现方法,其特征在于:所述 步骤S03的求解中不可行解的调整步骤为: (1) 每辆车的平均载重:当全部车辆都使用时,平均每辆车的载重averageCap ; (2) 预选车辆:假设没有车辆数目的限制,对于位置向量X中整数部分相同的,其所 对应的配送点向量Xpso由同一辆车服务,分别计算所需要的车辆数目及每辆车的载重 preCap ; (3) 车辆安排:调整预选车辆,先判断实际安排的车辆kl的载重realCap[kl]是否大 于averageCap,如果大于,则另外选取下一车辆kl+Ι ;否则,依次判断当前预选车辆k2的载 重preCap[k2]加上realCap[kl]是否大于车辆的最大载重,如果小于,则把当前预选车辆 k2所服务的配送点加入进车辆kl中,对下一预选车辆做同样的判断直到全部预选车辆都 判断结束;否则另外选取车辆kl+1。
3. 根据权利要求1所述的基于粒子群的物流车辆调度的实现方法,其特征在于:所述 基于Mapreduce的改进粒子群算法的具体步骤为:首先,初始化种群及各粒子个体最优位 置及群体最优位置并以文件的形式保存在本地计算机上;然后对文件中的数据进行读取, Map阶段完成评估函数值的计算以及粒子状态的更新,Map操作完的中间结果保存在本地 计算机上,reduce阶段完成粒子群体历史最优位置的更新并把结果写入文件中。
【文档编号】G06Q50/28GK104240054SQ201410399966
【公开日】2014年12月24日 申请日期:2014年8月13日 优先权日:2014年8月13日
【发明者】郑相涵, 陈国龙, 郭文忠, 张雪英 申请人:福州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1