多智能体系统蜂拥问题的研究 21
成?智能体。智能体绕过障碍物时,如图2-9。
图2-9(a)墙壁形障碍物,(b)球形障碍物
定义智能体和障碍物的排斥力方程为
??(t)??h(z/d?)(?1(z?d?)?1)
(2-26)
其中d??|||qi,k?qi||?,?k?Ni?(t),?1?z/1?z2。方程在距离逐渐增大到z=d时,作用力光滑变为0,之后一直为零。它们之间的人工势能函数为
??????(s)ds?0 (2-27)
最终,Olfati-Saber设计除了在障碍物环境下的虚拟领导者的蜂拥控制算法:
ui?fi?fi?figdr (2-28)
其中第一项是基本算法,第二项是避免碰撞,第三项是使智能体达到目标点,具体表示如下
ui?c1ui??a??(||q??c???(||qa1aj?qi||?)ni,j?c2j?qi||?)ni,j??a(q)(p?p)??c?a(q)(p?p)
ijji2ijjia (2-29)
ui??c1?1(qi?qr)?c2(pi?pr)?其中nij?qj?qi1??||qj?qi||2,ni,k?qi,k?qi1??||qi,k?qi||2。
2.4算法仿真结果
多智能体系统蜂拥问题的研究 22
本小节将应用Matlab工具对之前介绍的Olfati-Saber提出的前两种算法进行数值仿真,对理论结果进行验证。下面具体给出仿真参数:仿真时间loop=300,参数??0.1,智能体个数n?50,感知半径r=6,网格结构Lattice期望距离d=5,ph(z)参数h=0.9,a=1,b=2,智能体初始速度范围[?1,1],智能体初始位置范围为[50]?[50],领导者智能体参数c1=0.1c2=0.2,离散步长step=0.1。
Matlab仿真框架如下:
1)对智能体初始个数、速度、位置进行初始化。
2)实现各智能体对其感知半径范围内智能体的感知,具体实现为对邻接矩阵
A?[aji]赋值,若智能体
j在智能体i的感知半径内,则[aji]?0,否则[aji]?1。
3)分别用Matlab实现算法1ui?ui????(||qj?qi||?)nij??aij(q)(pj?pi)和算法2:
???(||qj?qi||?)nij??aij(q)(pj?pi)?fi(qi,pi,qr,pr),求出当前各智能体的加
r速度矢量。
4)用已知量求下时段的各参数,方程为q(t+1)=q(t)+step*p(t),p(t+1)=p(t)+step*u(t)。 5)通过求得的新阶段智能体的速度,位置矢量,进行下阶段计算。
6)进行loop次运算,每次保存个时间段的智能体速度位置信息,并最后将图形绘制出来。
2.4.1仿真算法1分裂结果
当蜂拥算法1的初始条件是任意选取时,由于初始状态是任意的,所有的智能体不一定能够形成一个连通的拓扑结构,因此可能会产生分裂象,如图2-10所示。整个群体被分为五个子组,每个子组内的智能体只能与自己子组内的智能体交换信息,而且在自己内部子组中达到局部蜂拥现象,但对于整个群体来说产生了分裂现象;只有当各分组在运行中碰巧相遇,这样子组之间才会发生信息交换。蜂拥控制的实现此时严重依赖于初始值的分布。本算法无法在任一条件下实现蜂拥,但是其体现了全部Reynolds原则,为了解决这一问题,Olfati提出了算法2,加入了领导智能体的概念,以避免蜂拥的分裂现象。
多智能体系统蜂拥问题的研究 23
图2-10算法1 仿真分裂结果,n=50
2.4.2算法二仿真结果
图2-11在2维空间中,50个智能体在算法2作用下的涌现行为。最初,50个智能体是随机落在50?50平面空间中的。各个智能体的初始速度坐标是均匀随即从[-1,1]中选取的。与之相对用,领导智能体的初始信息与普通智能体相同。离散步长取值为step=0.1,循环次数loop=100对涌向行为进行仿真,并记录各时间的智能体位置速度信息,在下图中,分别展示了采样时间为0.1,1,2,3,5,10秒的智能体信息。从仿真结果看到,在含有领导智能体的情况下,任意状态下智能体可以实现蜂拥,并使所有的智能体速度大小方向一致,并能形成Lattice结构。
多智能体系统蜂拥问题的研究 24
图2-11. 算法2仿真结果
2.5小结
本章对Reynolds原则和Olfati三种算法进行了详细的介绍,算法1通过各智能体对周围环境的感知形成蜂拥,算法2解决了算法1中由于感知信息不足造成的分裂现象。通过应用Matlab工具对Olfati提出的算法1和算法2进行了仿真,发现算法1在网络初始状态不连通的情况下会产生分裂,而加入虚拟领导者的算法2能较好的避免分裂实现蜂拥。在本章的基础上,我们将针对一些在实际应用中可能出现的问题对Olfati的算法进行改进。
多智能体系统蜂拥问题的研究 25
3 Oflati蜂拥算法改进
前面的章节已经对蜂拥问题的数学描述和Olfati算法进行了详细的介绍,并应用Matlab工具对Olfati提出的算法1和算法2进行了仿真。在此基础上,本章主要针对Olfati提出的算法2从两方面进行改进。
首先,Olfati算法2为了使所有智能体能够形成蜂拥避免分裂现象,每个智能体都知道虚拟领导者的信息,这种方法在现实生活中不易于实现。经一些科学研究表明,在自然界的大部分群集智能体系统中往往只有少部分个体能够感知虚拟领导者的信息,比如,鱼群在觅食过程中只有少部分鱼知道食物的信息,然后把信息传递给附近的智能体,形成蜂拥。本章将针对这一现象,研究仅有部分智能体感知虚拟领导者信息的情况下,群集系统的蜂拥实现情况。
其次,Olfati算法2尽管能够实现蜂拥结果,使每个智能体的速度方向与虚拟领导者速度方向达到一致。然而,在领导者智能体速度时变时,智能体不能够很好的跟踪领导者的速度大小,然而在实际应用中,虚拟领导者的速度一般均为时变。针对此问题,本章将研究当虚拟领导者速度时变时,如何改进蜂拥算法以期达到较好的跟踪效果。
为了开展将要进行的工作,在此首先对Olfati算法2进行简要的回顾介绍。 Olfati-Saber针对切换拓扑结构的基本蜂拥算法1容易形成分裂现象,因为在其基础上增加了关于位置和速度的反馈项。对于智能体i,他的控制输入函数为:
ui?ui?ui?uigdr或
ui????(||qj?qi||?)nij??aij(q)(pj?pi)?fi(qi,pi,qr,pr) (3-1)
r其中uir反映智能体受到来自领导者的影响,uig为速度一致项,uid为人工势能梯度函数。在初始能量有限的假设条件下,Olfati-saber证明了在控制算法2的作用下,Reynolds的三条规则均可以实现,其中包括聚合,速度匹配和避免碰撞。该算法初始值任意选取时,即使网络拓扑结构不连通分成几个子组,最终也能保证实现整体蜂拥,避免发生分裂现象。
3.1部分智能体感知虚拟领导者时蜂拥实现研究
3.1.1引言
之前提出的算法2通过对每个智能体添加引导反馈来实现跟踪目标的功能,假设每个智能体都具有领导智能体的信息,这样的假设的好处是能够保证每个智能体都能够内聚并达到其玩的速度,然而,这个假设和自然中的很多实例是不相符合的。
在自然界中,群体中往往只有很少的个体具有引导信息,比如食物所在的位置或者
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库多智能体蜂拥的研究(5)在线全文阅读。
相关推荐: