一种基于改进A*与EECBS的多智能体集群调度方法、系统及电子设备

文档序号:37306241发布日期:2024-03-13 20:54阅读:72来源:国知局
一种基于改进A*与EECBS的多智能体集群调度方法、系统及电子设备

本发明涉及多智能体集群调度领域,尤其涉及一种基于改进a*与eecbs的多智能体集群调度方法、系统及电子设备。


背景技术:

1、当前,多智能体系统因其灵活性、高效、经济、自动化及柔性等特点,在智能仓储系统中日渐担任着更加重要的角色。因此,智能仓储的多智能体集群调度研究对降低智能仓储作业成本、缩短作业时间、提升系统效率至关重要。但随着智能仓储规模的不断扩大,智能体的数量也大幅度增加,从而引发了许多新的问题,比如动态障碍条件下单智能体的路径冗余问题、碳排放问题;多智能体的冲突、死锁和拥堵问题;多智能体集群调度的时间效率问题等。

2、对于单智能体的路径规划问题,基于图论搜索的路径规划算法有dfs算法(deepfirst search,深度优先搜索算法)、bfs算法(breadth first search,广度优先搜索算法)、gbfs算法(greed breadth first search,贪婪广度优先搜索算法),dijkstra算法以及a*算法。dfs算法在目标结点与遍历起始点不在同一分支且相距较远时,会大大降低搜索的效率,具有不稳定性;bfs算法在各方向上均等搜索,搜索具有盲目性,使得搜索速度慢、搜索效率低下;gbfs算法搜索速度很快,但搜索的路径成本会比较大,不能保证找到最短路径;dijkstra算法虽然能求解出最短路径,但由于搜索时会遍历冗余结点,所以计算量较大;a*算法综合了gbfs算法和dijkstra算法,均衡了算法速度与寻路结果,不仅考虑起点到当前点的实际代价成本,同时也较dijkstra算法搜索方向更具启发性。

3、对于多智能体的路径规划问题,基于碰撞的算法有cbs算法(conflict basedsearch,基于冲突的搜索算法)、ecbs算法(enhanced conflict based search,增强的基于冲突的搜索算法)及eecbs算法(explicit estimation conflict based search,基于显示估计冲突的搜索算法)。cbs算法能够获得最短路径,但程序运行时间较长;ecbs算法通过使用次优因子,在减少程序运行时间的同时,也能保证解在有界范围之内,但存在因解的成本大于次优解与解的下界很难增加导致迟迟找不到解的情况;eecbs算法通过将ees算法(explicit estimation search,显示估计搜索算法)作为eecbs的上层搜索克服了ecbs算法存在的问题,在保证解在有界范围之内的同时,也加快了程序运行效率。

4、对于多智能体的集群调度问题,主要有以下几种方法:第一种方法是在离线环境下将多个智能体作为一个整体来解决,但它需要先验地知道所有目标位置,可扩展性有限;第二种方法是将集群调度分解为一系列多智能体路径规划实例,其中每个时间步长对所有代理重新规划路径,可以在在线环境中工作,并且比第一种方法的可伸缩性更好,但比较耗时。第三种方法与第二种方法类似,但将重新规划限制在刚刚到达目标位置的代理的路径上,它比前两种方法适用于更多的智能体,但是地图需要有一个额外的结构来保证完整性,同时也比较耗时;第四种方法采用rhcr框架(rolling-horizon collision resolution,滚动-水平碰撞分解),它将rhcr框架分解为一系列窗口pbs实例(priority-based search,基于优先级的搜索),并且每h个时间步长重新规划路径,以便交叉规划和执行,它使智能体持续参与规划,避免空闲时间,从而提高系统吞吐量,同时可以生成灵活的计划,从而可以不断到达新的目标点。

5、虽然rhcr框架将集群调度问题分解为一系列窗口pbs实例可以解决大多数中小规模的智能体集群调度问题,但当智能体的规模较大时,其存在以下几个问题:第一,窗口pbs的上层采用了类似于cbs的高层搜索,贪婪地选择节点进行扩展,由于选择的节点存在迟迟找不到解决方案的情况,所以会加大路径规划的时间;第二,由于窗口pbs的下层采用了类似于ca*的优先搜索,即智能体需要避免与所有高优先级智能体发生冲突,所以窗口pbs不能保证解的完备性;第三,在单智能体路径规划阶段采用了a*算法虽然获得了最短路径,但却在规划阶段出现了多次转弯,进而造成了更多的碳排放。


技术实现思路

1、本发明针对现有技术的问题,提供了一种基于改进a*与eecbs的多智能体集群调度方法、系统及电子设备,在智能体调度时减少转弯次数,进而降低智能体碳排放量,并且能够提高智能体调度的效率。

2、为解决以上技术问题,本发明提供如下技术方案:一种基于改进a*与eecbs的多智能体集群调度方法,包括:

3、s1、根据智能仓储的静态环境进行二维地图建模,然后对智能体进行初始化;

4、s2、对智能体的起始位置和目标位置进行更新,判断是否需要从任务分配器分配新的任务给智能体,是则由任务分配器进行任务分配,然后执行步骤s3,否则直接执行步骤s3;

5、s3、利用考虑转弯成本的a*算法为智能体规划路径;

6、s4、判断智能体之间是否发生了碰撞,并且碰撞在w个时间步长内,是则执行步骤s5,否则执行步骤s6;

7、s5、采用改进的窗口eecbs的上层算法,在窗口eecbs的上层创建三个结点列表,按照碰撞次数最小原则和总成本最小原则进行结点扩展,获取发生碰撞智能体的优先级,根据发生碰撞智能体的优先级依次执行步骤s3来解决智能体之间的碰撞;

8、s6、判断是否达到预设最大时间步长,若是则完成多智能体集群调度,否则返回执行步骤s2。

9、进一步地,前述的步骤s1包括以下子步骤:

10、s101、将智能仓储地图设置为二维平面上的栅格区域,把智能体的运动步长设置为智能体的外接圆直径;

11、s102、将二维平面上的栅格区域分成若干以智能体的运动步长为边长的方格,把存在障碍物的栅格定义为障碍栅格,用0表示,不存在障碍物的栅格定义为自由栅格,用1表示;

12、s103、对栅格依次从左到右、从上到下坐标对应,完成智能仓储地图建模,并初始化智能体数量为m,初始时间步长t设为0。

13、进一步地,前述的步骤s2包括以下子步骤:

14、s201、将智能体在时间步长t的位置设置为智能体的初始位置;

15、s202、计算智能体访问目标位置序列中所有剩余位置所需的时间步长的下界,如下式:

16、

17、式中,i为智能体的编号,j为目标位置序列编号,si为第i个智能体的起始位置,gi为第i个智能体的目标位置序列,gi[j]为第i个智能体的第j个目标位置,|gi|为第i个智能体的目标位置数量,dist(x,y)为位置x到位置y的距离,di为第i个智能体所有剩余位置所需的时间步长下界;

18、s203、判断di是否小于重新规划的时间步长h,若是则从任务分配器不断地分配新的任务给第i个智能体,直到di大于或等于h,否则结束分配新的任务。

19、进一步地,前述的步骤s3包括以下子步骤:

20、s301、将初始结点n0放入open列表中;

21、s302、判断open列表是否为空,若是则规划路径失败,程序结束,若不是则将open列表中f值最小的结点作为当前搜索结点;

22、s303、判断当前搜索结点是否为目标结点,若是则输出最优路径,结束智能体路径规划,否则执行步骤s304;

23、s304、判断当前搜索结点是否有子节点,若是则扩展子结点,否则返回执行步骤s302;

24、s305、对当前搜索结点的方向向量与子节点的方向向量点积,根据点积结果是否为0判断智能体是否发生转弯,如下式:

25、

26、t为0,则确定智能体发生了转弯,将智能体在转弯时因换向所消耗的时间成本折合成行走0.5个栅格的路径代价,并引入实际代价g(n)中,具体计算方式如下:

27、

28、s306、对open列表中的结点按f值大小排序,排序后转到步骤s302,f值计算方式如下:

29、f(n)=g(n)+h(n) (4)

30、其中,g(n)表示从初始结点到结点n已经实际花费的成本,h(n)表示从结点n到目标结点将会花费的成本估计,f(n)表示从初始结点经由结点n到目标结点的成本估计。

31、进一步地,前述的步骤s4具体是:修改eecbs算法的碰撞检测函数,得到窗口eecbs算法,利用碰撞检测函数检测智能体之间是否发生了碰撞,并且碰撞在w个时间步长内。

32、进一步地,前述的步骤s5包括如下子步骤:

33、s501、在窗口eecbs的上层创建三个结点列表:cleanup、open与focal,cleanup、以及open均是常规的开放a*列表,cleanup列表内部根据全部智能体总成本下界lb排序,open列表内部根据在结点n下估计的总成本排序,的计算公式如下:

34、

