基于Boid模型的动物集群运动行为研究Word文档格式.docx
- 文档编号:21880298
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:22
- 大小:865.12KB
基于Boid模型的动物集群运动行为研究Word文档格式.docx
《基于Boid模型的动物集群运动行为研究Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Boid模型的动物集群运动行为研究Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
2.3、群体的活动范围有限;
2.4、个体的感知范围是一个圆形区域。
三、符号说明
3.1、
:
个体的本来方向;
3.2、
指向邻居中心的方向;
3.3、
邻居的平均方向;
3.4、
避免碰撞的方向;
3.5、
远离捕食者的方向;
3.6、
捕食者运动方向的反方向;
3.7、
群体的平均位置;
3.8、
群体的平均方向;
3.9、
速度;
3.10、
食物的位置;
3.11、
捕食者的位置;
3.12、
第
个个体的位置;
3.13、
一致性序数;
3.14、
群体的个数;
3.15、
邻居的个数。
四、模型的建立与求解
4.1、问题一
(1)、Boid模型
在群体运动过程中,每个个体都要遵守三条原则(尽量靠近邻居的中心、尽量与邻居的方向一致、尽量避免碰撞)运动,这三条原则对改变个体下一时刻运动方向起作用。
下面对三个原则进行描述:
a、向心性(靠近)
每个个体周围都会有邻居,个体的运动应根据邻居们的运动来确定自己的运动方向。
以邻居们所在位置的平均值作为邻居中心,每个个体都应具有向邻居中心靠拢的特性。
公式表示为:
b、同向性(对齐)
当邻居们的运动方向一致时,个体会和它的邻居朝同一个方向游动。
c、排斥性(避免碰撞)
当个体和它的邻居靠的太近时,可能会发生碰撞,个体应自动避开,以免影响群体的运动,出现混乱。
则下一时刻的运动方向(
为权重,可以根据偏好决定):
(2)、改进模型
在Boid模型基础上,增加内聚性(向群体中心聚合)、排列性(朝平均的方向运动)、可变速性三个原则,共同来限制个体的运动。
a、内聚性
仅具向心性可能会导致鱼群分散为多个小群体,为了避免这种情况发生,各个体在运动过程中都应主动向群体中心靠拢,跟随群体的运动。
b、排列性
仅与邻居的运动方向保持一致,不能很好地模仿群体的运动,所以个体的运动方向也要与群体的平均运动方向一致。
c、可变速性
对个体而言,由于视野半径是有限的,它只能根据自己认为的最优方向进行运动,在邻居的运动方向十分混乱时,它虽然可以上按照策略得出平均运动方向,但这个方向不能很好地刻画出周围的同步方向。
在这种情况下,个体应采取相对保守的策略,即虽然得出了平均运动方向并调整了运动方向,但由于对这个方向的不确定性,为了避免多次进行方向调整,可以采取降低自己的速度,仅当邻居们已经达到同步的情况下,在令其以较快的速度进行运动。
为了描述局域个体的同步程度,我们引入
,称为第
个个体的视野半径内所有个体的同步序列数:
的取值在0到1之间,取值越大,表示该半径内个体方向一致性好,即局域同步程度越高;
取值越小,则表示该处个体局域同步程度越低。
当
时,该半径内所有个体方向都一致。
我们将个体的速率大小的变化范围定为[0,0.1]。
根据上面的讨论,可变速率的运动协议应当满足:
a、当
,即视野半径内所有个体达到同步时,该个体的速率为0.1。
b、当
,即视野半径内所有个体的运动状态完全混乱时,该个体的速率接近0。
这里
,
为一可调参数,当
时,速度为原速度,当
,个体的运动速度比原模型快,系统更易趋于同步。
这样,速率不仅具有改变下一时刻的作用,而且是携带信息的载体。
这种信息就是个体的一致性序数。
为了是所有的个体尽快达到同步,下一时刻速度方向的计算中,我们就利用这一信息,以加快收敛速度。
当个体超出活动范围时,它会向相反的方向运动,即:
当在活动范围内时,对各个原则的影响设置权重,在此更多地考虑聚集性和排列性。
下一时刻的方向:
下一时刻的位置:
运用MATLAB模拟,可得:
t=0st=10s
4.2、问题二
当个体和捕食者的距离较短时,该个体迅速逃逸,暂时不考虑对群体的影响。
当捕食者在其感知范围内且处于危险区之外,主要考虑个体逃逸,虽然此时群体的影响存在,但可假设它比较小;
当捕食者处于个体感知范围之外时,按照第一问的原则进行运动。
捕食者下一时刻的方向:
捕食者下一时刻的位置:
当鱼处在危险区时:
当鱼能感知到捕食者,但不在危险区时:
t=20st=30s
4.3、问题三
采用Lead-follower模型,假设鱼群中有一部分个体是信息丰富者,设置含有食物的环境,这一部分个体最先感知到食物的存在,并以一定速率接近食物.建立在第一问的基础上,由于个体之间有运动的联系,靠近信息丰富者的个体会感知到邻居的运动,这部分个体会首先向信息丰富者靠拢,并使自身的运动方向向信息丰富者的运动方向转移,使得有更多的个体向食物运动。
再有了多数个体向食物运动后,剩下的少部分离信息丰富较远的个体,由于必须向整体的中心和平均方向靠拢的原则,所以这部分个体会先向整体靠近,然后感知到向食物运动的邻居,接着使自己的位置和速度方向向食物转移。
对于信息丰富者,几乎不受群体的影响,只考虑排斥性,但是速度不能太快,否则,就不能达到带动群体的效果,以最大速度的1/8做为信息丰富者的速度。
信息丰富者下一时刻的方向:
信息丰富者下一时刻的位置:
当其他鱼接近食物时,它们的速度也会发生变化:
运用MATLAB模拟,可得:
t=20st=30s
五、模型的优缺点
5.1、模型的优点
(1)、模型中给出的原则较好地揭示了动物集群运动行为的本质。
(2)、用MATLAB进行仿真,结果贴近实际。
5.2、模型的缺点
(1)、表达式中的权重都是人为规定的,有一定偏差。
(2)、第三问中的食物没有考虑实际情况,将其固化,现实中会有水流等因素的影响而改变食物的位置。
六、参考文献
[1]赵建,曾建潮,鱼群集群行为的建模与仿真,太原科技大学
[2]班晓娟,宁淑荣,涂序彦,人工鱼群高级自组织行为研究
[3]田宝美,汪秉宏,基于Vicsek模型的自驱动集群动力学研究,中国科学技术大学
[4]王小红,基于多Agent的人工鱼群自组织行为研究,北京大学
[5]翟超,张海涛,生命群协调行为模型的改进及同步控制研究,华中科技大学
七、附录
8.1、问题一的程序代码:
pos=cell(1,30);
fori=1:
30
pos{i}=[rand(1,1)*10,rand(1,1)*10,rand(1,1)*10]%定义30个个体
end
x=zeros(1,30);
y=zeros(1,30);
z=zeros(1,30);
v=0.1;
%最大速度
direc1=cell(1,30);
%定义各个方向向量
direc2=cell(1,30);
direc3=cell(1,30);
direc4=cell(1,30);
direc7=cell(1,30);
direc8=cell(1,30);
cons=zeros(1,30);
direc1{i}=[rand(1,1)*10,rand(1,1)*10,rand(1,1)*10]-pos{i};
direc2{i}=zeros(1,3);
direc3{i}=zeros(1,3);
direc4{i}=zeros(1,3);
fort=1:
1000
m=0;
n=0;
k=0;
l=[0,0,0];
direc7{i}=zeros(1,3);
direc8{i}=zeros(1,3);
forj=1:
ifj==i
continue
else
forr=1:
direc7{i}=(direc7{i}+pos{r}-pos{i})./r;
%内聚性和排列性
direc8{i}=(direc8{i}+direc1{r})./r;
end
if(norm(pos{i}-pos{j})<
=5)&
&
(norm(pos{i}-pos{j})>
=0.1)%向心性和同向性
m=m+1;
k=k+norm(direc1{j});
l=l+direc1{j};
direc2{i}=(direc2{i}+(pos{j}-pos{i}))./m;
direc3{i}=(direc3{i}+direc1{j})./m;
cons(i)=norm(l)/k;
elseifnorm(pos{i}-pos{j})<
0.1
n=n+1;
direc4{i}=(direc4{i}+pos{i}-pos{j})./n;
%排斥性
if(pos{i}
(1)>
=10)||(pos{i}
(2)>
=10)||(pos{i}
(1)<
=0)||(pos{i}
(2)<
=0)||(pos{i}(3)>
=10)||(pos{i}(3)<
=0)
direc1{i}=direc1{i}*(-1);
%限定个体活动范围
direc1{i}=0.1*direc1{i}+0.1*direc2{i}+0.1*direc3{i}+0.1*direc4{i}+0.3*direc7{i}+0.3*direc8{i};
pos{i}=pos{i}+direc1{i}/norm(direc1{i})*v*exp(5*(cons(i)-1));
x(i)=pos{i}
(1);
y(i)=pos{i}
(2);
z(i)=pos{i}(3);
plot3(x,y,z,'
.'
)
axis([010010010],'
square'
'
manual'
gridon;
pause(0.01)
8.2、问题二的程序代码:
pos=cell(1,100);
100
pos{i}=[rand(1,1)*5,rand(1,1)*5,rand(1,1)*5];
%缩小活动范围至5*5*5
pre=[rand(1,1)*5,rand(1,1)*5,rand(1,1)*5];
direcpre=pos{1}-pre;
fori=2:
100%增加个体数目至100
ifnorm(pos{i}-pre)<
norm(direcpre)
direcpre=pos{i}-pre;
end
x=zeros(1,100);
y=zeros(1,100);
z=zeros(1,100);
direc1=cell(1,100);
direc2=cell(1,100);
direc3=cell(1,100);
direc4=cell(1,100);
direc5=cell(1,100);
direc6=cell(1,100);
direc7=cell(1,100);
direc8=cell(1,100);
cons=ones(1,100);
for(i=1:
100)
direc1{i}=[rand(1,1)*5,rand(1,1)*5,rand(1,1)*5]-pos{i};
direc7{i}=zeros(1,3);
2000
pre=pre+direcpre/norm(direcpre)*1.1*v/10;
n=0;
k=0;
l=[0,0,0];
direc5{i}=zeros(1,3);
direc6{i}=zeros(1,3);
direc7{i}=(direc7{i}+pos{j}-pos{i})./j;
direc8{i}=(direc8{i}+direc1{j})./j;
if(norm(pos{i}-pos{j})<
=0.01)
cons(i)=norm(l)./k;
0.01
=1%定义危险区域
direc5{i}=pos{i}-pre;
direc6{i}=(-1)*direcpre;
direc1{i}=direc5{i}+direc6{i};
pos{i}=pos{i}+(0.5*direc5{i}+0.5*direc6{i})*v;
=0.1
pos{i}=[-111,-11,-11];
direcpre=[rand(1,1)*10,rand(1,1)*10,rand(1,1)*10];
ifnorm(pos{r}-pre)<
direcpre=pos{r}-pre;
=5)||(pos{i}
(2)>
=5)||(pos{i}
(1)<
=5)||(pos{i}(3)<
direc1{i}=(-1)*direc1{i};
pos{i}=pos{i}+direc1{i}/norm(direc1{i})*v;
=2.5%定义感知区域
direc6{i}=direcpre*(-1);
direc1{i}=0.1*direc2{i}+0.1*direc3{i}+0.1*direc4{i}+0.25*direc5{i}+0.25*direc6{i}+0.1*direc7{i}+0.1*direc8{i};
end
if(pre
(1)>
=5)||(pre
(2)>
=5)||(pre
(1)<
=0)||(pre
(2)<
=0)||(pre(3)>
=5)||(pre(3)<
direcpre=(-1)*direcpre;
fori=1:
pre
(1),pre
(2),pre(3),'
o'
axis([050505],'
);
pause(0.1);
8.3、问题三的程序代码:
food=[5,5,5];
%确定食物位置
pos{i}=[rand(1,1)*10,rand(1,1)*10,rand(1,1)*10]
direc9=cell(1,30);
10%信息丰富者行为
ifnorm(pos{i}-pos{j})<
0.1;
ifnorm(pos{i}-food)>
pos{i}=pos{i}+(0.5*direc4{i}+0.5*(food-pos{i}))/norm(0.5*direc4{i}+0.5*(food-pos{i}))*v/8;
fori=11:
30%普通个体行为
ifnorm(pos{i}-food)<
=3
direc1{i}=direc1{i}+0.5*(food-pos{i});
=0.5)
0.5
pos{i}=pos{i}+direc1{i}/norm(direc1{i})*v;
direc1{i}=0.05*direc1{i}+0.15*direc2{i}+0.15*direc3{i}+0.05*direc4{i}+0.05*direc7{i}+0.05*direc8{i};
food
(1),food
(2),food(3),'
文本仅供参考,感谢下载!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Boid 模型 动物 集群 运动 行为 研究