基于模拟退火算法的AGV任务调度方法与流程

文档序号:23655400发布日期:2021-01-15 13:52阅读:259来源:国知局
基于模拟退火算法的AGV任务调度方法与流程

本发明属于自动化仓储系统任务调度领域,特别涉及一种基于模拟退火算法的agv任务调度方法。



背景技术:

本发明所涉及的自动化仓储系统是一种借助于自动引导车(即automatedguidedvehicle,agv)搬运可移动货架到仓库的拣选工作站进行人工拣选商品作业的新型现代化智能仓储系统。该系统已经在世界知名电商公司如亚马逊、京东、阿里得到了较为广泛的应用。

如图1所示,以上智能仓储系统通常采用网格布局,工作站分布在存储区周围。agv通过读取地面单元网格上附着的条码或二维码进行定位。agv由电池驱动,具有举升和原地旋转功能,可以在网格单元间直线行走。接到搬运指令后,agv行走至目标货架下方,将其举起后移至拣选站,待拣选作业结束后再将其送回到存储区原货架停放位置。系统中存在的agv数量可达数以百计。因此,如何指挥协调这些agv快速有效地完成货架搬运任务是一个挑战。

智能仓储系统性能的充分发挥离不开科学有效的任务调度方法。然而目前实际生产中,货架搬运任务在系统多个agv之间的分配调度大多基于仓库工作人员的经验或简单的调度规则。另一方面,文献中关于这种新型智能仓储系统任务调度的研究也极为鲜见。



技术实现要素:

本发明公开了一种基于模拟退火算法的agv任务调度方法,目的在于解决智能仓储系统中在多个agv之间科学合理地分配货架搬运任务的优化问题,目标为全部任务的完工时间最短。

为达到上述技术目的,本发明采用以下技术方案:

基于模拟退火算法的agv任务调度方法,包括步骤:

s1、获取agv总数r,每一个agvr在仓库地面上的位置坐标(xr,yr)和续航里程mr,货架搬运任务总数j,每一个待搬运任务j对应的的货架位置坐标(xj,yj),拣选工作站的位置坐标(xs,ys);其中,r=1,…,r;j=1,…,j;

s2、设置模拟退火算法的初始退火温度t0,温度下限值tmin,每一温度值下的迭代次数k,温度降低参数α;

s3、产生初始解:按照货架搬运任务j的编号从小到大顺序把每一任务随机分配给任意一个agvr,最终得到的每个agv所要承担的货架搬运的任务序列即为初始解,初始解为当前解;

s4、开始迭代,按照设定概率c1,c2,c3选择以下三种方法的一种产生候选解:

(a.1)在完工时间最长的agv任务序列中,随机选择一段子序列,将其逆序排列;

(a.2)在完工时间最长的agv任务序列中,随机选择一项任务j,然后随机选择其它一个agv的任务序列,并从中随机选择一项任务j′,交换任务j和任务j′;

(a.3)选择完工时间最长的agv任务序列中的最后一项任务j”,然后随机选择其它一个agv的任务序列,将任务j”添加到该序列的末尾;

s5、判断候选解是否可行,如果是,迭代次数l=l+1;否则返回步骤s4;

s6、判断是否接受候选解,如果是,将当前解更新为候选解;否则转步骤s7;

s7、判断是否完成k次迭代,若l<k,则转步骤s4进行下一次迭代,否则转步骤s8;

s8、判断是否满足终止条件,如果是,输出当前解,否则降低温度值并跳转至步骤s4,开始新一轮迭代搜索,直至满足终止条件。

进一步的,所述步骤s1中,agv、货架、拣选工作站在仓库地面的位置横纵坐标分别指的是其所处地面单元格的行和列的编号。

进一步的,所述步骤s4中,任一agvr的完工时间ftr等于该agv完成任务序列中所有nr个任务的总行走距离tdr除以其平均行走速度v;

agvr的tdr包括其从初始位置行走至任务序列中第一个任务所对应货架r1的最短距离d1,搬运每一货架ri至拣选工作站之间的往返最短距离以及agvr在每一对相邻任务对应货架ri和ri′间的最短行走距离

d1等于agvr和货架r1之间的曼哈顿距离:等于2倍的货架ri和拣选站之间的曼哈顿距离:

等于货架ri和相邻任务对应货架ri′之间的曼哈顿距离:其中i=1,…,nr;i′=1,…,nr;i≠i′。

更进一步的,所述步骤s5中,判断候选解可行的条件为,每一个agvr的总行走距离tdr都不超过其续航里程mr,候选解对应的目标函数值c′max=max{ft1,…,ftr},agv中完成任务序列所需的最长时间即为所有agv完成任务的时间。

更进一步的,所述步骤s6中,候选解的目标函数值为c′max,当前解的目标函数值为cmax,根据以下规则判断是否接受候选解:

(b.1)若c′max≤cmax,则接受候选解;

(b.2)若c′max>cmax,计算概率值其中t为当前退火温度,产生一个在区间(0,1)内的随机数rand,若c>rand,则接受,否则不接受。

进一步的,所述步骤s8中,终止条件为:如果当前退火温度t≤tmin,则终止计算;新的退火温度等于αt,其中α是一个位于(0,1)区间内的正数。

基于模拟退火算法的agv任务调度方法的数学模型,包括:

minimize

cmax(1)

subjectto:

cmax≥0(12)

其中,p为每个agv的任务序列中的任务编号,p为一个agv任务序列中的最大任务数量,p=j;djj′为任务j与j′所对应货架之间的最短距离;drj为agvr的起点与任务j所对应货架之间的最短距离;hj为任务j对应货架与拣货站之间的最短距离;mr与agvr当前的电量水平有关,以仓储系统地面单元格的边长为单位;xjpr表示一个0-1决策变量,如果任务j是agvr的第p个任务则取值为1,否则为0;spr为agvr的第p个任务的开始时间;cpr为agvr的第p个任务的完成时间;cmax为系统所有货架搬运任务的完工时间;

其中,式(1)为agv任务调度的目标函数,即最小化所有货架搬运任务的完工时间;式(2)要求每个任务都有agv执行并且只执行一次;式(3)规定每个agv任务序列中的每个位置最多安排一项任务;式(4)确保每个agv连续执行其所分配的搬运任务;式(5)定义了每个agv执行第一个任务的开始时间;式(6)表示每个agv开始执行任务序列中第二项及之后任务的时间不早于前一项任务的完成时间加上agv在这两项任务对应货架之间的最短行走时间;式(7)定义了每个agv执行的每项任务的最早完成时间;式(8)表示系统所有任务的完工时间不早于最后一项任务的完成时间;式(9)要求每个agv完成所有分配任务的总行走距离不超过其当前续航里程;式(10)声明了xjpr为0-1二元变量;式(11)和(12)声明了spr、cpr、cmax为非负变量。

有益效果:本发明公开的基于模拟退火算法的agv任务调度方法,能够通过多次迭代搜索快速求解智能仓储环境下的货架搬运任务在多个agv之间的分配调度问题,获得完工时间最短或近似最短的调度方案。数值试验结果表明,该方法可以求解不同规模的agv任务调度问题,所得调度方案可行并具有一定的先进性。

附图说明

图1为本发明所述的智能仓储系统局部平面示意图;

图2为本发明公开的agv任务调度方法的流程图;

图3为模拟退火算法中产生候选解的三种方法的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施案例进行说明。

本发明公开了一种基于模拟退火算法的agv任务调度方法,用于智能仓储系统环境下货架搬运任务在多个agv之间的分配调度,能够获得任务完工时间最短或近似最短的调度方案。描述此agv任务调度问题的数学优化模型如下:

minimize

cmax(1)

subjectto:

cmax≥0(12)

上述模型中:j,j′为任务编号,j为任务总数;r为agv编号,r为agv总数;p为每个agv的任务序列中的任务编号,p为一个agv任务序列中的最大任务数量,p=j;djj′为任务j与j′所对应货架之间的最短距离;drj为agvr的起点与任务j所对应货架之间的最短距离;hj为任务j对应货架与拣货站之间的最短距离;mr为agvr的续航里程,mr与agvr当前的电量水平有关,以仓储系统地面单元格的边长为单位;xjpr表示一个0-1决策变量,如果任务j是agvr的第p个任务则取值为1,否则为0;spr为agvr的第p个任务的开始时间;cpr为agvr的第p个任务的完成时间;cmax为系统所有货架搬运任务的完工时间。

上述模型中:式(1)为agv任务调度问题的目标函数,即最小化所有货架搬运任务的完工时间;式(2)要求每个任务都有agv执行并且只执行一次;式(3)规定每个agv任务序列中的每个位置最多安排一项任务;式(4)确保每个agv连续执行其所分配的搬运任务;式(5)定义了每个agv执行第一个任务的开始时间;式(6)表示每个agv开始执行序列中第二项及之后任务的时间不早于前一项任务的完成时间加上agv在这两项任务对应货架之间的最短行走时间;式(7)定义了每个agv执行的每项任务的最早完成时间;式(8)表示系统所有任务的完工时间不早于最后一项任务的完成时间;式(9)要求每个agv完成所有分配任务的总行走距离不超过其当前续航里程;式(10)声明了xjpr为0-1二元变量;式(11)和(12)声明了spr、cpr、cmax为非负变量。

基于上述数学模型,本发明公开的基于模拟退火算法的agv任务调度方法的流程如图2所示,其具体实施步骤如下:

s1、获取agv总数r,每一个agvr(r=1,…,r)在仓库地面上的位置坐标(xr,yr)和续航里程mr,货架搬运任务总数j,每一个待搬运任务j(j=1,…,j)对应的货架位置坐标(xj,yj),拣选工作站的位置坐标(xs,ys);

所述agv、货架、拣选工作站在仓库地面的位置横纵坐标分别指的是其所处地面单元格的行和列的编号。

s2、设置模拟退火算法的初始退火温度t0,温度下限值tmin,每一温度值下的迭代次数k,温度降低参数α;

s3、产生初始解:按照货架搬运任务j的编号从小到大顺序把每一任务随机分配给任意一个agvr,最终得到的每个agv所要承担的货架搬运任务序列即为初始解,初始解为当前解。

s4、开始迭代,产生候选解:按照设定概率c1,c2,c3选择以下三种方法的一种产生候选解,如图3所示:

(a.1)在完工时间最长的agv任务序列中,随机选择一段子序列,将其逆序排列;参照图3(a),在当前解中完工时间最长的agv5的任务序列{10,15,5,11,12}中随机挑选一段子序列{15,5,11,12},将其逆排序为{12,11,5,15},即候选解中agv5的任务序列为{10,12,11,5,15};

(a.2)在完工时间最长的agv任务序列中,随机选择一项任务j,然后随机选择其它一个agv的任务序列,并从中随机选择一项任务j′,交换任务j和任务j′;参照图3(b),在当前解中完工时间最长的agv5的任务序列{10,12,20,5,15}中随机选择任务20,然后随机选择agv2任务序列{7,11,18}中的任务11,交换这两项任务,即候选解中avg2的任务序列为{7,20,18},agv5的任务序列为{10,12,11,5,15};

(a.3)选择完工时间最长的agv任务序列中的最后一项任务j,然后随机选择其它一个agv的任务序列,将任务j添加到该序列的末尾;参照图3(c),选择当前解中完工时间最长的agv5的任务序列{10,12,11,5,15,18}中的最后一项任务18,然后随机选择agv2的任务序列{7,20},将agv5的任务18添加到agv2任务序列的末尾,即候选解中agv5的任务序列为{10,12,11,5,15},avg2的任务序列为{7,20,18}。

所述任一agvr的完工时间ftr等于该agv完成任务序列中所有nr个任务的总行走距离tdr除以其平均行走速度v,其中,agv的平均行走速度v为每单位时间1个单元格边长;

agvr的tdr包括其从初始位置行走至任务序列中第一个任务所对应货架r1的最短距离d1,搬运每一货架ri至拣选工作站之间的往返最短距离以及agvr在每一对相邻任务对应货架ri和ri′间的最短行走距离