35、其中,cost(n)表示在结点n下全部的智能体已经花费的成本,表示在结点n下估计的全部智能体之后将会花费的成本,focal包含在open列表中满足如下公式的结点,并根据智能体之间的碰撞次数hc排序,具体公式如下:

36、

37、其中,x为次优因子,为具有最小值的结点,为在结点n下估计的总成本;

38、s502、判断是否满足下式(7),是则在focal列表中选择结点扩展,然后返回执行步骤s3为发生碰撞的智能体重新规划路径,否则执行步骤s503;

39、

40、其中,x为次优因子,表示具有最少碰撞次数的结点,bestlb表示具有最小总成本下界的结点,表示在结点下智能体已经花费的成本,lb(bestlb)表示在结点bestlb下全部智能体总成本下界;

41、s503、判断是否满足下式(8),是则从open列表中选择结点扩展,返回执行步骤s3,否则从cleanup列表中选择bestlb结点扩展,然后执行步骤s3;

42、

43、其中,x为次优因子,为具有最小值的结点,bestlb为具有最小总成本下界的结点,表示在结点下智能体已经花费的成本,lb(bestlb)表示在结点bestlb下全部智能体总成本下界。

44、进一步地,前述的步骤s501中,结点n下估计的全部智能体之后将会花费的成本其计算采用全局误差模型,该模型定义一步误差在整个搜索空间的分布是均匀的,并作为所有观察到的一步误差的平均值来估计,该搜索保持迄今为止观察到的一步误差的运行平均值,即一步碰撞误差的平均值和一步成本误差的平均值一步碰撞误差∈d(n)的计算公式,如下:

45、∈d(n)=hc(bc(n))-(hc(n)-1) (9)

46、其中,bc(n)表示节点n的子节点,hc(bc(n))表示在节点n的子节点下所有智能体之间碰撞对的个数,hc(n)表示在节点n下所有智能体之间碰撞对的个数,一步成本误差∈h(n)的计算公式为:

47、∈h(n)=cost(bc(n))-cost(n) (10)

48、其中cost(bc(n))表示在节点n的子节点下为所有的智能体规划路径已经花费的总成本,cost(n)表示在节点n下为所有的智能体规划路径已经花费的总成本,利用∈d(n)和∈h(n)的计算得到一步距离误差的平均值和一步成本误差的平均值再基于和得到的计算公式,如下式:

49、

50、进一步地,前述的步骤s6具体是:判断是否达到最大时间步长,若是则程序结束,若不是则更新时间步长t=t+h,并返回执行步骤s2。

51、本发明另一方面提出一种基于改进a*与eecbs的多智能体集群调度系统,包括:

52、二维地图建模模块,用于根据智能仓储的静态环境进行二维地图建模,然后对智能体进行初始化;

53、任务分配模块,用于对智能体的起始位置和目标位置进行更新,判断是否需要从任务分配器分配新的任务给智能体,是则由任务分配器进行任务分配,然后转换至路径规划模块执行,否则直接转至路径规划模块执行;

54、路径规划模块,用于利用考虑转弯成本的a*算法为智能体规划路径;

55、碰撞检测模块,用于判断智能体之间是否发生了碰撞,并且碰撞在w个时间步长内,是则转至碰撞决策模块执行,否则转至时间步长判断模块;

56、碰撞决策模块,采用改进的窗口eecbs的上层算法,在窗口eecbs的上层创建三个结点列表,按照碰撞次数最小原则和总成本最小原则进行结点扩展,获取发生碰撞智能体的优先级,根据发生碰撞智能体的优先级依次执行路径规划模块来解决碰撞;

57、时间步长判断模块,用于判断是否达到预设最大时间步长,若是则完成多智能体集群调度,否则转至任务分配模块执行。

58、本发明还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述计算机程序时实现本发明中任一项所述方法的步骤。

59、相较于现有技术,本发明采用以上技术方案的有益技术效果如下:

60、1、本发明通过考虑转弯成本对a*算法改进,将智能体在转弯时因换向所消耗的时间成本折合成行走0.5个栅格的路径代价,从而使得智能体的转弯次数减少,进而减少了智能体的碳排放量。

61、2、本发明通过修改碰撞检测函数对eecbs算法改进,得到窗口eecbs算法,使得系统只检测前w个时间步长的碰撞,并用特定的结点选择原则选择结点扩展来解决智能体之间的碰撞,加快了智能体集群调度的时间效率,同时采用了次优因子x,使得解在有界范围内,保证了解的完备性。

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