基于Biod模型的动物集群运动分析Word文档下载推荐.docx

上传人:b****5 文档编号:17016751 上传时间:2022-11-27 格式:DOCX 页数:16 大小:145.63KB
下载 相关 举报
基于Biod模型的动物集群运动分析Word文档下载推荐.docx_第1页
第1页 / 共16页
基于Biod模型的动物集群运动分析Word文档下载推荐.docx_第2页
第2页 / 共16页
基于Biod模型的动物集群运动分析Word文档下载推荐.docx_第3页
第3页 / 共16页
基于Biod模型的动物集群运动分析Word文档下载推荐.docx_第4页
第4页 / 共16页
基于Biod模型的动物集群运动分析Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于Biod模型的动物集群运动分析Word文档下载推荐.docx

《基于Biod模型的动物集群运动分析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Biod模型的动物集群运动分析Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

基于Biod模型的动物集群运动分析Word文档下载推荐.docx

请观察下面附件中给出的图片和视频资料,或者在网上搜索相关资料观察,思考动物集群运动的机理,建立数学模型刻画动物集群运动、躲避威胁等行为。

1.2目标任务

(1)建立数学模型模拟动物的集群运动。

(2)建立数学模型刻画鱼群躲避黑鳍礁鲨鱼的运动行为。

(3)假定动物群中有一部分个体是信息丰富者(如掌握食物源位置信息,掌握迁徙路线信息),请建模分析它们对于群运动行为的影响,解释群运动方向决策如何达成。

二、模型假设

(1)假设鱼群中个体的速度大小保持恒定;

(2)假设每个个体的视野角度是一个全局角度;

(3)假设程序中的参数选择科学合理;

(4)假设模型中各个区域的大小符合实际。

三、符号说明

n

动物群个体数

ci

第i个个体的位置矢量

vi

第i个个体的速度矢量

t

时刻点

第i条鱼t+1时刻改变的方向

第i条鱼到第j条鱼的位置矢量

rr

排斥区域的半径

nr

排斥区域的个体数

N

噪声的影响

x

范围在0-1之间的随机数

η

干扰系数

vmax

小鱼的最大速度

鲨鱼运动的方向

四、模型的建立与求解

4.1动物的集群运动——Boid模型

对于问题一,首先可以假设一群随机分布的动物个体,它们有各自的位置和运动方向,通过按照一定规则建立数学模型,改变他们的运动方向,从而改变其位置,最终使其聚集起来并一起运动。

Boid模型是一个动物协作运动的计算机模型,于1987年最早被提出的,其在生物学上的规则为:

(1)聚集,即尽量与邻居内个体靠的近一些,以避免孤立;

(2)排斥,即避免同周围个体发生碰撞;

(3)速度匹配,即努力与周围的个体保持速度上的同步。

这三个规则被统称为Reynolds聚合规则。

Boid模型和Reynolds规则也说明了群集中的每一个个体只是利用其邻域里的信息来指导它的行为,但整个群集从整体上来说却能够表现出良好的整体性质,群集行为是这个群集中所有个体仅仅根据自身对局部环境的感知做出反应的聚合结果,这也是群集行为的一个重要特征。

由美国普林斯顿大学副教授Couzin等人于2002年将Boid模型用数学模型进行了精确的描述。

设系统有n个个体组成,他们的位置和速度矢量分别为ci、vi,每个个体在三维空间中按照恒定的速度v运动,θi(t+1)为个体i在于t+1时刻的预期方向。

在每一时步,,每个个体可以感知到三个不重叠的区域中其他个体的位置和角度,这些信息用于计算θi(t+1),这三个区域分别为:

排斥区域(zoneofrepulsion),一致区域(zoneoforientation),吸引区域(zoneofattraction)。

其模型的三个区域如图所示:

图1每个个体可以感知到的三个不重叠区域

个体的运动规则:

首先,每个个体尽量与排斥区域(以该个体为中心,以rr为半径的圆)中的其他个体保持最小距离,并记其中的个体数为nr,则个体i的预期方向按照下面的方式调整:

(1)

其中

其次,如果nr=0,则个体i的预期方向受一致区域(以个体i

为中心,处于,rr和ro之间的区域)以及吸引区域(以个体i为中心,处于ro和ra之间的区域)中的个体的影响,记相应区域中的邻居个数分别为no、na,可定义

(2)

(3)

如果na=0,则

(4)

同样,如果no=0,则

