智能体集群控制方法、装置、设备及存储介质

文档序号:29611206发布日期:2022-04-13 08:54阅读:206来源:国知局
智能体集群控制方法、装置、设备及存储介质

1.本说明书涉及技术领域,尤其是涉及一种智能体集群控制方法、装置、设备及存储介质。


背景技术:

2.智能体集群(例如无人机集群等),能够提供非比寻常的感知能力,因此其对于许多如视频监控、灾害管理及道路监测等应用是非常重要的解决方案。在智能体集群控制中,一个亟待解决的关键问题是:在保持所有智能体之间连通性的前提下感知所有的目标点,此即多目标点感知问题。当智能体集群间的通讯拓扑变化迅速时,维护智能体间连通性的通信开销会非常高,因此可能导致一些对时间要求比较严格的任务失败。关于此问题的一个解决方案是维护智能体集群为一个固定的通讯拓扑。固定的通讯拓扑能够使静态路由变得可行,因此通信开销可以被大幅减少。然而,但保持通讯拓扑不变会严重限制智能体集群的感知能力。


技术实现要素:

3.本说明书实施例的目的在于提供一种智能体集群控制方法、装置、设备及存储介质,以实现降低智能体间的通信开销的同时,避免降低智能体集群的感知能力。
4.为达到上述目的,一方面,本说明书实施例提供了一种智能体集群控制方法,包括:
5.确定智能体集群中任意两个智能体间的最短路径,并根据所述最短路径、所述集群中智能体的通信距离及感知距离确定约束条件;
6.在所述约束条件约束下,调用rma算法从所述集群中选择智能体,以用于感知新增的目标点;
7.在所述集群的通讯拓扑中,以选择的智能体作为根节点,并按照所有非父邻居节点均为子节点的规则建立树状结构;
8.调用tmp算法控制所述树状结构下的智能体分布式移动,直至所述目标点被所述根节点感知到。
9.在本说明书一实施例中,所述约束条件包括:d
t

new
,ac)≤r1+r2*l
a,c

10.其中,τ
new
为新增的目标点,ac为智能体a的锚点c,d
t

