【无标题】基于K-means聚类的多智能体跟随多领导者算法

这篇具有很好参考价值的文章主要介绍了【无标题】基于K-means聚类的多智能体跟随多领导者算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

源自:系统仿真学报

作者:袁国栋 何明  马子玉  张伟士 刘学达, 李伟

为防止多智能体集群跟随多个领导者时编队混乱,提出了3种K-means聚类算法,将集群分成与领导者数量相同的社区,社区内的智能体将跟随同一领导者。所提出的3种算法中,算法1适用于智能体分布空间广的场景,系统达到一致性所需时间最短;算法2则适用于智能体分布稀疏的场景,可有效避免智能体碰撞等危险;算法3则大大降低多智能体集群的控制成本,但将会牺牲系统的收敛速度。相较于传统预先对智能体编号,领导-跟随关系固定的方法,本文提出的分簇方法使系统收敛时间更短,且有效应对中途任务变更的情况,可快速分配给智能体新的合适任务。

关键词

多智能体 ; 多领导者 ; K-means ; 编队控制 ; 分簇方法

引 言

在自然界中群体行为是物种常见的生存方式,如协同狩猎的狼群、“人”字迁徙的雁群、结队觅食的鱼群、分工协作的蜂群等等[1-4]。近年来集群的协同控制研究,特别是牵制控制激发了学者的广泛兴趣。与单个智能体独立工作相比,多智能体协同工作将简单的局部规则进化到协调的全局行为,将大大提高系统的运行效率、灵活性和容错能力。

基于智能体集群中是否有领导者和领导者的多少,多智能体一致性问题可分为3类:即无领导一致性问题[5]、单领导的领导-跟随一致性问题[6]和多领导的控制问题[7]。在无领导者集群一致性研究中,文献[8-9]研究了通信时延下的一致性问题,文献[10-11]提出基于事件触发机制实现一致性。单领导者一致性问题,即领导-跟随问题是多智能体领域主要研究方向。文献[12]提出虚拟领导者概念,实现自由状态下和避障条件下的集群一致性。而后文献[13]等提出牵制控制算法,证明集群内仅需若干个智能体接收到领导者运动信息便可实现集群一致性。多领导者的控制问题,则是将整个多智能体系统拆分,实现多个小集群的一致性。文献[14]等假设非同簇的智能体互不交换信息,设计一种不依赖初始状态且收敛时间固定的算法。文献[15]发现集群规模越大,引导全局运动的智能体数量所占比例则越小,且比重越小准确度越高。文献[16]针对固定拓扑的特殊网络中领导者数量冗余的问题,提出领导者最小数目算法。然而目前所做工作中,无人机规模通常小于10个,离数量超过100个的集群仍有较大差距,领导者只引导若干个跟随者,且领导-跟随关系预先确定,未考虑到复杂网络的随机性,距离实际运用与推广仍有很大距离。

社区挖掘算法是发现复杂系统模块结构特性的重要算法[17],在疫情防范、基因调控和预防网络犯罪等领域发挥着重要作用。传统社区挖掘算法包含LPA[18]和HANP[19]等算法,但这些算法不能准确预测网络中社区数量。而在多智能体系统中,领导者的数量一般预先给定且智能体初始位置随机分布,如果预先规定领导-跟随关系,运动过程中易发生碰撞危险。或者领导者与跟随者相距较远,直接影响系统达到一致性所需时间。

本文提出基于K-means聚类算法[20]将集群分割为与领导者数量相同的社区,社区内的智能体将跟随同一领导者。文章共设计3种算法以满足不同场景的需求。实验证明,相较于传统预分配式跟随多个领导者的算法,基于K-means算法更适合一般性拓扑结构的智能体网络。且集群中智能体数量越多,本文所提出的算法效率越高,系统的一致性越稳定。

1 基础理论

1.1

【无标题】基于K-means聚类的多智能体跟随多领导者算法

   图论

将智能体看作是一个点,存在通信的智能体间用直线连接,则多智能体系统的拓扑结构可用图论知识表示:图G(V, E, A),点集合V={1, 2,⋯, n}代表智能体,边集合E={(i, j)} 代表智能体 i 和 j 之间存在通信。

【无标题】基于K-means聚类的多智能体跟随多领导者算法

 代表邻接矩阵,其中。在无向图 G 一个节点的度被定义为与其直接相连点的个数,即,图的度矩阵则是对角线为各节点度的对角矩阵: 。

Laplacian矩阵被定义为

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(1)

其谱含有关于图结构特性的信息,最小非零特征值直接反映了图连通的鲁棒性。满足

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(2)

1.2

