动态环境下的多智能体协同区域分割方法及系统

文档序号:32205346发布日期:2022-11-16 04:29阅读:177来源:国知局
动态环境下的多智能体协同区域分割方法及系统

1.本发明涉及多智能控制领域,尤其涉及一种动态环境下的多智能体协同区域分割方法及系统。


背景技术:

2.随着信息技术的高速发展,智能体遍及人类生活的方方面面,帮助人类高效率地完成各种任务。比起单一的智能体,多智能体系统支持分布式控制,具有良好的模块性,易扩展性。面对具体的复杂任务时,基于分布式控制的多智能体系统往往能够通过协调配合来逐步解决。为了提高多智能体系统的工作效率,研究人员提出了voronoi区域分割算法,旨在通过合理的分区,提高多智能体系统的覆盖范围,同时提高多智能体系统完成任务的总效率,该算法在几何、晶体学、建筑学、地理学、气象学以及信息系统等许多领域有广泛的应用。然而,该算法存在的一个重大缺陷是每个节点都必须能和其他节点进行通讯从而移动,如果覆盖面积边缘的一个节点仅有一个邻居节点,且该节点失效了,那么该网络并不能够移动其他节点来弥补并重建该通讯网络。因此该算法往往需要部署大量节点,大大提高了成本。
3.为了提高分区算法的适用性,研究人员根据广泛应用的资源分配策略,即平衡分配资源给工作负载,提出了等任务区域分割算法。该算法在本质上,利用了分布式控制的思路,相对于voronoi区域分割算法,等任务区域分割算法通常只需要知道邻居的信息就能完成对整个矩形区域的等任务分割,使得其对于单个智能体的性能要求不高,更符合实际运用的要求,降低了通讯成本,同时提高工作效率。
4.上述新型分区算法在现有的实践中仍然存在了一些不足之处:
5.现有的大部分等任务分割算法都假定对工作空间的划分进行集中计算,这一事实与针对多智能体系统的完全分布式体系结构形成了鲜明的对比,同时由于缺乏完全分布式的体系结构,等任务区域分割算法在已知的环境中运行的有限规模的多智能体系统的适用性受到限制;目前研究人员在研究过程中,往往只考虑了静态环境下算法的性能,忽略了更复杂的动态环境,而实际应用环境则是以动态环境为主。且现有技术还存在着花费成本高、适用性差、效率低等问题。
6.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

7.为解决上述技术问题,本发明提供一种动态环境下的多智能体协同区域分割方法,包括:
8.s1:获取任务区域,对所述任务区域进行横向分割,获得多个条带;
9.s2:设置分割策略,根据所述分割策略获取各所述条带的任务量和控制器,通过各所述条带的任务量和控制器控制多个智能体依次对各条带进行竖向分割。
10.优选的,步骤s1具体为:
11.s11:选取一个长度为ia,宽度为ib的矩形区域作为任务区域d,将任务区域d的左下角作为原点构建直角坐标系;
12.s12:将所述任务区域d分割为宽度为d,长度为ia的多个条带,条带的个数为q,ib=q
×
d。
13.优选的,s2具体为:
14.s21:将条带记为ak,k为条带的编号;k的初始值为1,最大值为q;将任务区域d的最下方的条带记为a1;
15.s22:n个智能体将条带a1竖向分割成随机大小的n个子条带,子条带的编号与智能体的编号一一对应,且均由i表示;同时对条带a2进行扫描,获取a2的任务量和控制器;
16.s23:从k=2开始,n个智能体根据条带ak的任务量和控制器,将条带ak竖向分割成相等大小的n个子条带,同时对条带a
k+1
进行扫描,获取a
k+1
的任务量和控制器;令k=k+1
17.s24:重复步骤s23共q-1次,直至将q个条带全部竖向分割。
18.优选的,条带ak的任务量的获取步骤为:
19.将在所述任务区域d上静态环境下的任务量分布函数设为ρ(x,y),任务量分布函数在d上是连续的且为正数,则在条带ak上沿x轴的任务量分布为:
[0020][0021]
其中,τ表示积分变量;yk=k
×
d,表示第k条条带在垂直方向上的边界位置;y
k-1
=(k-1)
×
d;
[0022]
静态环境下,在条带ak上经过竖向分割后的第i个子条带的任务量为:
[0023][0024]
其中,表示第i个智能体在条带ak上的工作量,x
i-1
和xi表示智能体i在水平方向上的边界位置,且x
i-1
是智能体i-1和智能体i的共同边界位置,xi是智能体i和智能体i+1的共同边界位置;
[0025]
动态环境下,在条带ak上经过竖向分割后的第i个子条带的任务量为:
[0026][0027]
其中,ρ(x,y,t)表示动态工作量在区域d上的分布函数,即动态密度函数;t表示智能体i的运行时间。
[0028]
优选的,条带ak的控制器的获取步骤为:
[0029]
将条带ak的每个子条带的边界记为i,将边界i上进行分割的智能体的控制器记为ui;智能体在子条带i的右边界上的动态分区为:
[0030][0031]
其中,表示智能体i和智能体i+1的共同边界的位置的移动速度;
[0032]
控制器ui的表达式为:
[0033]
ui=κ(m
i+1-mi)
[0034]
其中,κ表示控制增益,是一个可以人为设置的正数。
[0035]
一种动态环境下的多智能体协同区域分割系统,包括:
[0036]
条带横向分割模块,用于获取任务区域,对所述任务区域进行横向分割,获得多个条带;
[0037]
条带竖向分割模块,用于设置分割策略,根据所述分割策略获取各所述条带的任务量和控制器,通过各所述条带的任务量和控制器控制多个智能体依次对各条带进行竖向分割。
[0038]
本发明具有以下有益效果:
[0039]
1、相较于传统的voronoi分割算法,本发明计算量小,在实现清扫等需要遍历任务区域的任务时实用性更强,效率更高;
[0040]
2、分布式的算法使每个智能体成为一个独立的个体,系统鲁棒性更强,对硬件的要求更小;
[0041]
3、对动态环境下的算法进行了理论分析和实验验证,能有效应用于工作量密度不增加的动态环境。
附图说明
[0042]
图1为本发明实施例方法流程图;
[0043]
图2为任务区域的分割示意图;
[0044]
图3为第一任务量分布函数的分割情况;
[0045]
图4为第二任务量分布函数的分割情况;
[0046]
图5为第一任务量分布函数的任务量大小;
[0047]
图6为第二任务量分布函数的任务量大小;
[0048]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0049]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0050]
参照图1,本发明针对传统的区域分割方法中存在的花费成本高、适用性差、效率低的问题进行了改进,通过改进多智能体系统的控制架构,提供一种动态环境下的多智能体协同区域分割方法,包括:
[0051]
s1:获取任务区域,对所述任务区域进行横向分割,获得多个条带;
[0052]
s2:设置分割策略,根据所述分割策略获取各所述条带的任务量和控制器,通过各所述条带的任务量和控制器控制多个智能体依次对各条带进行竖向分割。
[0053]
参考图2,本实施例中,步骤s1具体为:
[0054]
s11:选取一个长度为ia,宽度为ib的矩形区域作为任务区域d,将任务区域d的左下角作为原点构建直角坐标系;
[0055]
s12:将所述任务区域d分割为宽度为d,长度为ia的多个条带,条带的个数为q,ib=q
×
d。
[0056]
本实施例中,s2具体为:
[0057]
s21:将条带记为ak,k为条带的编号;k的初始值为1,最大值为q;将任务区域d的最下方的条带记为a1;
[0058]
s22:n个智能体将条带a1竖向分割成随机大小的n个子条带,子条带的编号与智能体的编号一一对应,且均由i表示;同时对条带a2进行扫描,获取a2的任务量和控制器;
[0059]
s23:从k=2开始,n个智能体根据条带ak的任务量和控制器,将条带ak竖向分割成相等大小的n个子条带,同时对条带a
k+1
进行扫描,获取a
k+1
的任务量和控制器;令k=k+1
[0060]
s24:重复步骤s23共q-1次,直至将q个条带全部竖向分割。
[0061]
具体的,n个智能体排列在被横向分割的矩形区域的最下方的条带,第一个条带(k=1)上的工作区域将被随机竖向分割;与此同时,对第二个条带(k=2)上的工作区域进行等任务量的扫描,等到第一个条带a1上的工作区域被全部随机竖向分割之后,所有的智能体再移动到第二个条带a2内,对a2条带进行等量的竖向分割,并同时对a3条带进行等任务量的扫描;以此类推,当智能体在完成对ak条带内的区域进行等量的竖向分割时,智能体也在对a
k+1
条带上的工作区域进行等任务量的扫描,直到完成对整个矩形区域的竖向分割;仅对第一个条带上的区域是随机竖向分割的,其余条带均是等量竖向分割。
[0062]
本实施例中,参考图2,主要分析对第k个条带上对任务量进行等任务量的分割;首先以矩形区域的左下角为原点做直角坐标系,并对排列在第一个条带上的智能体进行编号,从左往右分别为1,2,3,
···
,i,
···
,n-1,n,且xi代表第i个智能体在x轴上的最终位置(及子条带i的右边界位置);对于每一个智能体,在y轴上起始位置为(k-1)
×
d,终止位置为k
×
d,在x轴上的起始位置为x
i-1
,终止位置为xi;显然,第一个智能体在x轴上的起始位置为x1,第n个智能体在x轴的终止位置xn为ib;假设区域d上的密度函数ρ(x,y,t)已知,通过微积分知识可以推出第i个智能体在条带ak上的任务量大小mi和在条带ak上的任务量大小总量mk;
[0063]
为了达到“等任务划分”,所有的mi都应该趋近于mk/n,算法采用分割边界的方式更改相邻两个智能体的任务量;对于第i个子条带的右边界xi,由于不确定性,无法对工作区域在事前进行工作区域划分,必须进行在线分区操作;
[0064]
条带ak的任务量的获取步骤为:
[0065]
将在所述任务区域d上静态环境下的任务量分布函数设为ρ(x,y),任务量分布函数在d上是连续的且为正数,则在条带ak上沿x轴的任务量分布为:
[0066][0067]
其中,τ表示积分变量;yk=k
×
d,表示第k条条带在垂直方向上的边界位置;y
k-1
=(k-1)
×
d;
[0068]
静态环境下,在条带ak上经过竖向分割后的第i个子条带的任务量为:
[0069][0070]
其中,mi表示第i个智能体在条带ak上的工作量,x
i-1
和xi表示智能体i在水平方向
上的边界位置,且x
i-1
是智能体i-1和智能体i的共同边界位置,xi是智能体i和智能体i+1的共同边界位置;
[0071]
具体的,考虑了静态环境下,智能体负责的任务量与智能体的工作范围之间的关系,在任务量分布函数的基础上,通过分别对x,y位置的积分来实现任务量的获取;据此可以推导得到一般情况下动态环境任务量的获取如下:
[0072]
动态环境下,在条带ak上经过竖向分割后的第i个子条带的任务量为:
[0073][0074]
其中,ρ(x,y,t)表示动态工作量在区域d上的分布函数,即动态密度函数;t表示智能体i的运行时间。
[0075]
本实施例中,等任务区域分割算法考虑的是如何更新边界来平衡子条带上各个智能体的工作负载,进而完成对每个条带的分割,来提高整个多智能体系统工作效率;
[0076]
条带ak的控制器的获取步骤为:
[0077]
将条带ak的每个子条带的边界记为i,将边界i上进行分割的智能体的控制器记为ui;
[0078]
智能体在子条带i的右边界上的动态分区为:
[0079][0080]
其中,表示智能体i和智能体i+1的共同边界的位置的移动速度;
[0081]
控制器ui的表达式为:
[0082]
ui=κ(m
i+1-mi)
[0083]
其中,κ表示控制增益,是一个可以人为设置的正数。
[0084]
控制器的控制算法收敛性证明:
[0085]
重点分析加入控制器后,等任务区域分割算法的收敛性;同时,为了满足实际应用的要求,控制算法的迭代次数(花费多长时间)应该是有限的;首先,考虑每个条带上的分区。其次,设计合适的李雅普诺夫函数,根据等任务区域分割算法的设计思路,可以比较容易的取到合适的李雅普诺夫函数,然后通过李雅普诺夫第二方法来完成理论证明,即对于具有连续一阶偏导数的标量函数,如果hk正定,推导得到hk的导数负定,则该控制算法是收敛的,那么此hk就是该控制系统的一个李雅普诺夫函数;下面将分步来完成控制算法的收敛性分析:
[0086][0087]
在条纹ak上求取平均任务量:
[0088][0089]
在条纹ak上选取李雅普诺夫函数:
[0090][0091]
动态环境下的任务量分布函数是对时间不断变化的,为了满足算法的稳定性要
求,通常需要对任务量分布函数ωk(x,t)作一定的限制;考虑任务量分布函数ωk(x,t)对时间的增大而逐渐衰减;
[0092]
因此,不妨假设:
[0093][0094]
其中α为常数且α<0,α表示任务量分布函数对时间的变化率;
[0095]
根据平方平均数≥算术平均数,可以得到:
[0096][0097]
综上所述,hk沿系统轨迹的导数满足:
[0098][0099]
显然,因为κ>0,ωk(xi,t)>0和α<0,所以在这个条带ak上面除了平衡点之外,这表明了平衡点是渐进稳定的,从而得出了该算法稳定的结论。
[0100]
数值仿真:
[0101]
根据动态环境下的等任务区域分割算法的设计思路,在matlab上编写程序来进行仿真验证;假设初始智能体的数量为6个,初始边界位置x
0_0
=0、x
1_0
=1、x
2_0
=3、x
3_0
=5、x
4_0
=7、x
5_0
=12、x
6_0
=18,其中x
0_0
、x
6_0
是条带的左右边界,为固定值,不发生变化;同时,根据已知的任务量分布函数和任务区域的边界位置,通过建立好的数学模型,可以取得各个智能体负责任务区域的初始任务量m
1_0
、m
2_0
、m
3_0
、m
4_0
、m
5_0
、m
6_0