new
,ac)为t时刻τ
new
和ac之间的距离,r1为智能体的感知距离,r2为智能体的通信距离,l
a,c
为智能体a与其锚点c之间的最短路径长度。
11.在本说明书一实施例中,在所述约束条件约束下,调用rma算法从所述集群中选择智能体,以用于感知新增的目标点,包括:
12.对于所述集群中的每个智能体,确定该智能体的满足所述约束条件的锚点数量;
13.从所述集群中选择具有满足所述约束条件的锚点最多的智能体,以用于感知新增的目标点;
14.其中,所述锚点是指:对于所述集群中的任意两个智能体ai和aj,若ai正负责感知至少一个目标点,且在两者最短路径上的其他智能体均未感知目标点,则ai为aj的一个锚点。
15.在本说明书一实施例中,所述按照所有非父邻居节点均为子节点的规则建立树状结构,包括:
16.将所述根节点的所有邻居节点作为该根节点的子节点;
17.确认所述集群的通讯拓扑中是否存在未参与建树的智能体;
18.如果存在,则对于当前树状结构中的每个叶子结点,将其所有非父邻居节点作为自身的子节点;
19.依次递推,直至所述集群的通讯拓扑中所有智能体均参与建树。
20.在本说明书一实施例中,所述调用tmp算法控制所述树状结构下的智能体分布式移动,包括:
21.调用最近目标点nrpt算法寻找目标位置;所述目标位置为所述根节点在保持对其已感知目标点和其在通讯拓扑中所有邻居节点的连接,且处于距离根节点的移动目标最近的位置;
22.判断所述目标位置是否满足d
t
(τ,pn)《d
t
(τ,a);其中,τ为所述根节点的移动目标,pn为目标位置,a为根节点,d
t
(τ,pn)为t时刻τ与pn之间的距离,d
t
(τ,a)为t时刻τ与a之间的距离;
23.如果所述目标位置满足d
t
(τ,pn)《d
t
(τ,a),将所述根节点移动至所述目标位置,并在所述根节点结束移动后仍未感知到所述新增的目标点时,使所述根节点重新寻找目标位置,直至所述根节点感知到所述新增的目标点。
24.在本说明书一实施例中,所述调用tmp算法控制所述树状结构下的智能体分布式移动,还包括:
25.如果所述目标位置不满足d
t
(τ,pn)《d
t
(τ,a),调用btnk算法寻找阻碍所述根节点的智能体向其移动目标移动的瓶颈节点;
26.当所述瓶颈节点为所述根节点正在感知的目标点时,结束对其的感知并使所述根节点重新寻找目标位置;
27.当所述瓶颈节点为一智能体时,使所述根节点向其发送协助请求,并在收到该智能体的协助响应后使所述根节点重新寻找目标位置,直至所述根节点感知到所述新增的目标点;
28.其中,收到所述协助请求的智能体以其父节点的父节点作为其移动目标,执行与所述根节点对应的步骤,并在移动到距离其移动目标更近的位置后返回所述协助响应。在本说明书一实施例中,所述调用nrpt算法寻找目标位置,包括:
29.分别以所述根节点的每个邻居节点所在位置为圆心,以通信为半径生成圆;
30.在所有圆相交区域中寻找目标位置。
31.在本说明书一实施例中,所述调用btnk算法寻找阻碍所述根节点向其移动目标移动的瓶颈节点,包括:确定与所述根节点距离等于通信距离的所有智能体,以作为第一集合;并确定与所述根节点距离等于感知距离的所有目标点,以作为第二集合;
32.在所述第一集合和所述第二集合的并集中寻找元素,使得该元素所在位置与p
t
(a)和p
t
(τ)交成的角度相较于其他元素是最大的,并将该元素作为所述根节点的瓶颈节点返回;
33.其中,p
t
(a)为所述根节点a在当前t时刻的位置,p
t
(τ)为所述移动目标τ在当前t时刻的位置。
34.另一方面,本说明书实施例还提供了一种智能体集群控制装置,包括:
35.确定模块,用于确定智能体集群中任意两个智能体间的最短路径,并根据所述最短路径、所述集群中智能体的通信距离及感知距离确定约束条件;
36.选择模块,用于在所述约束条件约束下,调用rma算法从所述集群中选择智能体,以用于感知新增的目标点;
37.建立模块,用于在所述集群的通讯拓扑中,以选择的智能体作为根节点,并按照所有非父邻居节点均为子节点的规则建立树状结构;
38.移动模块,用于调用tmp算法控制所述树状结构下的智能体分布式移动,直至所述目标点被所述根节点感知到。
39.另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
40.另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
41.由以上本说明书实施例提供的技术方案可见,在本说明书的实施例中,由于智能体的分布式移动是树状结构下通过拓扑不变的运动规划算法(即tmp算法)控制实现的,从而使得能够在维持智能体集群的通讯拓扑固定的情况下,允许智能体集群的物理拓扑作部分改变,从而可以尽量减少动态路由产生的通信开销。不仅如此,基于最多锚点保留算法(即rma算法)从集群中选择用于感知新增的目标点的智能体,可以有利于智能体集群在覆盖新增的目标点时,进一步减小已被覆盖的旧目标点的损失,从有利于避免降低智能体集群的感知能力。
附图说明
42.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
43.图1为本说明书提供的一些实施例中智能体集群控制方法的流程图;
44.图2为本说明书提供的一实施例中智能体寻找目标位置的示意图;
45.图3~图8为本说明书提供的一实施例中智能体感知新增的目标点的过程示意图;
46.图9为本说明书提供的一实施例中不同算法下,平均感知目标点个数随智能体规模的变化示意图;
47.图10为本说明书提供的一实施例中不同算法下,智能体集群在最后一轮仿真中平均感知目标点个数随智能体规模的变化示意图;
48.图11为本说明书提供的一实施例中不同算法下,智能体集群的端到端时延及包传
输率随智能体规模的变化示意图;
49.图12为本说明书提供的一实施例中不同路由算法下,智能体集群的端到端时延、平均包转发次数、平均到每个智能体上的路由流量以及路由流量,分别与传输数据的对比示意图;
50.图13为本说明书提供的一些实施例中智能体集群控制装置的结构框图;
51.图14为本说明书提供的一些实施例中将智能体部署至多智能体移动感知平台系统的示意图;
52.图15为本说明书提供的一些计实施例中算机设备的结构框图。
53.【附图标记说明】
54.131、确定取模块;
55.132、选择模块;
56.133、建立模块;
57.134、移动模块;
58.1502、计算机设备;
59.1504、处理器;
60.1506、存储器;
61.1508、驱动机构;
62.1510、输入/输出模块;
63.1512、输入设备;
64.1514、输出设备;
65.1516、呈现设备;
66.1518、图形用户接口;
67.1520、网络接口;
68.1522、通信链路;
69.1524、通信总线。
具体实施方式
70.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
71.本说明书实施例涉及智能体集群的移动(或称为迁移)控制技术。其中,智能体集群是指可移动的智能体集群,例如可以包括但不限于移动机器人集群、无人机集群等。
72.智能体集群由于其可移动性和敏捷性,可以被用于不同的场景和应用(例如地图绘制、区域搜救、电网监测、输油气管监测、道路监测、灾害监控、边境巡逻、消防等等)中。在智能体集群控制中一个关键的问题是,如何在维护智能体集群全局连通性的条件下感知所有的目标点(或称为兴趣点,是需要被智能体感知的位置点,例如当智能体集群的任务为储油库防火监控时,智能体集群需要感知(即采集)储油库中每个储油罐的影像和环境等数
据,则每个储油罐所在的位置即为一个目标点)。但是由于智能体集群移动导致的通讯拓扑变化,智能体之间的通信链路需要被频繁地更新和维护。而这个过程中产生的开销会严重影响智能体通信的网络表现(例如导致端到端时延增大,以及包传输率降低等),以致于可能导致一些对时间要求比较严格的任务(例如实时监控任务)失败。
73.有鉴于此,本说明书的实施例中提供了智能体集群控制方法,其可以应用于智能体的集群控制系统侧。参考图1所示,在本说明书一些实施例,所述智能体集群控制方法可以包括以下步骤:
74.s101、确定智能体集群中任意两个智能体间的最短路径,并根据所述最短路径、所述集群中智能体的通信距离及感知距离确定约束条件。
75.s102、在所述约束条件约束下,根据最多锚点保留算法(retain most anchors,简称rma)从所述集群中选择智能体,以用于感知新增的目标点。
76.s103、在所述集群的通讯拓扑中,以选择的智能体作为根节点,并按照所有非父邻居节点均为子节点的规则建立树状结构。
77.s104、根据拓扑不变的运动规划(topology-fixed motion planning,简称tmp)算法控制所述树状结构下的智能体分布式移动,直至所述目标点被所述根节点感知到。
78.在本说明书的实施例中,由于智能体的分布式移动是树状结构下通过tmp算法控制实现的,从而使得能够在维持智能体集群的通讯拓扑固定的情况下,允许智能体集群的物理拓扑作部分改变,以让被选择智能体的覆盖到新增的目标点,同时尽量减少为覆盖新增的目标点所造成的已被覆盖的旧目标点损失。不仅如此,基于rma算法从集群中选择用于感知新增的目标点的智能体,可以有利于智能体集群在覆盖新增的目标点时,进一步减小已被覆盖的旧目标点的损失。本说明书的实施例中的覆盖是指目标点落入位于智能体的感知距离范围内。
79.本领域技术人员可以理解,本说明书的实施例中,维持(或保持)一智能体的通讯拓扑不变(或固定)是指,在初始时一智能体与哪些智能体间存在连接,则在后续移动过程中则一直保持和这些智能体的距离小于通信距离,以保证其与这些智能体的连接不断开。而允许智能体集群的物理拓扑作部分改变是指,一智能体在移动时只考虑与初始连通的智能体中的部分智能体保持连接不断开,而非与所有的初始连接的智能体保持连通。
80.在本说明书一些实施例中,智能体集群中每个智能体可以在感知距离r1范围内感知到目标点,且当处在通信距离r2范围内时,智能体集群中任意两个智能体之间可以互相进行通信。记a为智能体集群的节点集合,t为智能体集群的通讯拓扑(即边集合),g(a,t)为节点集合为a,且边集合为t的连通无环图。
81.因此,对于任意两个智能体ai,aj(ai,aj∈a),可以计算并存储两者在无环图g(a,t)中的最短路径,记l
i,j
为路径长度。计算任意两个智能体ai,aj在无环图g(a,t)中的最短路径可以用于后续生成约束条件。在一些示例性实施例中,例如,可以基于深度或广度优先搜索算法、弗洛伊德算法、迪杰斯特拉算法(dijkstra)或bellman-ford算法等计算无环图g(a,t)中任两智能体ai,aj间的最短路径。
82.研究表明智能体集群中任意两个智能体间的最短路径、感知距离和通信距离是影响智能体集群的通信开销和感知能力的重要因素。因此,为了兼顾智能体集群的通信开销和感知能力,可以根据最短路径、通信距离及感知距离设定约束条件。
83.在本说明书的一些实施例中,约束条件可以为d
t