【无标题】基于K-means聚类的多智能体跟随多领导者算法

  K-means算法

K-means作为数据挖掘中的一种无监督聚类算法,实现简单且效果优秀,因而得到了广泛的应用。算法的核心思想是将给定的样本集,按照样本之间的距离远近划分为K个社区。让社区内的点尽量紧密的连在一起,而让社区间的距离尽量的大。在多智能体系统中,K-means算法对如何划分集群使得智能体跟随不同的领导者具有很强的指导作用。设样本集包含n个样本,位置信息为 xi (i=1, 2,…, n),K-means算法的基本流程为:

(1) 随机选取k个初始聚类中心

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(3)

(2) 样本i选择距离最近的聚类中心

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(4)

(3) 重新计算聚类中心

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(5)

(4) 重复步骤(2)和(3),直到聚类中心集合 M 发生改变。

设势能函数F(C, x)

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(6)

当聚类中心集合 M 不变时,势能函数F(C, x )达到最小值。但为了防止势能函数长时间不收敛,有时会限制迭代次数或对势能函数设置阈值以降低计算复杂度。

2 基于K-means的多智能体分簇方法

假设由N个独立个体组成的多智能体系统,需要跟随k位领导者。

算法1:基于K-means算法将集群分成k个社区并记录聚类中心位置,领导者选择距离合适的聚类中心,相应社区内的智能体将作为跟随者跟随该领导者。对于领导者如何选择距离合适的聚类中心问题,本文设想两种方法:距离极小极小值法和距离极小极大值法。

假设k个聚类中心位置为M={μ1, μ2,⋯, μk} ,领导者位置信息为pγi, i=1,2,⋯,k 。

距离极小极小法流程为:

(1) 每位领导者选择距离最近的聚类中心并记录具体数值

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(7)

(2) 设

【无标题】基于K-means聚类的多智能体跟随多领导者算法

,则领导者pγk 与式(9)中对应的μj 确定关系。

(3) 删除pγk 和μj ,剩余领导者和聚类中心重复步骤(1)和(2)。

而距离极小极大值法则是在步骤(2)中选择

【无标题】基于K-means聚类的多智能体跟随多领导者算法

的一对。

实验效果如图1所示,红色代表聚类中心,蓝色则是领导者位置。

【无标题】基于K-means聚类的多智能体跟随多领导者算法

图1   领导者和聚类中心之间的关系

如图1(a)中所示,由于距离极小极小值法中领导者优先选用距离最近的聚类中心,这导致后续的领导者无法选择理想的社区,系统总体分配不合理,可能存在某一对相距较大的问题。而距离极小极大值法虽牺牲个别领导者利益,但整体分配更为合理且有效。所以本文将选用距离极大极小值法来帮助选择聚类中心。

算法1实现的分簇如图2所示,其中符号‘☆’表示领导者。由图2可以看出,虽然各个社区之间距离较大,但因为分类过程与领导者无直接关联,所以有时个别领导者出现在另一个社区的范围内。

【无标题】基于K-means聚类的多智能体跟随多领导者算法

图2   算法1分簇结果

算法2:直接将k位领导者作为初始聚类中心M0={pγ1, pγ2,⋯, pγk} ,对K-means算法的迭代过程设置上限:

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(8)

即领导者始终属于某一固定社区,当该对应关系发生变化时,聚类过程停止,并保留上一次的聚类结果,如图3所示。

【无标题】基于K-means聚类的多智能体跟随多领导者算法

图3   算法2分簇结果

从图3可以看出,相较于算法1,算法2所实现的分簇使得社区与领导者之间联系的更为紧密,避免智能体在运动过程中发生碰撞的危险。但社区内部的智能体之间间隔较大,成员分布较为稀疏。

算法3:将互为邻居的智能体间用直线连接,可将多智能体网络分解为多幅子图。文献[13]提出选择子图中某一关键节点作为牵制控制节点,网络中只有牵制控制节点接收到领导者信息,剩余节点则通过局部通信实现逐渐一致。智能体的控制输入ui 重写为

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(9)

式中:hi 为牵制控制节点选择项

【无标题】基于K-means聚类的多智能体跟随多领导者算法

(10)

对牵制控制节点集合使用K-means聚类算法。对于如何选择关键节点问题,文献[21]提出的影响度矩阵既考虑到节点本身的重要性,也考虑到邻居节点的重要程度对它的影响。节点基于影响度矩阵的介数中心性越高,其影响力越大。本实验基于影响度矩阵选择牵制控制节点,并对牵制节点进行聚类分析,结果如图4所示。

【无标题】基于K-means聚类的多智能体跟随多领导者算法

图4   算法3分簇结果

