一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于蚁狮算法的车辆调度方法、系统、设备及介质与流程

2022-06-16 03:22:02 来源:中国专利 TAG:


1.本发明属于物流运输领域,具体涉及一种基于蚁狮算法的车辆调度方法、系统、设备及介质。


背景技术:

2.物流运输在物流业和物流供应链上发挥着非常重要的作用,而物流车辆调度管理在物流运输过程中占有重要地位,有效提高物流车辆调度管理效率和水平,有利于整个物流运输效率的提升。物流配送车辆调度优化问题一直是现代物流管理的核心问题,其旨在降低配送成本的基础上来提高物流配送车辆的时间利用率。配送车辆的优化调度,主要包括收集路线的优化、配送路线的优化以及货物组装与配送一体化等。配送运输用于大量的配送用户,并且多个订单之间有路线交集和时间限定。因此构建最佳配送路线,从而有效完成订单、高效完成任务,这能够显著降低配送的成本和收益。配送是位于物流末端的重要问题,更是降低物流开销的有力武器。
3.目前常用的用于车辆调度问题的启发式优化算法主要是基于pso、遗传算法、混合蝙蝠算法以及各种传统算法对应的改进算法。这些算法往往收敛速度较一般、容易陷入局部最优解、并且拥有大量可条件的参数,算法实现也较为复杂。


技术实现要素:

4.为解决现有技术中传统算法收敛速度慢的问题,本发明提供一种基于蚁狮算法的车辆调度方法、系统、设备及介质。
5.第一方面,本发明提供一种基于蚁狮算法的车辆调度方法,包括如下步骤:获取货物运输的所有订单详细需求表和运货车辆信息,生成一个配送序列,将所述配送序列转化为适合蚁狮算法的可行解;计算所述可行解的成本函数值,通过蚁狮算法优化求解,得到成本函数最小值所对应的最优运输方案,所述最优运输方案对应最优的车辆调度方法;将所述最优的车辆调度方法重构解析为具体每个车辆的运输目标与路径。
6.进一步的,所述将所述配送序列转化为适合蚁狮算法的可行解中具体包括:
7.使用检查函数判断所述配送序列是否满足任务的硬性需求,若满足所述硬性需求,则将所述配送序列转化为适合蚁狮算法的可行解;若不满足所述硬性需求,则通过调整函数修改所述配送序列,重新判断。
8.进一步的,使用检查函数判断所述配送序列是否满足任务的硬性需求具体包括:
9.按照配送顺序为每一辆车装上货物,直到装货总重量超过一辆车的总载重,后新发一辆车进行当前货物的运输;
10.当全部货物均能分别被分配到某一车辆时,统计总使用车辆数是否小于等于所有任务允许使用车辆数,如果不超过则认定满足所述硬性需求,若超过所述所有任务允许使用车辆数,则认为完全不满足所述硬性需求。
11.进一步的,所述蚁狮算法各项参数包括:种群数量p、最大迭代数量niter、搜索空
间维度dim和成本函数cost,其中所述成本函数值cost的计算方式如下:
[0012][0013]
其中,pe为车辆早到对于任务的等待系数;pl为车辆延迟完成任务对目标的惩罚系数;disttime(a,b)表示车辆从a运行到b所使用的时间;x
i-1
和xi表示车辆在执行任务i之前所在的位置和任务i所在的位置;servicetimei表示任务i所需要的执行用时;starti和endi表示任务i的开始时间和结束时间;arrivei和finishi表示车辆在执行到任务i时的到达时间和完成时间。
[0014]
进一步的,通过蚁狮算法优化求解所述可行解的成本函数值的具体方式如下:
[0015]
将所述成本函数值升序排序,选择排序后的其中前个种群个体作为蚁狮选择后个种群个体作为蚂蚁记录第一个蚁狮al1为最优个体s1,第一个蚁狮的成本函数值cost(s1)为全局最优函数值score
best
,第一个蚁狮的位置为全局最优运输方案s
best