new
,ac)≤r1+r2*l
a,c
。其中,τ
new
为新增的目标点,ac为智能体a的锚点c,d
t

new
,ac)为t时刻τ
new
和ac之间的距离,r1为智能体的感知距离,r2为智能体的通信距离,l
a,c
为智能体a与其锚点c之间的最短路径长度。可见,在上述的约束条件中,不等式左边代表锚点和新增的目标点之间的距离,不等式右边代表智能体和锚点之间的理论最大距离(即通信距离)加上感知距离;对于满足该不等式的智能体、锚点和新增的目标点,可以近似地认为该智能体能够覆盖到该新增的目标点,同时该锚点可以保持不移动(即通讯拓扑中智能体与该锚点之间的边可以被维持不断开)。
84.在本说明书的一些实施例中,在根据rma算法从所述集群中选择智能体时,可以记d
t

new
,ac)为t时刻τ
new
和ac之间的欧氏距离,首先,rma算法对于任意两个智能体ai,aj∈a有如下定义:若ai正负责感知至少一个目标点,且在两者最短路径上的其他智能体均未感知目标点,则可以称ai为aj的一个锚点。其次,对于每个智能体a∈a,可以检测在a至其他智能体的最短路径上存在正负责感知至少一个目标点的智能体数量,即在当前时刻t下a的锚点集合可以被计算出来;显然,当前时刻t下a的锚点集合可以维持通讯拓扑不变,以免影响其感知。然后,对于每个智能体a,rma算法计算满足条件d
t