d1等于agvr和货架r1之间的曼哈顿距离:等于2倍的货架ri和拣选站之间的曼哈顿距离:

等于货架ri和相邻任务对应货架ri′之间的曼哈顿距离:其中i=1,…,nr;i′=1,…,nr;i≠i′。

s5、判断候选解是否可行,如果是,迭代次数l=l+1,否则返回步骤s4;

所述可行解的判断条件为:如果每一个agvr的总行走距离tdr都不超过其续航里程mr,那么该候选解为可行解,其对应的目标函数值(即所有任务的完工时间)c′max=max{ft1,…,ftr}。

s6、判断是否接受候选解,如果是,将当前解更新为候选解;

所述接受候选解的判断条件为:候选解的目标函数值为c′max,当前解的目标函数值为cmax,根据以下规则判断是否接受候选解:

(b.1)若c′max≤cmax,则接受候选解;

(b.2)若c′max>cmax,计算概率值其中t为当前退火温度,产生一个在区间(0,1)内的随机数rand,若c>rand,则接受,否则不接受。

s7、判断是否完成k次迭代,如果迭代次数l<k,则未完成迭代,跳转至步骤s4进行下一次迭代;

s8、判断是否满足终止条件,如果是,输出当前解(即最优解),否则降低温度值并跳转至步骤s4,开始新一轮迭代搜索;

所述终止条件为:如果当前退火温度t≤tmin,则终止计算;新的退火温度等于αt,其中α是一个位于(0,1)区间内的正数。

实施例

本实施例中采用两组算例测试本发明所提出的agv任务调度方法的性能。第一组算例中不考虑agv续航里程的限制,而第二组算例中加入了agv的续航里程约束。算例中的智能仓储系统地面划分为18行×16列共288个单元格。拣选工作站的位置坐标为(1,8),系统存储区共有120个可移动货架。系统中agv的总数r取值分别为5,10,15。待分配的货架搬运任务总数j取值分别为15,20,30,40,45,60。每一个r和j的参数组合下随机生成10个任务调度问题的算例。第二组算例中,续航里程为低、中、高三个水平的agv数量分别为20%,60%,和20%。当r:j=1:3时,agv三个水平的续航里程范围分别为[60,80),[80,100),[100,999);当r:j=1:4时,agv三个水平的续航里程范围分别为[75,100),[100,125),[125,999)。每一个agv的续航里程在其水平范围内随机确定。发明所公开的基于模拟退火算法的agv任务调度方法采用microsoftvisualstudio2017中的c++语言编程,并在一台cpu主频为2.3ghz,内存为8gb的个人pc上运行。模拟退火算法中,初始退火温度t0=97178,温度下限值tmin=1,每一温度下迭代次数k=429,温度降低参数α=0.9,分别按照概率0.25,0.25,0.5选择使用三种候选解的生成方法。

采用本发明所公开的基于模拟退火算法的agv任务调度方法求解所有算例。另外,采用一种基于简单规则的任务调度方法进行求解作为对比。该方法首先按照任务完成时间(包括agv由初始位置空载行走至货架和运送货架往返于拣选工作站的时间)递减的顺序依次为每一个agv分配一项任务,然后为下一个最先空闲的agv安排一项需要花费最长时间完成且不超过其续航里程限制的任务,直到所有任务分配完毕。表1中列出了每一个r和j的参数组合下10个算例求解结果的平均值。需要指出的是,在第二组算例中,由于续航里程的约束,部分算例本身不存在可行的调度方案,因此表中的平均完工时间和cpu计算时间是基于同一(r,j)组合下10个算例问题中所得的可行调度方案而计算的。计算结果表明,本发明所公开的基于模拟退火算法的agv任务调度方法能够在(平均不超过25s的)较短时间内对agv任务调度问题进行求解,且获得的任务调度方案明显优于基于规则的任务调度方法。

表1两种agv任务调度方法的求解结果

+:括号内的数字为所在(r,j)组合下未获得可行解的算例数量。

显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其他实施方式,都属于本发明所保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1