(5)

如果两者都不为0,则定义

(6)

如果经过上面的运算后得到的

,或者在三个区域中都没有个体,则

设旋转速率为θ,即每一时步个体能转过的最大角度为θ,如果

之间的角度差小于θ,则

,否则个体i向期望的方向旋转角度θ,这样就得到了个体下一步的运动方向。

考虑到现实环境对鱼群也有一定干扰,故在Boid模型的基础上加入噪声的影响:

(7)

其中N表示噪声的影响,x是范围在0-1之间的随机数,η表示干扰系数,可以自己设定。

根据Boid模型,编写程序时首先考虑聚集原则,以鱼群为例建立如下流程图:

图2仅考虑聚集原则的程序流程图

通过Matlab编程计算得出不同时刻鱼群中每个个体的位置(红色的星号表示鱼的位置):

图3T=1时每条鱼的位置

图4T=332时每条鱼的位置

图5T=415时每条鱼的位置

图6T=555时每条鱼的位置

由图可知,仅考虑聚集规则的情况时已经基本显示出了鱼群的聚集性,但是出现了几条鱼之间的重叠,不符合排斥规则,而且鱼群的速度匹配规则也没能很好的体现,故在此基础上引入排斥原则,得到如下结果:

图7T=1时每条鱼的位置

图8T=63时每条鱼的位置

图9T=182时每条鱼的位置

图10T=436时每条鱼的位置

由上图可知,加入排斥性后,仍能体现鱼群的聚集性,出现了鱼群向同一方向运动的现象,符合速度匹配,鱼的重叠现象减少,但效果不太明显,整个结果表明鱼群的运动特性已基本实现。

4.2鱼群躲避黑鳍礁鲨鱼的运动行为

问题二就是在问题一的基础上增加了鲨鱼这个特殊个体,所以模型也是在Biod模型的基础上进行修改。

首先每一条小鱼有一个感知危险的范围,不妨假设为以自身为圆心,半径为rs的圆,当鲨鱼距离小鱼很远时,小鱼的运动遵循问题一中的结果,而当鲨鱼进入小鱼感知危险的范围时,小鱼会立刻朝着小鱼与鲨鱼连线的反方向运动以躲避危险,即当

(8)

时,有

(9)

表示小鱼感知到鲨鱼后的运动方向,

表示鲨鱼的位置,

为小鱼的最大速度。

当小鱼脱离感知范围后,又恢复正常运动,即遵循问题一中的方式运动。

下面讨论鲨鱼的运动轨迹。

鲨鱼应当向着鱼多的地方运动,才能更容易捕到猎物。

计算鲨鱼的运动方向我们考虑了两种方法:

(1)计算鲨鱼到所有小鱼的方向向量,将所有方向向量进行求矢量和得到的向量即鲨鱼运动方向

(10)

表示鲨鱼改变后的方向。

该方法编程易于实现,但是不适合多个鱼群或鱼群过于分散的情况;

(2)用一定半径的圆对区域进行扫描,得到圆内小鱼最多的圆位置,鲨鱼到该圆心的方向向量就是鲨鱼运动方向,这种方法虽然较准确,但是编程难于实现。

结合问题一,考虑小鱼为躲避鲨鱼而改变方向的因素,通过Matlab得到不同时刻鱼群中每个个体的位置(蓝色的圆圈表示的鲨鱼位置):

图11T=1时每条鱼的位置

图12T=663时每条鱼的位置

由图中可以看出小鱼仍有集群行为,且与鲨鱼保持一定距离,当鲨鱼进入小鱼感知危险范围时,小鱼会做出反应,远离危险,较好的模拟了小鱼躲避鲨鱼的运动。

但是小鱼的反应较慢,鲨鱼靠得很近之后才会躲开,这是由于本文计算的是小鱼与鲨鱼之间的位置,采用的是类似自控原理里的位置反馈,如果采用速度反馈,效果会更好。

4.3信息丰富者对动物集群运动的影响

最早进行关于群体智能控制行为研究的是Reynolds,他于1986年提出一个用于模拟鸟类聚集飞行行为的仿真模型,该模型中应用如下的定向行为规则:

分离规则,列队规则和聚合规则。

但是这些控制准则不能够规范个体的最终速度和整个群体的运动朝向。

因为在某些情况下,规则对每个个体有特定的速度、朝向或是目的地的规范,但是对于整个群体而言没有一个共同的运动目标,因此,群体运动中的虚拟领导问题是一个重要的研究课题。

“鱼群效应理论”说得更形象,也更透彻:

鱼群向着一个方向游动,当“头鱼”触网掉头时,后面的鱼没有反应过来,仍在按照原来的方向游进,惯性仍在起作用。

“头鱼”是清醒的,它是“第一个”;

跟着“头鱼”及早掉头的鱼也是清醒的,它们是少数;

当“后面的鱼”清醒过来开始掉头时,已经晚了。

问题三与问题二类似,动物都有“趋利避害”的本能,问题二就是“避害”,而问题三就是“趋利”。

假定动物群中有一部分个体是信息丰富者(知道飞行路线或目的地等),信息丰富者按照某个固定的方向运动,在整个运动过程中不受其他个体的影响,但信息丰富者的行为会影响其他个体,从而可能使得系统中其他个体与信息丰富者同步。

其他个体并不知道谁是信息丰富者,只有当信息丰富者进入小鱼感知范围时,小鱼会立刻朝着小鱼与信息丰富者连线的方向运动,即当

(11)

(12)

表示小鱼感知到信息丰富者后的运动方向,

结合问题二,考虑小鱼追寻信息丰富者而改变方向的因素,通过Matlab得到不同时刻鱼群中每个个体的位置(蓝色的圆圈表示的信息丰富者位置):

图13T=1时每条鱼的位置

图14T=163时每条鱼的位置

由图可知,位置方向随机的小鱼在一段时间的运动后会出现集群现象,并且跟随信息丰富者运动,较好的模拟了信息丰富者对小鱼集群运动的影响,对比问题一,加入信息丰富者后,集群速度更快,表明信息丰富者对集群运动有促进作用,并带领其他鱼朝目的地运动。

五、模型的评价与改进

5.1模型的优点

(1)建立的模型中,整个群集从整体上来说能够表现出良好的整体性质;

(2)模型的结果形象生动模拟出了动物的集群运动,刻画出了鱼群躲避黑鳍礁鲨鱼的运动行为,并且成功地分析了若有信息丰富者(如掌握食物源位置信息,掌握迁徙路线信息),它们对于群运动行为的影响;

(3)通过对建立出来的程序增加适当的条件,可以实现对动物集群运动中更加复杂的行为进行更多的仿真,程序具有普遍性和通用性。

5.2模型的缺点

(1)对提出的假设,使预测结果的准确性受到限制,比如个体的视野都是有限的,而我们假设每个个体的视野角度是一个全局角度。

在模型的改进中,可以考虑有限视野角度模型。

(2)建立的模型只在二维空间,没有很好的推广到三维空间。

虽然仿真效果具有明显的动物集群运动的效果,也难免不够全面。

所以在模型的改进中,推广到三维空间将是非常有必要的。

(3)为了简化模型,并且更易于求解,忽略或者弱化了少部分次要因素的影响,这些会在一定程度上导致结果出现误差,有的方法并没能实现,如果有足够的时间,应该尽可能细化、量化需要考虑的因素,模型的预测结果才能达到足够的准确度,使仿真效果更好。

5.3模型的改进

在模型一中,由于获取的数据不全等原因,我们只是对鱼类的集群运动进行了合理的模拟。

但是我们发现,自然界中各种物种的集群运动,虽有不同,但也有共通点。

我们发现:

针对阻力参数,鱼群在水中受到的阻力相对较大,鸟群和昆虫群在空中飞行受到的阻力相对较小;

针对视距和视角参数,鱼群的视距较近,昆虫的视距最短,鸟群拥有最高的视距,因为鸟类飞行速度快,视野开阔。

鸟群的视角比鱼群稍大;

昆虫的视角最小;

针对个体间期望距离参数,鱼群间期望距离一般,鸟群间期望距离最大,因为它们飞行速度快,距离太近容易相撞,昆虫间期望距离最小;

针对安全距离参数,鱼群的安全距离一般,鸟群的安全距离最大,因为它们飞行速度快,需要及早考虑躲避障碍或边界的问题;

昆虫的安全距离最小,因为昆虫的转向灵敏,在很短的距离就可以躲避障碍;

针对警戒距离参数,同安全距离一样,鸟群需要的警戒距离最大,鱼群次之,昆虫最小;

针对最大加速度和速度参数:

鱼群活动缓慢笨重,加速度较小;

鸟群行动轻快,加速度较大等。