new
,ac)≤r1+r2*l
a,c
的锚点数目;其中,可以记ka为智能体的锚点数量。最后,rma算法可以选择智能体a
root
=argmax
a∈a
ka来负责感知τ
new
(即新增的目标点)。
85.本领域技术人员可以理解,上述根据rma算法从集群中选择智能体仅为示例性举例说明,本说明书对此不作唯一限定;在本说明书的其他实施例中,根据实际需要,也可以选择例如随机采样、选择最近等算法替代。
86.在本说明书的一些实施例中,为了便于后续控制智能体的移动,可以在集群的通讯拓扑中,以选择的智能体作为根节点,并按照所有非父邻居节点均为子节点的规则建立树状结构。
87.在本说明书的一些实施例中,所述按照所有非父邻居节点均为子节点的规则建立树状结构可以包括:
88.(1)、将所述根节点的所有邻居节点作为该根节点的子节点。在本说明书的实施例中,一个节点的邻居节点是指:集群的通讯拓扑中,与该节点的距离为一跳的智能体。因此,根节点的所有邻居节点是指:集群的通讯拓扑中,与所述根节点的距离为一跳的所有智能体。
89.例如,以图3所示的实施例为例,集群包括三个智能体u1,u2,u3,若u1被选择为根节点,由于与u1的距离为一跳的智能体只有u2,因此u2可以作为u1的子节点(相应的,u1即为u2的父节点)。
90.(2)、确认所述集群的通讯拓扑中是否存在未参与建树的智能体。如果不存在,则完成树状结构的建立;否则执行步骤(3)。在本说明书的实施例中,一个节点未参与建树是指:该节点不属于树中的数据元素,即该节点不构成树状结构的一部分。
91.(3)、如果存在,则对于当前树状结构中的每个叶子结点(叶子结点是指一棵树中没有子结点的结点),将其所有非父邻居节点作为自身的子节点。在本说明书的实施例中,一个叶子节点的所有非父邻居节点是指:集群的通讯拓扑中,除其父节点之外的所有邻居节点。
92.例如,以图3所示的示例性实施例为例,假设当前树状结构由u1和u2构成(即u3当前
尚未参与建树),其中,u2为u1的子节点,则显然此时u2为当前树状结构的叶子结点。而在集群(u1,u2,u3)的通讯拓扑中,u2的所有邻居节点包括u3与u1,但由于u1是u2的父节点,因此,u2的所有非父邻居节点为u3。
93.(4)、重复以上步骤(2)~(3)直至所述集群的通讯拓扑中所有智能体均参与建树。
94.在本说明书的实施例中,分布式移动是指:在移动过程中不能与集群中所有智能体直接通讯,即智能体只能与集群中在其通信范围内的智能体直接通讯,并可以通过他们转发消息,以实现与集群中在其通信范围之外的智能体间的通信。
95.在本说明书的一些实施例中,在调用tmp算法控制所述树状结构下的智能体分布式移动之前,先令所述新增的目标点作为所述根节点的父节点。即tmp算法可以使τ
new
成为a
root
的移动目标,并定义τ
new
为a
root
的父节点。此外,对于每个非根节点的智能体,可以令其父节点的父节点作为自身移动目标(即使其祖父节点作为自身移动目标)。如此,可以使非根节点通过自身移动帮助其父节点的移动,即减少自身对父节点移动的限制,最终实现减少对根节点的移动限制。
96.在此基础上,调用tmp算法控制所述树状结构下的智能体分布式移动,可以包括以下步骤:
97.(1)、调用最近目标点(nearest destined point,简称nrpt)算法寻找目标位置;所述目标位置为所述根节点在保持对其已感知目标点和其所有邻居节点的连接,且处于距离根节点的移动目标最近的位置;
98.(2)、判断所述目标位置是否满足d
t
(τ,pn)《d
t
(τ,a);其中,τ为所述根节点的移动目标,pn为目标位置,a为根节点,d
t
(τ,pn)为t时刻τ与pn之间的距离,d
t
(τ,a)为t时刻τ与a之间的距离。
99.其中,所述调用nrpt算法寻找目标位置可以包括:分别以所述根节点的每个邻居节点所在位置为圆心,以通信为半径生成圆;在所有圆相交区域中寻找目标位置。
100.例如,在图2所示的示例性实施例中,对于智能体u
root
寻找目标位置pn时,集合c中包括两个圆,分别是以u1,u2为圆心,以通信距离为半径的圆;而后在两圆的相较区域中寻找距离u
root
目标点τ最近的位置,并判断找到的位置pn相较于u
root
当前所在位置,是否距离τ更近,由于图2中找到的pn点距离更近,因此对于u
root
成功找到了这样一个位置。
101.(3)、如果所述目标位置满足d
t
(τ,pn)《d
t
(τ,a),可以将所述根节点移动至所述目标位置,并在所述根节点结束移动后仍未感知到所述新增的目标点时,使所述根节点重新寻找目标位置,直至所述根节点感知到所述新增的目标点。
102.(4)、如果所述目标位置不满足d
t
(τ,pn)《d
t
(τ,a),调用瓶颈(bottleneck,简称btnk)算法寻找阻碍所述根节点向其移动目标移动的瓶颈节点。在本说明书的实施例中,瓶颈节点可以为目标点或智能体。当所述瓶颈节点为所述根节点正在感知的目标点时,结束对其的感知并使所述根节点重新寻找目标位置。当所述瓶颈节点为一智能体时,使所述根节点向其发送协助请求,并在收到该智能体的协助响应后使所述根节点重新寻找目标位置,直至所述根节点感知到所述新增的目标点。
103.显然,当所述根节点的瓶颈为一智能体,且该智能体仅依靠自身的移动无法进一步减少对根节点移动的限制时,表明该智能体也存在自己的瓶颈,此时,该智能体可以像根节点那样寻找自己的瓶颈节点并进行对应的处理。
104.因此,前述nrpt算法的目标也可以为一非根节点的智能体a,在保证能够继续感知其目标点和保证若其t中邻居不移动则仍能与他们通信的条件下,寻找一位置pn,使得d
t
(τ,pn)《d
t
(τ,a),其中τ为a的移动目标。记p
t
(
·
)为一智能体或目标点在当前时刻t的位置,n(
·
)为距离某智能体仅一跳距离的邻居集合,为某智能体当前正负责感知的目标点集合,则nrpt算法的步骤可总结如下:
105.a)初始化一圆的集合
106.b)对任意an∈n(a)添加以p
t
(an)为圆心以rc为半径的圆到集合c中。
107.c)解决在c中所有圆相交区域中寻找一点pn,使得该相交区域中没有其他点距离p
t
(τ)更近这一几何问题。
108.d)若d
t
(τ,pn)《d
t
(τ,a)则返回pn,否则nrpt寻找该位置失败。
109.也就是说,收到所述协助请求的智能体以其父节点的父节点作为其移动目标,执行与所述根节点对应的步骤,并在移动到距离其移动目标更近的位置后返回所述协助响应。具体的,对于任意一个收到所述协助请求的智能体:
110.(1)、调用nrpt算法寻找目标位置;所述目标位置为该智能体在保持对其已感知目标点和其所有邻居节点的连接,且处于距离该智能体的移动目标最近的位置;
111.(2)、判断所述目标位置是否满足d
t
(τ,pn)《d
t
(τ,a);其中,τ为该智能体的移动目标,pn为目标位置,a为该智能体,d
t
(τ,pn)为t时刻τ与pn之间的距离,d
t
(τ,a)为t时刻τ与a之间的距离。
112.(3)、如果所述目标位置满足d
t
(τ,pn)《d
t
(τ,a),可以将该智能体移动至所述目标位置,并使该智能体在结束移动后向所述根节点返回所述协助响应。
113.(4)、如果所述目标位置不满足d
t
(τ,pn)《d
t
(τ,a),调用btnk算法寻找阻碍该智能体向其移动目标移动的瓶颈节点。当所述瓶颈节点为该智能体正在感知的目标点时,结束对其的感知并使该智能体重新寻找目标位置。当所述瓶颈节点为另一智能体时,使该智能体向该另一智能体发送协助请求,并在收到该另一智能体的协助响应后重新寻找目标位置,以便于向所述根节点返回协助响应。而对于收到协助请求的该另一智能体,则又可以执行类似于该智能体对应的步骤,以此递推。
114.其中,所述调用btnk算法寻找阻碍所述根节点向其移动目标移动的瓶颈节点,可以包括以下步骤:
115.确定与所述根节点距离等于通信距离的所有智能体,以作为第一集合;并确定与所述根节点距离等于感知距离的所有目标点,以作为第二集合;
116.在所述第一集合和所述第二集合的并集中寻找元素,使得该元素所在位置与p
t
(a)和p
t
(τ)交成的角度相较于其他元素是最大的,并将该元素作为所述根节点的瓶颈节点返回。其中,p
t
(a)为所述根节点a在当前t时刻的位置,p
t
(τ)为所述移动目标τ在当前t时刻的位置。
117.其中,该元素所在位置与p
t
(a)和p
t
(τ)交成的角度相较于其他元素是最大的是指:若该元素当前位置为点a,位置p
t
(a)为点b,位置p
t
(τ)为点c,则此处交成的角度是指∠abc,也即射线ba和射线bc的夹角。研究表明,当该角度越大,则该元素对于其父节点的阻碍作用越大。因此,可以将该元素作为瓶颈节点返回。
118.同样,前述btnk算法的目标也可以为一非根节点的智能体a,对于一个nrpt算法无
法为其找到pn的智能体a,为其找到阻碍其向移动目标靠近的瓶颈节点。btnk算法的步骤可总结如下:
119.a)计算可能是a的瓶颈节点的智能体集合ns={as|as∈n(a)∧d
t
(a,as)=rc}以及可能是a的瓶颈节点的目标点集合
120.b)在集合中寻找元素,使得该元素当前位置与p
t
(a)和p
t
(τ)交成的角度(定义在区间[0,π]上)相较于其他元素是最大的,而后将该元素作为a的瓶颈节点返回。其中,为智能体a在当前时刻t正在覆盖的目标点集合。
[0121]
应当指出的是,上述根据tmp算法、nrpt算法以及btnk算法,仅作为示例性举例说明,本说明书对此不作唯一限定;在本说明书的其他实施例中,根据实际需要,也可以选择其他任何合适的算法替代。
[0122]
为便于理解,下面结合图3~图8所示,描述三个智能体形成的集群去覆盖两个目标点的迁移变化过程。参考图3所示,集群包括三个智能体u1,u2,u3;通讯拓扑包括链路(u1,u2)及(u2,u3);初始时旧的已出现的目标点τ已被智能体u3覆盖,τ
new
为新增的目标点。根据rma算法u1成为负责感知新出现目标点τ
new
的根节点智能体,但由于u2的限制,u1在运行nrpt算法后发现自己无法移动到距离τ
new
更近的地方,因此,其运行btnk算法,认为u2是瓶颈节点,并向u2请助。结合图4所示,u2在收到帮助请求后将τ
new
设置为自己的目标点,并和u1一样尝试移动到距离其目标更近的地方。结合图5所示,当u2成功移动到离其目标点更近的地方后,并向其父节点u1进行协助响应。结合图6所示,当u1在收到协助响应后,获知限制自己移动的瓶颈节点已经被解决,因此可以重新进行移动尝试。结合图7所示,u1重新进行移动尝试后,发现这次已成功移动到距离τ
new
更近的地方,并可以将τ
new
覆盖(即可以感知到目标点τ
new
)。最终新增的τ
new
和旧的τ被同时覆盖,即u1感知τ
new
,u3感知τ(例如图8所示)。
[0123]
为了评测本说明书实施例的智能体集群控制方法的可行性,可以进行仿真试验。在仿真试验中,智能体集群的通信距离被设置为70m,感应距离被设置为50m,智能体的移动速度被设置为8m/s,t中邻居节点的最大个数被设置为3,目标点的位置均在以所有智能体位置的几何中心为圆心、以1118m为半径的圆中均匀采样得到。结合图9所示,随后包含15、20、50、80、100个智能体的集群被分别评估。在图9中,纵坐标表示集群平均感知目标点个数,横坐标表示智能体集群的规模;rma+tmp对应的曲线为采用本说明书实施例的智能体集群控制方法的试验结果;rand+tmp对应的曲线为将rma算法替换为随机采样方法之后的试验结果;exp对应的曲线表示当所有智能体均静止且以最小感知区域重叠代价实现连通情形下的期望感知表现。图9呈现的试验结果表明,采用本说明书实施例的智能体集群控制方法显著地超越了其他算法。综合所有仿真实验轮数而言,rma+tmp平均比rand+tmp多感知5.44个目标点,平均比exp多感知5.60个目标点。由此验证了本说明书实施例的智能体集群控制方法的可行性。
[0124]
进一步地,图10中展示了当所有目标点初始时均已出现且需要在保持通讯拓扑限制下被尽可能多地感知时,各算法在最后一轮仿真中的平均感知目标点数目。虽然这样的一个移动感知优化问题被证明是np困难问题,但其仍可通过松弛限制条件来将其转化为一个混合整数线性规划问题。如此,就能够解出当所有目标点初始位置被给定时,在保证通讯拓扑可行限制条件满足情况下,部署特定数目智能体以感知更多目标点的问题。这个混合
整数线性规划的结果可以被视为该移动感知问题的较优解(或最优解)。在图10中,纵坐标表示集群在最后一轮仿真中的平均感知目标点个数,横坐标表示智能体集群的规模;opt(optimum)对应的曲线表示移动感知问题的最优解;rma+tmp对应的曲线为采用本说明书实施例的智能体集群控制方法的试验结果;rand+tmp对应的曲线为将rma算法替换为随机采样方法之后的试验结果;exp对应的曲线表示当所有智能体均静止且以最小感知区域重叠代价实现连通情形下的期望感知表现。图10中的结果显示,采用本说明书实施例的智能体集群控制方法显著超越了exp和rand+tmp算法,且随着集群中智能体数目的增加,该算法与opt表现得非常接近。
[0125]
进一步地,图11中展示了当经历同样的移动过程和流量产生但使用不同的路由协议时智能体之间的通信表现。智能体应用的移动规划产生自rma+tmp算法(随后简称为tmp),动态路由协议(olsr和dsdv)以及基于通讯拓扑的静态单播路由表(p2p)分别被用于路由。试验结果表明,本说明书实施例的智能体集群控制方法实现了极低的端到端时延(end to end delay),综合所有仿真轮数而言,平均约是tmp-olsr的1/32倍。在集群规模为80的试验中,tmp-p2p的端到端时延平均约是tmp-olsr的1/53倍,以及tmp-dsdv的1/63倍。此外,tmp-p2p是唯一达到了100%包传输率(packet delivery ratio)的方法,也即没有丢包现象。
[0126]
进一步地,图12中展示了分别展示了当经历同样移动过程和流量发生时,使用不同路由协议情况下的端到端时延(end to end delay),平均包转发次数(跳数,hop count),平均到每个智能体上的路由流量(routing traffic per agent)以及路由流量与传输数据之比(routing load ratio),这揭示了图11所示结果背后的原因。图12所示的结果表明,尽管使用olsr时平均的包转发次数要少于使用静态路由(p2p)时的,但olsr产生的流量大约是后者的2.93~12.25倍。此外,综合所有试验轮数而言,olsr产生的流量大小约是传输数据大小的1.86倍。因此,试验结果表明本说明书实施例的智能体集群控制方法通过大幅减少动态路由协议带来的开销,显著改善了智能体网络的通信表现。
[0127]
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
[0128]
参考图13所示,与上述的智能体集群控制方法对应,本说明书一些实施例智能体集群控制装置可以包括:
[0129]
确定模块131,可以用于确定智能体集群中任意两个智能体间的最短路径,并根据所述最短路径、所述集群中智能体的通信距离及感知距离确定约束条件。
[0130]
选择模块132,可以用于在所述约束条件约束下,调用rma算法从所述集群中选择智能体,以用于感知新增的目标点。
[0131]
建立模块133,可以用于在所述集群的通讯拓扑中,以选择的智能体作为根节点,并按照所有非父邻居节点均为子节点的规则建立树状结构。
[0132]
移动模块134,可以用于调用tmp算法控制所述树状结构下的智能体分布式移动,直至所述目标点被所述根节点感知到。
[0133]
在本说明书一些实施例的智能体集群控制装置中,所述约束条件可以包括:d
t