从图4可以看出,需要聚类的智能体数减少至初始数量的一半。且智能体初始分布空间越小或智能体数量越多,其网络中子图数量也就越少,算法优势将越大。

3 仿真实验

3.1

【无标题】基于K-means聚类的多智能体跟随多领导者算法

   实验1

设多智能体系统个体数量N=100,所有个体的初始位置在100 m×100 m的空间内随机分布。智能体感知半径r =6。共有5位领导者,其初始位置和速度信息如表1所示,假设领导者匀速运动。

【无标题】基于K-means聚类的多智能体跟随多领导者算法

表1   领导者信息

3种算法中智能体的运动方式相同,差异在于如何确定智能体的领导-跟随关系。以算法3为例,在确定领导-跟随关系后,智能体集群的最终状态如图5所示。从图5可以看出,跟随者成功跟随领导者,未出现碰撞或丢失的情况。

【无标题】基于K-means聚类的多智能体跟随多领导者算法

图5   智能体最终分布

智能体的速度变化如图6所示,从图6可以看出,智能体跟随对应的领导者,速度逐渐一致,使得集群整体实现一致性。

【无标题】基于K-means聚类的多智能体跟随多领导者算法
图6   智能体速度变化

3.2   实验2

本实验主要分析3种算法对智能体集群分簇的优劣。其中算法3只对牵制节点聚类,而剩余智能体则靠局部通信跟随牵制智能体,所以将子图中剩余智能体划入牵制节点对应的社区中。假设领导者和智能体集群初始位置随机,k=5,N=100。共选择5组数据,计算势能函数ln(F( Pγ, x )),如表2所示。

【无标题】基于K-means聚类的多智能体跟随多领导者算法
表2   势能函数值

从表2可以看出,算法3和算法2所划分的社区大致相同且要优于算法1,这说明整个网络中存在冗余的信息,而算法3仅对网络中关键节点进行聚类,既保证了足够的精度也降低了计算复杂度。多智能体集群中个体数量越多,算法3优势越大。算法1虽然保证社区内部成员紧密和社区间保持足够距离,但因为领导者与最终聚类中心的位置差异导致领导者作为社区中心时要劣于另外2种算法。

3.3   实验3

本实验主要分析3种算法对系统整体达到一致性所需时间的影响,定义速度差异函数

【无标题】基于K-means聚类的多智能体跟随多领导者算法
(11)

记智能体i与所属领导者γi 保持同步条件

【无标题】基于K-means聚类的多智能体跟随多领导者算法
(12)

最终系统保持同步条件

【无标题】基于K-means聚类的多智能体跟随多领导者算法

。在实验2的5组样本基础上,系统最终收敛时间如表3所示。

【无标题】基于K-means聚类的多智能体跟随多领导者算法
表3   收敛时间 (s)

从表3可以看出,算法1由于社区内部智能体间联系的更为紧密,响应速度更快,可以快速实现整个集群的一致性。而算法3相较于其他2种算法,因为只有某些关键智能体可以接收到领导者信息,剩余智能体则通过局部通信与周围智能体保持一致。所以在收敛过程中,有些智能体会出现中途更换领导者的情况,系统总收敛时间较长。

从以上实验可以得出以下结论:

算法1中K-means算法运行完整,因而产生的k个社区彼此间距离大且社区内成员联系更为紧密。但聚类中心不可预测,这导致社区有时距领导者较远。所以算法1更适合智能体分布空间广且需要系统快速实现一致性的场景。

算法2以领导者位置作为初始聚类中心,相较于算法1,社区内智能体与领导者联系的更为紧密,且设置迭代上限,弥补了算法1中最终聚类中心未能均匀分布在领导者周围的不足。算法2更适用于空间小,智能体分布稀疏的场景。

算法3相较于算法1、2,直接参与聚类的智能体数量大大减少,降低了计算复杂度。牵制控制使得仅需少量智能体安装全局控制器,剩余智能体则凭借局部控制器使系统达到一致,更加节约成本,但系统达到一致性所需时间较长。所以在不考虑系统收敛时间,为降低控制成本的条件下,算法3优势更大。

4 结论

本文基于K-means算法解决多智能体集群跟随多个领导者时如何合理分配跟随者的问题。在中途任务变更或任务完成后领取新任务时,本文所提出的算法可跟据新任务重新分配给合适的智能体执行。文中的3种算法各有优劣,其中算法3在吸收前两者优势的基础上,提出牵制控制以引导集群实现一致,极大降低工程难度。集群规模越大,智能体越密集其收敛速度越快。此外本文所做工作主要是提高多领导者的集群规模并将集群初始状态改为随机。目前关于此方向研究较少,所以在横向比较中略显不足。但这也是接下来的研究内容,如何将现有优秀多领导者跟随算法应用于大规模集群并提高收敛速度是未来的主要研究方向。