数据足够时,我们可以进行各类集群物种的模拟。

在模型三的基础上,我们考虑到信息丰富者的个数应该不只一个,我们可以添加信息丰富者的数量,更加符合题目的要求。

在实现中,如两个信息丰富者存在,其他小鱼感知到两个信息丰富者,但是由于不同信息丰富者距离小鱼的距离不同,对小鱼的吸引程度必然也不同,所以,小鱼将跟随距离本身近的信息丰富者前行。

但是考虑到两个信息丰富者携带的信息量也可能不同,那么,将信息量进行量化,如食物的多少,威胁的大小,结合之前的距离远近,这些都将影响小鱼决定跟随哪个信息丰富者。

结合问题二和问题三,若同时存在信息丰富者与天敌,小鱼一方面跟随信息丰富者,一方面还得避开它自己发现的天敌。

这样将是复杂的一种系统,但却是更加地符合实际中的鱼群情况。

参考文献

[1]田宝美,汪秉宏,基于Vicsek模型的自驱动集群动力学研究,中国科学技术大学,2009。

[2]王果,戴冬,群集智能算法研究现状及进展[J],河南机电高等专科学校学报,2007,15

(2):

106—108。

[3]陈世明,群集行为的建模与控制方法综述[J],计算机工程与科学,2007,29(7):

102—105。

[4]李晓磊,邵之江,钱积新,一种基于动物自治体的寻优模式:

鱼群算法[J],系统工程理论与实践,2002,22(11):

32—38

[5]章绍辉,数学建模,北京:

科学出版社,2010。

附录

问题一的程序:

clear;

n=50;

eta=1;

%设定参数

range=0.5;

%间距

speed=0.03;

TIME=600;

density=1;

RUNS=1;

fieldsize=sqrt(n/density);

%边长

pos=fieldsize*rand(n,2);

%随机生成n个坐标(位置)

heading=2*pi*rand(n,1);

%方向

relposX=zeros(n);

%水平距离

relposY=zeros(n);

%垂直距离

neighbours=zeros(n);

%标记0-1矩阵

RelHead=zeros(n,1);

%方向差

newHeading=zeros(n,1);

newPos=zeros(n,2);

meanHeading=zeros(TIME,1);

%任意时刻的平均方向

deviationMean=zeros(n,TIME);

forrun=1:

RUNS%第一层循环Run次数

fortime=1:

TIME%第二层循环时间

fori=1:

n

forj=1:

relposX(i,j)=abs(pos(i,1)-pos(j,1));

relposY(i,j)=abs(pos(i,2)-pos(j,2));

if(sqrt(relposX(i,j)^2+relposY(i,j)^2)<

=range)

neighbours(i,j)=1;

%判断是否位于排斥区

end

if(neighbours(i,j)==1)%如果位于排斥区

relheading(i,j)=heading(j,1)-heading(i,1);

RelHead=sum(relheading,2);

%每行求和,结果为列向量

whileRelHead(i,1)<

-pi

RelHead(i,1)=RelHead(i,1)+pi;

whileRelHead(i,1)>

pi

RelHead(i,1)=RelHead(i,1)-pi;

noise=(rand(n,1)*eta)-eta/2;

%噪声

newHeading(:

1)=heading(:

1)+RelHead(:

1)./sum(neighbours,2)+noise(:

1);

newPos(:

1)=pos(:

1)+cos(newHeading(:

1))*speed;

2)=pos(:

2)+sin(newHeading(:

fork=1:

whilenewPos(k,1)<

0

newPos(k,1)=newPos(k,1)+fieldsize;

whilenewPos(k,1)>

=fieldsize

newPos(k,1)=newPos(k,1)-fieldsize;

whilenewPos(k,2)<

newPos(k,2)=newPos(k,2)+fieldsize;

whilenewPos(k,2)>

newPos(k,2)=newPos(k,2)-fieldsize;

heading=newHeading;

pos=newPos;

meanHeading(time,1)=mean(heading,1);

deviationMean(time,1)=mean(abs(meanHeading(time,1)-heading(:

1)));

scatter(pos(:

1),pos(:

2),'

xr'

);

%画图

axis([0fieldsize0fieldsize]);

xlabel(time);

%画图控制轴线范围

M(time)=getframe;

%为输出视频建立矩阵

runDev(:

run)=deviationMean(:

%plot(runDev)

%movie2avi(M,'

boidtest.avi'

'

quality'

100);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1