1.本发明涉及机器人运输路径规划技术领域,更具体地,涉及一种带时间窗的机器人物流运输调度方法、系统设备及存储介质。
背景技术:2.物流运输成本是企业生产成本的重要构成,降低物流运输成本能降低运营成本,促进企业经济效益的提高。现有商业应用中已见企业采用机器人进行物流运输,优化物流运输调度,有效地提高运输效率、降低运输成本。
3.在一个交通网络中,使用多台机器人向多个客户运送货物,每个客户有需求量、收货时间窗要求,每个客户恰好由一台机器人送货;使用一个配送中心,配送中心使用多台相同类型的机器人为若干客户送货,每台机器人有容量约束;机器人从配送中心出发,把货物运送到客户,最后返回到配送中心。该场景中存在一个路径规划问题,如何将送货任务分配给各机器人,并为每台机器人确定运输路径,使总的运输距离最短。
4.现有技术已公开了多种解决该路径规划问题的方法,如引入时间窗的概念,建立对应模型,但存在收敛能力差、寻优效率低等问题。
技术实现要素:5.本发明为克服上述现有技术所述的收敛能力差、寻优效率低的缺陷,提供一种带时间窗的机器人物流运输调度方法、系统、设备及存储介质。
6.为解决上述技术问题,本发明的技术方案如下:
7.第一方面,一种带时间窗的机器人物流运输调度方法,包括以下步骤:
8.s1、建立带时间窗的机器人物流运输调度问题的数学模型;所述数学模型表达式为:
[0009][0010]
s.t.
[0011][0012][0013][0014][0015]
[0016][0017]
startj≤arivej≤end
j (8)
[0018][0019][0020]
其中,d表示运输成本;c1表示单台机器人成本;vn表示使用的机器人数量;k为配送中心拥有的机器人集合;n为需要配送服务的m个顾客点的集合,n={1,2,...,m};v={0}∪n,0表示配送中心;vk表示机器人k访问顾客的集合;i、j表示顾客编号;是一个决策变量,表示机器人k服务顾客i以后是否服务顾客j;当机器人k服务完顾客i后直接服务顾客j时,否则,否则,表示顾客i是否被机器人k服务;当顾客i由机器人k服务时,否则,q表示机器人装载能力约束;qi表示顾客i的需求量,且q0=0;c
ij
表示从顾客i与顾客j之间的距离;arivej表示机器人到达顾客j的时间;startj表示顾客j允许的最早开始服务时间;endj表示顾客j允许的最迟开始服务时间;时间窗约束要求配送机器人必须在时间范围[startj,endj]内到达顾客j;容量约束要求配送机器人必须满足顾客j的货物需求量;
[0021]
s2、初始化参数,令迭代次数t=1,加载配送中心、顾客及配送机器人的具体数据,将所有蚂蚁的出发点设置为配送中心节点0;
[0022]
s3、第k只蚂蚁从配送中心节点0出发;其中,k=1,2,
…
,n;n表示蚂蚁总数量;
[0023]
s4、由第k只蚂蚁构建一条完整路径,具体为:
[0024]
s4-1、计算转移控制因子;
[0025]
s4-2、计算蚂蚁k访问的下一个节点:对于第k只蚂蚁,按式(11)计算下一个访问的节点j,其中,k=1,2...,n:
[0026][0027]
其中,j点是满足容量及时间窗约束且是未被蚂蚁k访问过的节点;τ
ij
表示节点i到节点j路径上的信息素浓度;η
ij
=1/c
ij
为启发函数,表示蚂蚁从节点i转移到节点j的期望程度;waitj=max{(start
j-arivej),h}表示节点j或机器人的等待时间;当startj>arivej时,waitj表示机器人需等待的时间;当startj<arivej时,表示节点j需等待的时间;当startj=arivej时,h为一较小的正数,否则h=0;widthj=end
j-startj表示节点j的时间窗宽度;表示蚂蚁k从节点i出发后可以访问的节点集合,该节点集合同时满足载重量和时间窗约束;α、β、γ、δ分别表示信息素重要程度因子、能见度重要程度因子、时间窗宽度重要程度因子和等待时间重要程度因子;为选择概率,表示蚂蚁k从节点i移动到节点j的概率;
[0028]
s4-3、判断第k只蚂蚁是否遍历完所有节点:若完成转步骤s4-4;否则返回执行步骤s4-2;
[0029]
s4-4、计算局部信息素增量、执行信息素扩散策略和更新局部信息素,进一步包括:
[0030]
s4-4-1、计算局部信息素增量当第k只蚂蚁完成当前迭代时,对蚂蚁k经过的路径释放信息素,对节点i=1,2,...,m;j=1,2,...,m,i≠j,则按式(12)更新蚂蚁所经过路径的信息素增量:
[0031][0032]
其中,lk为此次迭代中第k只蚂蚁所走路径总长度;q1为一预设正常数;
[0033]
s4-4-2、执行信息素扩散策略;
[0034]
s4-4-3、更新局部信息素,对节点i=1,2,...,m;j=1,2,...,m,i≠j,按式(13)更新计算节点i、j之间的局部信息素浓度
[0035][0036]
其中,ρ
l
表示局部信息素挥发因子,0<ρ
l
<1;
[0037]
s4-5、判断当代所有蚂蚁是否执行完搜索过程:若是则执行步骤s5;否则返回执行步骤s3;
[0038]
s5、优化全局配送路径,具体步骤包括:
[0039]
s5-1、将当代蚂蚁搜索到的最优配送路径与当前全局最优配送路径比较,选取目标函数值更小的作为当前全局最优配送路径;
[0040]
s5-2、采用2-opt方法优化当前全局最优配送路径,对当前全局最优配送路径重复n1次下述操作:随机选取路径中不相连的两个节点,将两个节点之间的路径翻转过来获得新路径,若翻转后得到的路径优于当前全局最优配送路径,则更新当前全局最优配送路径;
[0041]
s5-3、采用交换策略优化全局最优配送路径,对当前全局最优配送路径重复n2次下述操作:随机选取路径中的两个节点,将两个节点交换位置,若交换后的路径优于当前全局最优配送路径,则更新当前全局最优配送路径;
[0042]
s6、优化局部配送路径,具体步骤包括:
[0043]
s6-1、解码,将当前全局最优配送路径解码得到从配送中心0出发的多条局部配送路径,具体操作为:将当前全局最优配送路径的第1个节点添加到第1条局部配送路径中,检查这条路径是否满足载重量约束和时间窗约束,检查完若发现满足约束,则把当前全局最优配送路径的第2个节点添加到第1条局部配送路径中;
[0044]
重复上述操作,直至发现不满足约束条件,则认为局部配送路径1解码完毕;
[0045]
同理,继续依次对当前全局最优配送路径的剩余节点进行解码,得到剩余局部配送路径;
[0046]
s6-2、采用2-opt方法优化每条局部配送路径,对每条局部配送路径重复n3次下述操作:随机选取路径中不相连的两个节点,将两个节点之间的路径翻转过来获得新路径,若反转后得到的路径优于局部配送路径,则更新局部配送路径;
[0047]
s6-3、采用交换策略优化每条局部配送路径,对每条局部配送路径重复n4次下述操作:随机选取路径中的两个节点,将两个节点交换位置,若交换后的路径优于局部配送路径,则更新局部配送路径;
[0048]
s6-4、编码,将多条局部配送路径按步骤s6-1解码的顺序重新连接成一条完整配送路径,并且更新当前全局最优配送路径;
[0049]
s7、更新全局信息素浓度、限定全局信息素浓度上下限,具体包括:
[0050]
s7-1、更新全局信息素浓度,进一步包括:
[0051]
s7-1-1、计算本次迭代中所有蚂蚁的运输成本的d
mean
,d
mean
表达式如式(14):
[0052][0053]
其中,dk表示本次迭代中第k只蚂蚁的运输成本;
[0054]
s7-1-2、计算其中,表示最优蚂蚁所经过路径上的信息素增量,所述最优蚂蚁为这一代运输成本最少的蚂蚁;
[0055]
s7-1-3、计算其中,表示运输成本大于这一代最优蚂蚁的运输成本、但却小于运输成本平均值的蚂蚁,其经过路径上的信息素增量;
[0056]
s7-1-4、计算其中,表示运输成本大于这一代运输成本平均值的蚂蚁,其经过路径上的信息素增量;
[0057]
s7-1-5、计算τ
ij
(t+1),对节点i=1,2,...,m;j=1,2,...,m;i≠j,按式(15)更新计算节点i、j之间的信息素浓度τ
ij
(t+1):
[0058][0059]
其中,ρg(t)为第t代全局自适应挥发因子;
[0060]
s7-2、限定全局信息素浓度上下限,按式(16)限定全局信息素浓度大小:
[0061][0062]
其中,τ
min
为全局信息素浓度最小值;τ
max
为全局信息素浓度最大值;
[0063]
s8、计算自适应挥发因子;
[0064]
s9、执行信息素回滚机制,当算法陷入局部最优时,触发信息素回滚机制,将信息素回滚至之前的值,信息素回滚机制如式(17)所示:
[0065][0066]
其中,r_max为最大连续成本保持不变次数;
[0067]
s10、判断迭代次数是否达到最大:若迭代次数达到最大,则输出当前解并结束运行;否则,更新迭代次数t=t+1,返回执行步骤s3。
[0068]
第二方面,一种带时间窗的机器人物流运输调度系统,应用第一方面提出的一种
带时间窗的机器人物流运输调度方法,包括:
[0069]
数据采集模块,用于获取配送中心、顾客及配送机器人的数据信息;
[0070]
模型建立模块,用于以运输成本最小为目标函数,构建带时间窗的机器人物流运输调度问题的数学模型;
[0071]
计算模块,用于采用蚁群算法,以配送中心作为出发节点,对所述数学模型求解;所述蚁群算法包括构建蚂蚁路径、计算蚂蚁访问的下一个节点、优化全局配送路径、优化局部配送路径、更新全局信息素浓度及限定全局信息素浓度上下限、计算全局自适应挥发因子和执行信息素回滚机制;
[0072]
输出模块,用于判断当前迭代次数是否达到预设次数,若是则输出当前解,否则返回执行新一轮迭代指令至计算模块。
[0073]
第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的方法。
[0074]
第四方面,一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如第一方面所述的方法。
[0075]
与现有技术相比,本发明技术方案的有益效果是:本发明针对现有的带时间窗的机器人物流运输调度问题求解方法存在收敛能力差、寻优效率低等问题,提出一种改进的蚁群算法求解,分别提出改进的全局信息素更新规则、改进的局部信息素扩散策略和自适应信息素挥发系数。本发明所述方法具有较好的全局搜索能力和局部搜索能力,具有较快的收敛速度,能够较好地解决实际问题。
附图说明
[0076]
图1为实施例1所述带时间窗的机器人物流运输调度方法的流程图;
[0077]
图2为实施例2最优配送路径示意图;
[0078]
图3为实施例3所述带时间窗的机器人物流运输调度系统的架构图。
具体实施方式
[0079]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0080]
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0081]
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0082]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0083]
实施例1
[0084]
本实施例提出一种带时间窗的机器人物流运输调度方法,参阅图1,包括:
[0085]
s1、建立带时间窗的机器人物流运输调度问题的数学模型;所述数学模型表达式为:
[0086][0087]
s.t.
[0088][0089][0090][0091][0092][0093][0094]
startj≤arivej≤end
j (8)
[0095][0096][0097]
其中,d表示运输成本;c1表示单台机器人成本;vn表示使用的机器人数量;k为配送中心拥有的机器人集合;n为需要配送服务的m个顾客点的集合,n={1,2,...,m};v={0}∪n,0表示配送中心;vk表示机器人k访问顾客的集合;i、j表示顾客编号;是一个决策变量,表示机器人k服务顾客i以后是否服务顾客j;当机器人k服务完顾客i后直接服务顾客j时,否则,否则,表示顾客i是否被机器人k服务;当顾客i由机器人k服务时,否则,q表示机器人装载能力约束;qi表示顾客i的需求量,且q0=0;c
ij
表示从顾客i与顾客j之间的距离;arivej表示机器人到达顾客j的时间;startj表示顾客j允许的最早开始服务时间;endj表示顾客j允许的最迟开始服务时间;时间窗约束要求配送机器人必须在时间范围[startj,endj]内到达顾客j;容量约束要求配送机器人必须满足顾客j的货物需求量;
[0098]
s2、初始化参数,令迭代次数t=1,加载配送中心、顾客及配送机器人的具体数据,将所有蚂蚁的出发点设置为配送中心节点0;
[0099]
s3、第k只蚂蚁从配送中心节点0出发;其中,k=1,2,
…
,n;n表示蚂蚁总数量;
[0100]
s4、由第k只蚂蚁构建一条完整路径,具体为:
[0101]
s4-1、计算转移控制因子;
[0102]
s4-2、计算蚂蚁k访问的下一个节点:对于第k只蚂蚁,按式(11)计算下一个访问的节点j,其中,k=1,2...,n:
[0103]
[0104]
其中,j点是满足容量及时间窗约束且是未被蚂蚁k访问过的节点;τ
ij
表示节点i到节点j路径上的信息素浓度;η
ij
=1/c
ij
为启发函数,表示蚂蚁从节点i转移到节点j的期望程度;waitj=max{(start
j-arivej),h}表示节点j或机器人的等待时间;当startj>arivej时,waitj表示机器人需等待的时间;当startj<arivej时,表示节点j需等待的时间;当startj=arivej时,h为一较小的正数,否则h=0;widthj=end
j-startj表示节点j的时间窗宽度;表示蚂蚁k从节点i出发后可以访问的节点集合,该节点集合同时满足载重量和时间窗约束;α、β、γ、δ分别表示信息素重要程度因子、能见度重要程度因子、时间窗宽度重要程度因子和等待时间重要程度因子;为选择概率,表示蚂蚁k从节点i移动到节点j的概率;
[0105]
s4-3、判断第k只蚂蚁是否遍历完所有节点:若完成转步骤s4-4;否则返回执行步骤s4-2;
[0106]
s4-4、计算局部信息素增量、执行信息素扩散策略和更新局部信息素,进一步包括:
[0107]
s4-4-1、计算局部信息素增量当第k只蚂蚁完成当前迭代时,对蚂蚁k经过的路径释放信息素,对节点i=1,2,...,m;j=1,2,...,m,i≠j,则按式(12)更新蚂蚁所经过路径的信息素增量:
[0108][0109]
其中,lk为此次迭代中第k只蚂蚁所走路径总长度;q1为一预设正常数;
[0110]
s4-4-2、执行信息素扩散策略;
[0111]
s4-4-3、更新局部信息素,对节点i=1,2,...,m;j=1,2,...,m,i≠j,按式(13)更新计算节点i、j之间的局部信息素浓度
[0112][0113]
其中,ρ
l
表示局部信息素挥发因子,0<ρ
l
<1;
[0114]
s4-5、判断当代所有蚂蚁是否执行完搜索过程:若是则执行步骤s5;否则返回执行步骤s3;
[0115]
s5、优化全局配送路径,具体步骤包括:
[0116]
s5-1、将当代蚂蚁搜索到的最优配送路径与当前全局最优配送路径比较,选取目标函数值更小的作为当前全局最优配送路径;
[0117]
s5-2、采用2-opt方法优化当前全局最优配送路径,对当前全局最优配送路径重复n1次下述操作:随机选取路径中不相连的两个节点,将两个节点之间的路径翻转过来获得新路径,若翻转后得到的路径优于当前全局最优配送路径,则更新当前全局最优配送路径;
[0118]
s5-3、采用交换策略优化全局最优配送路径,对当前全局最优配送路径重复n2次下述操作:随机选取路径中的两个节点,将两个节点交换位置,若交换后的路径优于当前全局最优配送路径,则更新当前全局最优配送路径;
[0119]
s6、优化局部配送路径,具体步骤包括:
[0120]
s6-1、解码,将当前全局最优配送路径解码得到从配送中心0出发的多条局部配送路径,具体操作为:将当前全局最优配送路径的第1个节点添加到第1条局部配送路径中,检查这条路径是否满足载重量约束和时间窗约束,检查完若发现满足约束,则把当前全局最优配送路径的第2个节点添加到第1条局部配送路径中;
[0121]
重复上述操作,直至发现不满足约束条件,则认为局部配送路径1解码完毕;
[0122]
同理,继续依次对当前全局最优配送路径的剩余节点进行解码,得到剩余局部配送路径;
[0123]
s6-2、采用2-opt方法优化每条局部配送路径,对每条局部配送路径重复n3次下述操作:随机选取路径中不相连的两个节点,将两个节点之间的路径翻转过来获得新路径,若反转后得到的路径优于局部配送路径,则更新局部配送路径;
[0124]
s6-3、采用交换策略优化每条局部配送路径,对每条局部配送路径重复n4次下述操作:随机选取路径中的两个节点,将两个节点交换位置,若交换后的路径优于局部配送路径,则更新局部配送路径;
[0125]
s6-4、编码,将多条局部配送路径按步骤s6-1解码的顺序重新连接成一条完整配送路径,并且更新当前全局最优配送路径;
[0126]
s7、更新全局信息素浓度、限定全局信息素浓度上下限,具体包括:
[0127]
s7-1、更新全局信息素浓度,进一步包括:
[0128]
s7-1-1、计算本次迭代中所有蚂蚁的运输成本的d
mean
,d
mean
表达式如式(14):
[0129][0130]
其中,dk表示本次迭代中第k只蚂蚁的运输成本;
[0131]
s7-1-2、计算其中,表示最优蚂蚁所经过路径上的信息素增量,所述最优蚂蚁为这一代运输成本最少的蚂蚁;
[0132]
s7-1-3、计算其中,表示运输成本大于这一代最优蚂蚁的运输成本、但却小于运输成本平均值的蚂蚁,其经过路径上的信息素增量;
[0133]
s7-1-4、计算其中,表示运输成本大于这一代运输成本平均值的蚂蚁,其经过路径上的信息素增量;
[0134]
s7-1-5、计算τ
ij
(t+1),对节点i=1,2,...,m;j=1,2,...,m;i≠j,按式(15)更新计算节点i、j之间的信息素浓度τ
ij
(t+1):
[0135][0136]
其中,ρg(t)为第t代全局自适应挥发因子;
[0137]
s7-2、限定全局信息素浓度上下限,按式(16)限定全局信息素浓度大小:
[0138][0139]
其中,τ
min
为全局信息素浓度最小值;τ
max
为全局信息素浓度最大值;
[0140]
s8、计算自适应挥发因子;
[0141]
s9、执行信息素回滚机制。当算法陷入局部最优时,触发信息素回滚机制,将信息素回滚至之前的值,信息素回滚机制如式(17)所示:
[0142][0143]
其中,r_max为最大连续成本保持不变次数;
[0144]
s10、判断迭代次数是否达到最大:若迭代次数达到最大,则输出当前解并结束运行;否则,更新迭代次数t=t+1,返回执行步骤s3。
[0145]
相较于现有技术,本实施例所述方法具有更优的全局搜索能力和局部搜索能力,收敛速度更快,能够更好的及时解决路径规划问题。
[0146]
作为非限制性示例,所述机器人包括但不限于车辆、飞行器。
[0147]
作为优选实施例,所述步骤s4-1中,转移控制因子r0表达式为:
[0148][0149]
作为优选实施例,所述步骤s4-4-2中的执行信息素扩散策略,进一步包括:
[0150]
当第k只蚂蚁完成当前迭代时,对蚂蚁k所经过路径的相邻路径扩散信息素,对节点i∈m1,j∈mi\{i},按式(19)更新计算蚂蚁所经过路径的相邻路径的信息素增量:
[0151][0152]
其中,m1表示蚂蚁k所经过路径的节点的集合;r1表示所有蚂蚁在任意节点扩散信息素的范围,r1>0;mi表示以节点i为中心,以r1为半径范围内所有节点的集合;mi表示集合mi内元素个数;表示以节点i为中心,以r1为半径范围,节点i与其他所有节点之间的距离均值。
[0153]
在一优选实施例中,所述步骤s7-1-2中的计算进一步包括:
[0154]
对于运输成本为这一代最少的蚂蚁称为最优蚂蚁,则按式(20)更新最优蚂蚁所经过路径上的信息素增量:
[0155]
[0156]
其中,λ1为大于0的常数;t为最大迭代次数;是上均匀分布的随机数;d
bestroute
表示当前全局最优路径的运输成本;d
nowbestroute
为本次迭代得到的最优路径的运输成本。
[0157]
在一优选实施例中,所述步骤s7-1-3中的计算进一步包括:
[0158]
对于运输成本大于这一代最优蚂蚁的运输成本,但却小于运输成本平均值的蚂蚁,则按式(21)更新蚂蚁所经过路径上的信息素增量
[0159][0160]
其中,λ2为大于0的预设常数。
[0161]
在一优选实施例中,所述步骤s7-1-4中的计算进一步包括:
[0162]
对于运输成本大于这一代运输成本平均值的蚂蚁,则按式(22)更新蚂蚁所经过路径上的信息素增量
[0163][0164]
其中,λ3为大于0的预设常数。
[0165]
在一优选实施例中,所述步骤s8中的计算自适应挥发因子,进一步包括:第t+1代全局自适应挥发因子ρg(t+1)按式(23)计算:
[0166][0167]
其中,λ为信息素挥发速率系数,0<λ<1;ρ
max
为ρg的最大值;ρ
min
为ρg的最小值。
[0168]
实施例2
[0169]
为证明实施例1提出的一种带时间窗的机器人物流运输调度方法更具有优越性,本实施例对实施例1提出的一种带时间窗的机器人物流运输调度方法进行验证。
[0170]
针对最大运输车辆数为25、每辆车的最大载重200kg、50个客户点的带时间窗的机器人物流运输调度问题,采用实施例1所述方法求解。
[0171]
本实施例中的配送中心,以及客户的坐标位置、需求量、左时间窗、右时间窗、服务时间等信息如表1所示。
[0172]
表1顾客信息一览表
[0173]
[0174]
[0175]
[0176][0177]
一种带时间窗的机器人物流运输调度方法,包括以下步骤:
[0178]
s1、建立带时间窗的机器人物流运输调度问题的数学模型:
[0179][0180]
s.t.
[0181][0182][0183][0184]
[0185][0186][0187]
startj≤arivej≤end
j (8)
[0188][0189][0190]
其中,d表示运输成本;c1=1200表示单台车辆成本;vn(单位:辆)表示使用的车辆数量;k=25(单位:辆)为配送中心拥有的车辆数量;n为需要配送服务的m=50个顾客点的集合,n={1,2,...,m};v={0}∪n,0表示配送中心;
[0191]vk
表示车辆k访问顾客的集合;i,j表示顾客编号;是一个决策变量,表示车辆k服务顾客i以后是否服务顾客j;当车辆k服务完顾客i后直接服务顾客j时,否则,否则,表示顾客i是否被车辆k服务;当顾客i由车辆k服务时,否则,q=200(单位:千克)表示车辆装载能力约束;
[0192]
qi(单位:千克)表示顾客i的需求量,且q0=0;c
ij
表示从顾客i与顾客j之间的距离;arivej(单位:分钟)表示车辆到达顾客j的时间;startj(单位:分钟)表示顾客j允许的最早开始服务时间;endj(单位:分钟)表示顾客j允许的最迟开始服务时间;时间窗约束要求配送车辆必须在时间范围[startj,endj]内到达顾客j;
[0193]
容量约束要求配送车辆必须满足顾客j的货物需求量。
[0194]
s2、初始化参数。令迭代次数t=1,加载配送中心、顾客及配送车辆的具体数据,将所有蚂蚁的出发点设置为配送中心节点0。
[0195]
s3、第k(k=1,2...,n)只蚂蚁从配送中心节点0出发。
[0196]
其中,n=20为蚂蚁总数量。
[0197]
s4、第k只蚂蚁构建一条完整路径。具体包括:
[0198]
s4-1、计算转移控制因子。按下式计算控制转移因子r0:
[0199][0200]
s4-2、计算蚂蚁k访问的下一个节点。对第k(k=1,2...,n)只蚂蚁,按式(11)计算下一个访问的节点j:
[0201][0202]
其中,j点必须是满足容量及时间窗约束且是未被蚂蚁k访问过的节点;τ
ij
表示节点i到节点j路径上的信息素浓度;η
ij
=1/c
ij
为启发函数,表示蚂蚁从节点i转移到节点j的期望程度;waitj=max{(start
j-arivej),h}表示节点j或车辆的等待时间;当startj>
arivej时,waitj表示车辆需等待的时间;当startj<arivej时,表示节点j需等待的时间;当startj=arivej时,h为一较小的正数,否则h=0;widthj=end
j-startj表示节点j的时间窗宽度;α=1、β=3、γ=2、δ=3分别表示信息素重要程度因子、能见度重要程度因子、时间窗宽度重要程度因子和等待时间重要程度因子;为选择概率,表示蚂蚁k从节点i移动到节点j的概率。
[0203]
s4-3、判断第k只蚂蚁是否遍历完所有节点,若完成转步骤s4-4;否则转步骤s4-2。
[0204]
s4-4、计算局部信息素增量、执行信息素扩散策略和更新局部信息素。进一步包括:
[0205]
s4-4-1、计算局部信息素增量当第k只蚂蚁完成当前迭代时,对蚂蚁k经过的路径释放信息素,对节点i=1,2,...,m;j=1,2,...,m,i≠j,则按式(12)更新蚂蚁所经过路径的信息素增量:
[0206][0207]
其中,lk为第k只蚂蚁此次迭代中所走路径总长度。q1=50。
[0208]
s4-4-2、执行信息素扩散策略。当第k只蚂蚁完成当前迭代时,对蚂蚁k所经过路径的相邻路径扩散信息素,对节点i∈m1,j∈mi\{i},按式(13)更新计算蚂蚁所经过路径的相邻路径的信息素增量:
[0209][0210]
其中,m1表示蚂蚁k所经过路径的节点的集合;r1=15表示所有蚂蚁在任意节点扩散信息素的范围;mi表示以节点i为中心,以r1为半径范围内所有节点的集合;mi表示集合mi内元素个数;表示以节点i为中心,以r1为半径范围,节点i与其他所有节点之间的距离均值。
[0211]
s4-4-3、更新局部信息素。对节点i=1,2,...,m;j=1,2,...,m,i≠j,按下式更新计算节点i、j之间的局部信息素浓度
[0212][0213]
其中,ρ
l
=0.3为局部信息素挥发因子。
[0214]
s4-5、判断当代是否所有蚂蚁执行完搜索过程,是则转步骤s5;否则转步骤s3。
[0215]
s5、优化全局配送路径。具体步骤包括:
[0216]
s5-1、将当代蚂蚁搜索到的最优配送路径与当前全局最优配送路径比较,取目标
函数值更小的作为当前全局最优配送路径。
[0217]
s5-2、采用2-opt方法优化当前全局最优配送路径。对当前全局最优配送路径重复n1=30次下述操作:随机选取路径中不相连的两个节点,将两个节点之间的路径翻转过来获得新路径,若翻转后得到的路径优于当前全局最优配送路径,则更新当前全局最优配送路径。
[0218]
s5-3、采用交换策略优化全局最优配送路径。对当前全局最优配送路径重复n2=35次下述操作:随机选取路径中的两个节点,将两个节点交换位置,若交换后的路径优于当前全局最优配送路径,则更新当前全局最优配送路径。
[0219]
s6、优化局部配送路径。具体步骤包括:
[0220]
s6-1、解码。将当前全局最优配送路径解码得到从配送中心0出发的多条局部配送路径,具体操作为:将当前全局最优配送路径的第1个节点添加到第1条局部配送路径中,检查这条路径是否满足载重量约束和时间窗约束,检查完若发现满足约束,于是把当前全局最优配送路径的第2个节点添加到第1条局部配送路径中。重复上述操作,直至发现不满足约束,则局部配送路径1解码完毕。同理,继续依次对当前全局最优配送路径的剩余节点进行解码,得到剩余局部配送路径。
[0221]
s6-2、采用2-opt方法优化每条局部配送路径。对每条局部配送路径重复n3=40次下述操作:随机选取路径中不相连的两个节点,将两个节点之间的路径翻转过来获得新路径,若反转后得到的路径优于局部配送路径,则更新局部配送路径。
[0222]
s6-3、采用交换策略优化每条局部配送路径。对每条局部配送路径重复n4=30次下述操作:随机选取路径中的两个节点,将两个节点交换位置,若交换后的路径优于局部配送路径,则更新局部配送路径。
[0223]
s6-4、编码。将多条局部配送路径按步骤s6-1解码的顺序重新连接成一条完整配送路径,并且更新当前全局最优配送路径。
[0224]
s7、更新全局信息素浓度、限定全局信息素浓度上下限。具体包括:
[0225]
s7-1、更新全局信息素浓度。进一步包括:
[0226]
s7-1-1、计算本次迭代中所有蚂蚁的运输成本的d
mean
。d
mean
按式(14)计算:
[0227][0228]
其中,dk表示本次迭代中第k只蚂蚁的运输成本。
[0229]
s7-1-2、计算对于运输成本为这一代最少的蚂蚁称为最优蚂蚁,则按下式更新最优蚂蚁所经过路径上的信息素增量:
[0230][0231]
其中,λ1=1.5;t=50为最大迭代次数;是上均匀分布的随机数;d
bestroute
为当前全局最优路径的运输成本;d
nowbestroute
为本次迭代得到的最优路
径的运输成本。
[0232]
s7-1-3、计算对于运输成本大于这一代最优蚂蚁的运输成本,但却小于运输成本平均值的蚂蚁,则按下式更新蚂蚁所经过路径上的信息素增量:第k只蚂蚁从节点i访问节点j
[0233]
其中,λ2=0.8。
[0234]
s7-1-4、计算对于运输成本大于这一代运输成本平均值的蚂蚁,则按下式更新蚂蚁所经过路径上的信息素增量:
[0235]
第k只蚂蚁从节点i访问节点j
[0236]
其中,λ3=0.5。
[0237]
s7-1-5、计算τ
ij
(t+1)。对节点i=1,2,...,m;j=1,2,...,m,i≠j,按式(15)更新计算节点i、j之间的信息素浓度τ
ij
(t+1):
[0238][0239]
其中,ρg(t)为第t代全局自适应挥发因子。
[0240]
s7-2、限定全局信息素浓度上下限。按式(16)限定全局信息素浓度大小:
[0241][0242]
其中,τ
min
=0.1为全局信息素浓度最小值;τ
max
=10为全局信息素浓度最大值。
[0243]
s8、计算全局自适应挥发因子。按下式计算第t+1代自适应挥发系数:
[0244][0245]
其中,λ=0.5为信息素挥发速率系数;ρ
max
=0.7;ρ
min
=0.3。
[0246]
s9、执行信息素回滚机制。当算法陷入局部最优时,触发信息素回滚机制,将信息素回滚至之前的值。信息素回滚机制如式(17)所示:
[0247][0248]
其中,r_max=20为最大连续成本保持不变次数。
[0249]
s10、判断迭代次数是否达到最大,若迭代次数达到最大,则输出当前解并结束运行;否则,迭代次数t=t+1,并转到步骤s3。
[0250]
最终,本实施例输出的最优配送路径如表2、图2所示,最优路径总长度为432.2km。
[0251]
表2最优配送路径
[0252]
配送车辆编号配送路径10
→
43
→
42
→
41
→
40
→
44
→
45
→
46
→
48
→
50
→
47
→
49
→
020
→
32
→
33
→
31
→
35
→
37
→
38
→
39
→
36
→
34
→
030
→
27
→
25
→
29
→
30
→
28
→
26
→
23
→
22
→
21
→1→
040
→5→3→7→8→
10
→
11
→9→6→4→2→
050
→
13
→
17
→
18
→
19
→
15
→
16
→
14
→
12
→
060
→
24
→
20
→0[0253]
实施例3
[0254]
本实施例提出一种带时间窗的机器人物流运输调度系统,参阅图3,应用实施例1所述的一种带时间窗的机器人物流运输调度方法,包括:
[0255]
数据采集模块,用于获取配送中心、顾客及配送机器人的数据信息;
[0256]
模型建立模块,用于以运输成本最小为目标函数,构建带时间窗的机器人物流运输调度问题的数学模型;
[0257]
计算模块,用于采用蚁群算法,以配送中心作为出发节点,对所述数学模型求解;所述蚁群算法包括构建蚂蚁路径、计算蚂蚁访问的下一个节点、优化全局配送路径、优化局部配送路径、更新全局信息素浓度及限定全局信息素浓度上下限、计算全局自适应挥发因子和执行信息素回滚机制;
[0258]
输出模块,用于判断当前迭代次数是否达到预设次数,若是则输出当前解,否则返回执行新一轮迭代指令至计算模块。
[0259]
实施例4
[0260]
本实施例提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现实施例1所述的一种带时间窗的机器人物流运输调度方法。
[0261]
实施例5
[0262]
本实施例提出一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行实施例1所述的一种带时间窗的机器人物流运输调度方法
[0263]
相同或相似的标号对应相同或相似的部件;
[0264]
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
[0265]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,包括但不限于将所述方法应用于车型、飞行型等机器人上。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。