本文仅用于学习交流,如有侵权,请联系删除 !!

加v“人工智能技术与咨询”  了解更多资讯!!文章来源地址https://www.toymoban.com/news/detail-422600.html

到了这里,关于【无标题】基于K-means聚类的多智能体跟随多领导者算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习实战:Python基于K均值K-means进行聚类(九)

    1.1 K-means的介绍 K均值( K-means )是一种基于距离度量的聚类算法,其主要思想是将数据集划分为k个不同的簇,每个簇代表一个相似度较高的数据组。该算法通过迭代优化来最小化所有数据点与其所属簇的欧氏距离之和,从而找到最佳的簇划分。 需要区分一下,K-means和KNN是两

    2024年02月16日
    浏览(35)
  • 【机器学习实战】Python基于K均值K-means进行聚类(九)

    1.1 K-means的介绍 K均值( K-means )是一种基于距离度量的聚类算法,其主要思想是将数据集划分为k个不同的簇,每个簇代表一个相似度较高的数据组。该算法通过迭代优化来最小化所有数据点与其所属簇的欧氏距离之和,从而找到最佳的簇划分。 需要区分一下,K-means和KNN是两

    2024年02月06日
    浏览(40)
  • 【聚类】K-Means聚类

    cluster:簇 这边暂时没有时间具体介绍kmeans聚类的原理。简单来说,就是首先初始化k个簇心;然后计算所有点到簇心的欧式距离,对一个点来说,距离最短就属于那个簇;然后更新不同簇的簇心(簇内 所有点的平均值 ,也就是簇内点的 重心 );循环往复,直至 簇心不变 或

    2024年02月09日
    浏览(34)
  • 毕业设计:基于python微博舆情分析系统+可视化+Django框架 K-means聚类算法(源码)✅

    毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅 感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。

    2024年01月19日
    浏览(49)
  • 【K-means聚类】

    聚类 定义:聚类是一种无监督的机器学习方法,它的主要目的是将数据集中的对象(或点)按照它们之间的相似性分组或聚类。这些聚类(或称为簇)中的对象在某种度量下是相似的,而不同聚类中的对象是不同的。简言之,聚类是将相似的对象归为一类,不同的对象归为不

    2024年02月22日
    浏览(43)
  • k-means聚类算法详解

    什么是特征向量? 用来描述样本点的一组数据,要和我们数学中的向量区别一下,本质来说就是个数组,数组中的每个元素代表从不同角度描述样本点的值。 K-means 是我们最常用的基于 欧式距离 的聚类算法,其认为两个目标的距离越近,相似度越大。 聚类就是对大量末知标

    2024年02月16日
    浏览(33)
  • K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

      目录  一、概述 二、经典K-means算法 三、K-means++算法 四、ISODATA算法 六、数据集测试       在本篇文章中将对四种聚类算法(K-means,K-means++,ISODATA和Kernel K-means)进行详细介绍,并利用数据集来真实地反映这四种算法之间的区别。       首先需要明确的是上述四种算法都属

    2024年01月23日
    浏览(47)
  • 四种确定K-means最佳聚类个数的方法(K-means++)——附代码

    目录 摘要: 1.K-means算法 2.Calinski-Harabasz Criterion(卡林斯基-哈拉巴斯指标,CH值) 3.Davies-Bouldin Criterion(戴维斯-博尔丁指标,DB值) 4.Gap Value(Gap值) 5.Silhouette Coefficient(轮廓系数) 6.基于Matlab的K-means聚类及最佳聚类数选取结果: 7.本文Matlab代码实现: Kmeans算法中,K值所决

    2024年01月17日
    浏览(46)
  • 无涯教程-聚类算法 - K-Means

    K-均值聚类算法计算质心并进行迭代,直到找到最佳质心为止,它假定群集的数目是已知的,它也称为扁平聚类算法。通过算法从数据中识别出的簇数以K均值中的\\\" K\\\"表示。 在该算法中,将数据点分配给群集,以使数据点和质心之间的平方距离之和最小。应当理解,簇内的较

    2024年02月10日
    浏览(45)
  • Python实现简单k-means聚类

    目录 1.导入原始数据集  2.首次计算中心点 3.进行迭代循环,不断优化样本中心点和聚类结果 4.聚类可视化 通过手动书写k-means聚类算法的逻辑实现聚类(而非使用python内置的sklearn) 不了解k-means聚类算法的话可以先去了解以下这种算法的原理,下面就直接进入正题啦~ 首先我

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包