[0102]
为了方便计算机程序的处理:
[0103]
xi(k+1)=xi(k)+δtκ(m
i+1-mi)
[0104]
其中xi(k)表示在k时刻xi的大小,xi(k+1)表示在k+1时刻xi的大小,δt代表两个时刻之差,显然δt始终大于零;
[0105]
取δt=0.0001、κ=10;分别针对不同的任务量分布情况得到如下的仿真结果。同时,从工作量分割情况来对算法表现情况作出分析;
[0106]
取第一任务量分布函数ρ(x,y,t)=(x+0.5)(1+exp(-0.05t-2))
[0107]
工作量分割情况如图3所示,在δt=0.0001的前提下,经过0.2s左右的时间就基本拟合结束了可以看出任务量都趋近于30.33,满足了算法预期的目标,即使得在每个参与
工作的智能体上的任务量的分配趋于一致;
[0108]
取第二任务量分布函数ρ(x,y,t)=(1.5+0.5sin(x)+x)(1+exp(-0.05t-2))
[0109]
工作量分割情况如图4所示,在δt=0.0001的前提下,经过0.28s左右的时间就基本拟合结束了可以看出任务量都趋近于31.45,满足了算法预期的目标,即使得在每个参与工作的智能体上的任务量的分配趋于一致。
[0110]
控制算法应用:
[0111]
完成了等任务区域分割算法的设计及数值仿真,在仿真的基础上为了进一步逼近实际中多智能体系统中等任务区域分割算法的使用,还需要进一步将该控制算法应用到基于zigbee技术的无线通讯网络;在该实验平台下,与纯粹的matlab数值仿真不同,实际的算法应用往往会需要考虑到各种干扰,对于多智能体系统而言,通讯的实时性和抗干扰性也会影响到算法具备的性能;在基于zigbee技术的无线通讯网络上,通讯的实时性和抗干扰性等能够得到较大的保障来支持设计好的等任务区域分割算法的应用;
[0112]
对于整个实验环节,最终的目标是验证该算法在基于zigbee技术的实验平台上,能否成功地完成等任务划分的任务,即使得多智能体系统中,每个智能体负责的任务量在有限的时间范围内最终能否趋于一致;为了实现该目标,本次实验采用了多种不同环境下的任务量分布函数,测试了算法的有效性和可靠性。为了更好地进行对比分析,选取的任务量分布函数参考了仿真过程中的情况;
[0113]
在实验中,zigbee节点之间的通讯数据通过串口来在电脑上采集,在matlab上编写串口采集和实时绘图显示的程序,来完成对数据的处理;设置的通讯频率为0.05s/次,通过设置led灯的交替亮灭来标志数据发出和接收的情况;
[0114]
取第一任务量分布函数ρ(x,y,t)=(x+0.5)(1+exp(-0.05t-2))
[0115]
如图5所示,与仿真结果相对比,任务量变化规律基本一致。然而在各个智能体任务量趋于一致的过程中,可以明显看出,相较于仿真结果,各个智能体任务量的更新出现了不少波折;
[0116]
取第二任务量分布函数ρ(x,y,t)=(x+0.5)(1+exp(-0.05t-2))
[0117]
如图6所示,与前面情况不同,智能体任务量的变化出现了更大范围的波折,在0-800次通讯的时刻内,智能体任务量m1,m2,m3,m4,m5,m6均发生了间断性的大范围波动;在50-200次和200-350次范围内,智能体任务量m6甚至一度保持不变;
[0118]
综上,完成了该控制算法在基于zigbee技术的无线通讯网络的应用,进一步验证了算法的有效性和可靠性。
[0119]
本发明提供一种动态环境下的多智能体协同区域分割系统,包括:
[0120]
条带横向分割模块,用于获取任务区域,对所述任务区域进行横向分割,获得多个条带;
[0121]
条带竖向分割模块,用于设置分割策略,根据所述分割策略获取各所述条带的任务量和控制器,通过各所述条带的任务量和控制器控制多个智能体依次对各条带进行竖向分割。
[0122]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有
的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0123]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
[0124]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1