[0016]
进一步的,所述蚁狮算法中,随着迭代轮数的增多,逐渐缩小蚂蚁的游走范围。
[0017]
进一步的,所述将所述最优的车辆调度方法重构解析为具体每个车辆的运输目标与路径具体包括:
[0018]
获取一个所述配送序列,且设定当前配送序列的序号为1;
[0019]
以车辆角度对每一辆车检查分配情况,设定当前车辆为车辆1,当前序号任务需求货物数是否被第一辆车装下,若当前车辆已载货物量加上当前序号任务需求货物数小于等于当前车辆载重,则该货物被分配给当前车辆,并给当前配送序列的序号加1,若已载货物加上当前序号任务需求货物数大于当前车辆载重,则将当前车辆号加1,重新执行本步骤;
[0020]
若当前配送序列的序号小于任务总数n,则继续分配货物,否则完成重构解析。
[0021]
第二方面,本发明提供一种基于蚁狮算法的车辆调度系统,具体包括:
[0022]
转化模块:用于获取货物运输的所有订单详细需求表和运货车辆信息,生成一个配送序列,将所述配送序列转化为适合蚁狮算法的可行解;
[0023]
计算模块:用于根据所述可行解,使用蚁狮优化算法优化求解所选取成本函数,得到成本函数最小值所对应的最优运输方案,所述最优运输方案对应最优的车辆调度方法;
[0024]
解析模块:用于将所述最优的车辆调度方法重构解析为具体每个车辆的运输目标与路径。
[0025]
第三方面,本发明提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述基于蚁狮算法的车辆调度方法。
[0026]
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述基于蚁狮算法的车辆调度方法。
[0027]
与现有技术相比,本发明具有如下有益效果:
[0028]
本发明的方法使用基于蚁狮优化算法的车辆调度方案,将车辆调度的各种匹配方
案与蚂蚁围绕蚁狮挖制的陷阱进行游走相结合,之后使用蚂蚁游走进行局部搜索,使用蚁狮选取最优结果,不仅算法中的随机游走过程为求解调度问题提供不错的搜索能力,同时提高了种群的收敛速度。由于引入了随机游走、轮盘赌策略及精英策略,使用本该方法解决问题成为一种搜索种群多样、寻优性能强、调节参数少、易于实现的解决方式。该方法在解决车辆调度这类np困难问题上取得的效果较好,求解所得解为实际最优解概率较高,健壮性也较强。
附图说明
[0029]
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0030]
在附图中:
[0031]
图1为本发明一种基于蚁狮算法的车辆调度方法的总流程示意图;
[0032]
图2为本发明一种基于蚁狮算法的车辆调度方法中涉及的车辆调度可行解求法流程图;
[0033]
图3为本发明一种基于蚁狮算法的车辆调度方法中涉及的蚁狮算法的一个实施方式流程图;
[0034]
图4为本发明一种基于蚁狮算法的车辆调度方法所使用的解决方案序列编码的解码流程图。
具体实施方式
[0035]
下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0036]
以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本发明所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
[0037]
实施例1
[0038]
如图1所示,一种基于蚁狮算法的车辆调度方法,所述方法包括下述步骤:
[0039]
步骤1:获取货物运输的所有订单详细需求表tinfo和运货车辆信息trunkinfo,将复杂的车辆调度顺序步骤转化为适合蚁狮算法的可行解变量solution。
[0040]
如图2所示,具体包括如下步骤:
[0041]
步骤11:获取货物运输的所有订单详细需求表tinfo和运货车辆信息trunkinfo,订单详细需求表tinfo包括一批以序号标明的任务序列ti(i=1,2,3

n,每项任务包括任务需求货物数ncargo、任务限定开始时间begintime、任务限定截止时间endtime、任务执行必要服务时间和所有任务允许使用车辆数nmax,运货车辆信息trunkinfo包括本次任务可供调度的车辆集合trunks={vol1,vol2,vol3…
vol
nmax
},以对应车辆的载重表示,主要包括车辆的载重信息和总数。
[0042]
步骤12:结合所有订单详细需求表tinfo和运货车辆信息trunkinfo,依次分配车辆进行运输,使用随机函数r=random(n)来随机生成一个配送序列sr=[g1,g2,g3…gn
]作为
运输方案,并使用检查函数c=check(s)对配送序列sr进行检查,检查是否满足任务的硬性需求;若不满足硬性需求,则继续步骤13,若满足任务的硬性需求,则跳转步骤14。
[0043]
check函数判断配送序列是否满足任务的硬性需求是指:按照配送顺序s1、s2、s3…
为每一辆车装上货物,直到装货总重量volnow超过一辆车的总载重voltrunki后新发一辆车trunk
i 1
进行当前货物的运输;当全部货物均能分别被分配到某一车辆时,统计总使用车辆数是否小于等于所有任务允许使用车辆数nmax,如果不超过则认定满足任务的硬性需求,若超过所有任务允许使用车辆数nmax,则认为完全不满足任务的硬性需求。
[0044]
步骤13:使用调整函数a=adjust(s)对配送序列sr进行修改,然后重新执行步骤12。调整函数a=adjust(s)是通过选择配送序列sr中占用资源较多的任务序列gi后移,调换其他车辆中占用资源较少的任务序列gj。
[0045]
步骤14:对于步骤12产生的一种合理运输方案,将其组合为可行解solution。
[0046]
步骤2:使用蚁狮优化算法进行优化求解所选取的成本函数cost,得到成本函数最小值c
min
所对应的最优运输方案score
best
,最优运输方案score
best
对应最优的车辆调度方法。
[0047]
如图3所示,具体包括如下步骤:
[0048]
步骤21:确定蚁狮算法的各项参数,包括种群数量p、最大迭代数量niter、搜索空间维度dim、成本函数cost;
[0049]
确定成本函数cost,将某一车辆的运行距离、服务时间、早到等待时间和推迟惩罚时间进行线性加权求和作为单个车辆的成本函数;将所有车辆的成本函数累加作为本运输方案的总成本函数,也既成本函数cost,具体为:
[0050][0051]
其中,pe为车辆早到对于任务的等待系数;pl为车辆延迟完成任务对目标的惩罚系数;disttime(a,b)表示车辆从a运行到b所使用的时间;x
i-1
和xi表示车辆在执行任务i之前所在的位置和任务i所在的位置;servicetimei表示任务i所需要的执行用时;starti和endi表示任务i的开始时间和结束时间;arrivei和finishi表示车辆在执行到任务i时的到达时间和完成时间。
[0052]
步骤22:使用可行解solution初始化种群个体,包括蚂蚁种群at和蚁狮种群al。
[0053]
步骤23:计算每个可行解的成本函数值cost(sr),升序排序,选择排序后的其中前个种群个体作为蚁狮选择后个种群个体作为蚂蚁记录第一个蚁狮al1为最优个体s1,第一个蚁狮的成本函数值cost(s1)为全局最优函数值score
best
,第一个蚁狮的位置为全局最优运输方案s
best

[0054]
步骤24:执行蚁狮算法,遍历当前的蚂蚁集at,对于每个蚂蚁ati,使用轮盘赌算法选择一个对应的蚁狮alj。
[0055]
步骤25:每个蚂蚁准备进行游走前,计算该蚂蚁所选j号蚁狮在本轮t的陷阱trap范围:
[0056][0057]
其中,d
min
和d
min
分别表示求解空间的下界和上界;表示第j号蚁狮在第t轮的位置;ratio是迭代轮次t的函数:
[0058][0059]
由于蚂蚁在蚁狮的陷阱中越陷越深,所以蚁狮的陷阱缩放比例ratio总是随着迭代的轮数逐渐减小的,因此蚂蚁的随机游走范围也会逐渐减小;随后蚂蚁根据陷阱范围和迭代总轮数t进行随机游走;
[0060]
此时蚂蚁ati的随机游走位置x即为:
[0061][0062]
其中,表示蚂蚁ati在第t轮时,第k维上的位置;ai和bi表示第i个变量随机游走的最小值与最大值;和表示蚁狮alj在第t次迭代的陷阱范围最小值与最大值;
[0063][0064]
其中,x
real
表示本轮算法中蚂蚁所在的位置;ave()是平均值函数,表示求传入ave()中所有参数的平均值;x
best
表示蚂蚁围绕全局最优蚁狮进行随机游走的位置,x
random
表示蚂蚁围绕本轮所选蚁狮进行随机游走的位置。
[0065]
步骤26:随机游走结束后,应当根据设定的上下边界进行规范化,防止越界现象。
[0066]
步骤27:未达到优化目标或迭代次数之前,重复执行步骤23、24、25和26;在达到优化目标或者完成指定的迭代次数之后,执行步骤28。
[0067]
步骤28:算法结束,获得当前全局最优运输方案s
best
和其对应的全局最优函数值score
best

[0068]
步骤3:将全局最优运输方案s
best
重构解析为具体每个车辆的运输目标与路径,如车辆i:0

ga

gb

。如图4所示,具体包括:
[0069]
步骤31:获取一个配送序列sr=[g1,g2,g3…gn
];
[0070]
步骤32:遍历配送序列,且设定当前配送序列的序号为1;
[0071]
步骤33:以车辆角度对每一辆车检查分配情况,设定当前车辆为车辆1,当前序号任务需求货物数是否被第一辆车装下,若当前车辆已载货物量加上当前序号任务需求货物数小于等于当前车辆载重,则该货物被分配给当前车辆;若已载货物加上当前序号任务需求货物数大于当前车辆载重,则将当前车辆号加1,重新执行本步骤;
[0072]
步骤34:当前配送序列的序号加1;
[0073]
步骤35:若当前配送序列的序号小于任务总数n,则跳转步骤33;否则继续步骤36;
[0074]
步骤36:完成了解决方案的序列解码,得到的结果应该是:
[0075]
车辆1:0

ga→
gb→
gc→0[0076]
车辆2:0

gd→
ge→
gf→gg
→0[0077]
车辆3:

[0078]
实施例2
[0079]
一种基于蚁狮算法的车辆调度系统,包括如下模块:
[0080]
实施例3
[0081]
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例1所述基于蚁狮算法的车辆调度方法。
[0082]
实施例4
[0083]
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现实施例1所述基于蚁狮算法的车辆调度方法。
[0084]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0085]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0086]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0087]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0088]
由技术常识可知,本发明可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。
[0089]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献