new
,ac)≤r1+r2*l
a,c

[0134]
其中,τ
new
为新增的目标点,ac为智能体a的锚点c,d
t

new
,ac)为t时刻τ
new
和ac之间的距离,r1为智能体的感知距离,r2为智能体的通信距离,l
a,c
为智能体a与其锚点c之间的最短路径长度。
[0135]
在本说明书一实施例中,在所述约束条件约束下,调用rma算法从所述集群中选择智能体,以用于感知新增的目标点,包括:
[0136]
对于所述集群中的每个智能体,确定该智能体的满足所述约束条件的锚点数量;
[0137]
从所述集群中选择具有满足所述约束条件的锚点最多的智能体,以用于感知新增的目标点;
[0138]
其中,所述锚点是指:对于所述集群中的任意两个智能体ai和aj,若ai正负责感知至少一个目标点,且在两者最短路径上的其他智能体均未感知目标点,则ai为aj的一个锚点。
[0139]
在本说明书一实施例中,所述按照所有非父邻居节点均为子节点的规则建立树状结构,包括:
[0140]
将所述根节点的所有邻居节点作为该根节点的子节点;
[0141]
确认所述集群的通讯拓扑中是否存在未参与建树的智能体;
[0142]
如果存在,则对于当前树状结构中的每个叶子结点,将其所有非父邻居节点作为自身的子节点;
[0143]
依次递推,直至所述集群的通讯拓扑中所有智能体均参与建树。
[0144]
在本说明书一些实施例的智能体集群控制装置中,所述调用tmp算法控制所述树状结构下的智能体分布式移动,包括:
[0145]
调用最近目标点nrpt算法寻找目标位置;所述目标位置为所述根节点在保持对其已感知目标点和其所有邻居节点的连接,且处于距离根节点的移动目标最近的位置;
[0146]
判断所述目标位置是否满足d
t
(τ,pn)《d
t
(τ,a);其中,τ为所述根节点的移动目标,pn为目标位置,a为根节点,d
t
(τ,pn)为t时刻τ与pn之间的距离,d
t
(τ,a)为t时刻τ与a之间的距离;
[0147]
如果所述目标位置满足d
t
(τ,pn)《d
t
(τ,a),将所述根节点移动至所述目标位置,并在所述根节点结束移动后仍未感知到所述新增的目标点时,使所述根节点重新寻找目标位置,直至所述根节点感知到所述新增的目标点。
[0148]
在本说明书一些实施例的智能体集群控制装置中,所述调用tmp算法控制所述树状结构下的智能体分布式移动,还包括:
[0149]
如果所述目标位置不满足d
t
(τ,pn)《d
t
(τ,a),调用btnk算法寻找阻碍所述根节点的智能体向其移动目标移动的瓶颈节点;
[0150]
当所述瓶颈节点为所述根节点正在感知的目标点时,结束对其的感知并使所述根节点重新寻找目标位置;
[0151]
当所述瓶颈节点为一智能体时,使所述根节点向其发送协助请求,并在收到该智能体的协助响应后使所述根节点重新寻找目标位置,直至所述根节点感知到所述新增的目标点;
[0152]
其中,收到所述协助请求的智能体以其父节点的父节点作为其移动目标,执行与所述根节点对应的步骤,并在移动到距离其移动目标更近的位置后返回所述协助响应。
[0153]
在本说明书一些实施例的智能体集群控制装置中,所述调用nrpt算法寻找目标位置,可以包括:
[0154]
分别以所述根节点的每个邻居节点所在位置为圆心,以通信为半径生成圆;
[0155]
在所有圆相交区域中寻找目标位置。
[0156]
在本说明书一些实施例的智能体集群控制装置中,所述调用btnk算法寻找阻碍所述根节点向其移动目标移动的瓶颈节点,可以包括:
[0157]
确定与所述根节点距离等于通信距离的所有智能体,以作为第一集合;并确定与所述根节点距离等于感知距离的所有目标点,以作为第二集合;
[0158]
在所述第一集合和所述第二集合的并集中寻找元素,使得该元素所在位置与p
t
(a)和p
t
(τ)交成的角度相较于其他元素是最大的,并将该元素作为所述根节点的瓶颈节点返回;
[0159]
其中,p
t
(a)为所述根节点a在当前t时刻的位置,p
t
(τ)为所述移动目标τ在当前t时刻的位置。
[0160]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0161]
在本说明书一些实施例中,图14展示了部署智能体集群控制装置至智能体(移动机器人或无人机)集群时的系统结构图。具体地,每个智能体上可以配置有linux内核的计算设备(如raspberry pi 3b),该设备上可以运行有智能体代理程序(即前述的智能体集群控制装置)。智能体代理程序首先负责与智能体上的移动控制器进行通信,向其发送控制指令、收集及初步处理智能体感知到的数据,同时智能体代理程序会进行任务决策,如执行根据前述智能体集群控制方法的指令,由于在此过程中可能需要与其他智能体通信,因此智能体代理程序亦可能与其他智能体代理程序进行通信以合作完成感知任务。智能体代理程序还负责将初步处理的数据直接或交由其他智能体代理程序回传至集群监控中心,并接收其任务指令,如前述rma算法输出的任务分配方案。
[0162]
在本说明书一些实施例中,在电子设备上(例如个人计算机)上可以运行有集群监控中心程序,其在上层拥有图形用户接口以直观地向用户展现当前的集群状态、任务执行情况,在底层有网络及通信组件以与智能体代理程序通信收集其感知信息并向其发送任务指令,并与监控中心程序中各组件通信以向其输入感知信息、集群状态并接受他们的输入,如任务相关指令。集群监控中心程序的核心部分是各功能性组件,如负责安全监测的组件、信息融合处理组件,以及与感知任务相关的任务分配组件,其上运行着前述rma算法以选择负责感知新出现兴趣点的智能体。此外,该架构下还可以容纳其他与具体感知任务相关的组件。
[0163]
如图15所示,在本说明书一些实施例中还提供一种计算机设备,计算机设备1502可以包括一个或多个处理器1504,诸如一个或多个中央处理单元(cpu)或图形处理器(gpu),每个处理单元可以实现一个或多个硬件线程。计算机设备1502还可以包括任何存储器1506,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施方式中,存储器1506上并可在处理器1504上运行的计算机程序,所述计算机程序被所述处理器1504运行时,可以执行根据上述方法的指令。非限制性的,比如,存储器1506可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储
器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备1502的固定或可移除部件。在一种情况下,当处理器1504执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备1502可以执行相关联指令的任一操作。计算机设备1502还包括用于与任何存储器交互的一个或多个驱动机构1508,诸如硬盘驱动机构、光盘驱动机构等。
[0164]
计算机设备1502还可以包括输入/输出模块1510(i/o),其用于接收各种输入(经由输入设备1512)和用于提供各种输出(经由输出设备1514))。一个具体输出机构可以包括呈现设备1516和相关联的图形用户接口1518(gui)。在其他实施例中,还可以不包括输入/输出模块1510(i/o)、输入设备1512以及输出设备1514,仅作为网络中的一台计算机设备。计算机设备1502还可以包括一个或多个网络接口1520,其用于经由一个或多个通信链路1522与其他设备交换数据。一个或多个通信总线1524将上文所描述的部件耦合在一起。
[0165]
通信链路1522可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路1522可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
[0166]
本技术是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0167]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0168]
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0169]
在一个典型的配置中,计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0170]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0171]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0172]
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0173]
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0174]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0175]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1