本发明涉及任务分配,具体涉及一种多agv任务分配方法。
背景技术:
1、随着制造业的不断发展,自动化技术在生产线上的应用越来越广泛。在仓储物流中,常使用自动导引agv辆agv进行搬运货物,搬运任务的数量通常不是固定的,是动态产生的,具有随机性且任务的密集度大,且任务的时效性要求较高。设置合理的任务分配策略能够有效缩短agv完成总任务的时间,加快agv对任务的响应速度,提高系统的总体效率。
2、随着生产线规模的不断扩大和复杂性的增加,单一agv的任务分配已经无法满足生产需求。因此,如何合理地分配多台agv的任务,以提高整个生产线的效率和灵活性,成为了当前制造行业亟待解决的问题之一。任务分配有集中式和分布式两种方式,集中式是将所有agv的信息和任务的信息都集中在一台服务器上,分配出较好的结果,但是,上述方式对于服务器的要求很高,特别是当任务数量和agv数量较多时,集中式处理方式就显得较为缓慢。
技术实现思路
1、鉴于以上所述现有技术的缺点,本发明提供一种多agv任务分配方法,能够实现对任务分配结果的优化,稳定性高,可以提高算法搜索效率、寻优能力和计算稳定性,可以提高求解质量。
2、为实现上述效果,本发明的技术方案如下:
3、第一个方面,本发明提供多agv任务分配方法方法,包括以下步骤:
4、s1、获取agv信息和任务信息,对待送货加工位和待取空托盘加工位进行任务匹配,同时设定粒子群参数;
5、s2、对每个粒子进行编码;设置粒子初始位置和速度;
6、s3、设置初始解验算子对编码后的每个粒子进行检查;
7、s4、对检查合格的粒子进行解码生成对应agv的行驶路径,根据适应度函数计算每个粒子的适应度;
8、s5、根据每个粒子的适应度确定每个粒子的最佳位置,同时确定粒子群体中的最佳位置;
9、s6、更新每个粒子的速度与位置,每一个粒子建立惯性权重,得出每个粒子的个体最优解与全局最优解;
10、设定m辆agv执行搬运任务,agv编号为1,2,3,...,m;在某个时间段内共有n个任务生成,编号为1,2,3,...,n,一辆agv一次只能搬运一个货物,通过粒子群算法分配每一辆agv的结果集合为rm={a,b…|a,b∈n},每一个任务信息为in{s,e,t},其中s代表任务的起点坐标,e代表任务的终点坐标,t代表任务的创建时间。
11、进一步的,所述s1中,agv信息包括总agv数、agv辆编号、每辆agv的起始agv站和电量,所述agv任务包括待送货任务信息、待取空盘任务信息,所述agv按照自然数顺序编号。
12、进一步的,所述s1中,粒子群参数包括:c1,c2为学习因子、r1,r2为随机参数、w为惯性权重、q为粒子个数、m为迭代次数,d为粒子维度,等于待取货任务数量。
13、进一步的,所述agv执行搬运任务时将总距离di作为agv任务的目标函数:
14、
15、其中,rm是每辆agv分配到的任务数量,m是agv的数量,c是当前agv所在的位置,ns是任务的起点坐标,ne是任务的终点坐标;|ns-ne|是两点之间的曼哈顿距离,|c-ns|是agv当前位置到下一个任务起点的曼哈顿距离;
16、采用综合指标调度原则作为agv任务调度的评价指标;每一个任务的时间方差为ti,如式(2)所示,其中,tn表示从agv在线任务分配系统开始运行到当前时刻的时间值,ci表示每个任务的创建时间;综合调度原则中的t表示为如式(3)所示;以di作为综合目标函数中的d,目标函数target的表示函数为式(4)所示;
17、
18、
19、target=(a1*di+a2*t) (4)
20、其中,a1表示距离权重系数;a2表示时间方差权重系数;d表示所有agv执行完全部任务行驶的距离;t表示每一个任务执行完后的时间方差累加和。
21、进一步的,所述s6中,更新每个粒子的速度与位置是依靠速度与位置公式,具体为:
22、计算各个粒子的惯性权重;粒子根据惯性权重改变朝各个方向的运动速度,进而改变粒子的位置;公式如下:
23、vi=w*vi+c1*rand()*(pbi-xi)+c2*rand()*(gbi-xi) (5)
24、xi=xi+vi (6)
25、其中,vi是粒子的速度,w是惯性权重,c1、c2是学习因子;rand是介于0-1之间的随机数,pbi和gbi是局部最优粒子和全局最优粒子,xi是粒子的位置。
26、进一步的,更新每个粒子的速度时,所述粒子的位置用0/1表示,粒子速度的每一位代表粒子位置所对应的取值为0/1的可能性,假设有n个任务,则粒子的初始位置由n个数组成,粒子的初始速度有n个维度;
27、code={randperm(n)} (7)
28、v1={randperm(n)} (8)
29、v2={-1,-1,…-1} (9)
30、v3={-1,-1,…-1} (10)
31、其中,code是粒子的编码,randperm是随机取值函数,粒子有三个方向的速度,v1代表粒子的初始速度,v2代表粒子朝向局部最优粒子的速度,v3代表粒子朝向全局最优解粒子的速度。
32、进一步的,所述惯性权重w表示为:
33、w(i)=w1-w2-w3+w4 (11)
34、w1=cmax-rnm*(cmax-cmin) (12)
35、其中,rnm是num和max的比值,num是粒子群的迭代次数,max是粒子群的最大迭代次数,cmax、cmin为上下限参数;
36、
37、其中,gb2是粒子群当前迭代出的适应度最小值,gb1是粒子群历代迭代出的适应度最小值,若gb2>gb1,则gb2取gb1的值;当gb2<gb1时,说明当前粒子的位置比之前所有粒子位置表现更优,进化速度快,此时粒子减小自身方向的速度,偏向于全局最优位置处移动;
38、当gb2>gb1时,说明粒子当前位置并不是历代粒子中最优,进化速度慢,进行局部寻优,以便找到最优解;
39、
40、pb2(i)是粒子本次迭代得到的局部最优的适应度函数值,pb1(i)是粒子历史迭代中局部最优的适应度函数值;
41、当pb2(i)<pb1(i)时,说明当前粒子位置的适应度值小于该粒子的局部最优的适应度值,进化速度快,此时粒子减小自身方向的速度,偏向于局部最优位置移动;
42、当pb2(i)>pb1(i)时,说明粒子当前位置不是历代局部最优中最优,进化速度慢,进行局部寻优,以便找到最优解;
43、
44、fav是所有粒子的平均适应度值;式(15)表示粒子的聚集情况,gb2与fav的比值越大说明粒子群越集中,增大惯性权重,避免粒子群陷入局部最优解;
45、式中,a1、a2、a3是比例因子。
46、进一步的,所述学习因子c1、c2表示为:
47、c1=0.6-0.5*rnm (16)
48、c2=0.1+0.5*rnm (17)。
49、与现有技术相比,本发明技术方案的有益效果是:
50、针对粒子群算法容易陷入局部最优解、收敛速度慢等缺点,本发明结合每个粒子的个体最优解与全局最优解、平均适应度,为每一个粒子建立惯性权重。设计更新粒子检验算子,对算法迭代过程中产生的不合规则的粒子进行处理,避免解的退化。改进的粒子群算法能够提高算法搜索效率、寻优能力和计算稳定性,整体上提高求解质量。
1.一种多agv任务分配方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述s1中,agv信息包括总agv数、agv辆编号、每辆agv的起始agv站和电量,所述agv任务包括待送货任务信息、待取空盘任务信息,所述agv按照自然数顺序编号。
3.根据权利要求1所述的方法,其特征在于,所述s1中,粒子群参数包括:c1,c2为学习因子、r1,r2为随机参数、w为惯性权重、q为粒子个数、m为迭代次数,d为粒子维度,等于待取货任务数量。
4.根据权利要求1所述的方法,其特征在于,所述agv执行搬运任务时将总距离di作为agv任务的目标函数:
5.根据权利要求4所述的方法,其特征在于,所述s6中,更新每个粒子的速度与位置是依靠速度与位置公式,具体为:
6.根据权利要求5所述的方法,其特征在于,更新每个粒子的速度时,所述粒子的位置用0/1表示,粒子速度的每一位代表粒子位置所对应的取值为0/1的可能性,假设有n个任务,则粒子的初始位置由n个数组成,粒子的初始速度有n个维度;
7.根据权利要求6所述的方法,其特征在于,所述惯性权重w表示为:
8.根据权利要求7所述的方法,其特征在于,所述学习因子c1、c2表示为:
