鱼群集群行为的的建模与仿真数模论文.doc

上传人:文库蛋蛋多 文档编号:4016988 上传时间:2023-04-01 格式:DOC 页数:20 大小:1.20MB
返回 下载 相关 举报
鱼群集群行为的的建模与仿真数模论文.doc_第1页
第1页 / 共20页
鱼群集群行为的的建模与仿真数模论文.doc_第2页
第2页 / 共20页
鱼群集群行为的的建模与仿真数模论文.doc_第3页
第3页 / 共20页
鱼群集群行为的的建模与仿真数模论文.doc_第4页
第4页 / 共20页
鱼群集群行为的的建模与仿真数模论文.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《鱼群集群行为的的建模与仿真数模论文.doc》由会员分享,可在线阅读,更多相关《鱼群集群行为的的建模与仿真数模论文.doc(20页珍藏版)》请在三一办公上搜索。

1、鱼群集群行为的的建模与仿真摘要本文利用人工生命技术的特点,把每条鱼看成是一个能够自主决策的Agent,它们会根据自己的观察来感知周围的环境,并按照一定的规则决策。然后采用自底向上的建模方法,根据鱼群游动的规律建立了一种基于群体中每个个体运动方程的数学模型, 并通过matlab算法设计各种运算, 从而完成整个鱼群游动的模拟。对于问题一,首先我们确定鱼群游动的三个规则:凝聚性(向心性),同向性,排斥性;然后根据这三个规则,建立了群体中每个个体的运动方程,最后通过matlab实现对鱼群集群运动的模拟。对于问题二,首先我们将刻画鱼群躲避黑鳍礁鲨鱼的运动行为一般化,将其作为刻画鱼群躲避捕食者的运动行为来

2、研究。然后我们将捕食者看成是鱼群中的特殊鱼(对所有其它鱼只有排斥力而没有吸引力,所有其它鱼对其只有吸引力而没有排斥力),然后再运用问题一所建立的模型进行模拟刻画。对于问题三,首先我们将鱼群中的鱼分为普通鱼与信息鱼(信息丰富者),并假设在运动过程中普通鱼会向信息鱼靠拢。然后通过问题一中的模型进行仿真,并研究了当信息鱼的比例为不同值时的情况,从而分析了信息鱼对于群运动行为的影响及解释群运动方向决策是如何达成的。关键词: 集群运动 人工生命 仿真 Matlab编程1 问题重述在生态系统中,动物个体的行为相对简单,集群后却能表现出复杂的群体行为。这些动物群在运动过程中具有很明显的特征:群中的个体聚集性

3、很强,运动方向、速度具有一致性。请查阅相关资料,思考动物集群运动的机理,建立数学模型刻画动物集群运动、躲避威胁等行为,例如,可以考虑以下问题的分析建模: (1) 建立数学模型模拟动物的集群运动。 (2) 建立数学模型刻画鱼群躲避黑鳍礁鲨鱼的运动行为。 (3) 假定动物群中有一部分个体是信息丰富者(如掌握食物源位置信息,掌握迁徙路线信息),请建模分析它们对于群运动行为的影响,解释群运动方向决策如何达成。2 模型的假设与符号的约定2.1模型的假设与说明 (1)所有的鱼生活在一个宽为width、长length的二维世界。 (2)把群体中每个个体看成是一个能够自主决策的Agent,它们会根据自己的观察

4、来感知周围的环境,并按照一定的规则决策。 (3)将每个个体看成虚拟世界的一个点,而不考虑动物个体的大小以及形态。 (4)当捕食者出现在一个鱼所感知的范围内时,鱼就沿着自己与捕食者连线的反方向逃离。 (5)在运动过程中普通鱼会向信息鱼靠拢。 (6)当个体未受到外界干扰(投入食物或遇到天敌)时,速度的大小不变。2.2 符号的约定与说明Dt+1 .下个时刻Agent的运动方向;D1t.时刻t中该Agent的运动方向;D2t.时刻t当前个体到邻居平均位置的方向;D3t .邻居的平均运动方向;D4t.小于碰撞距离的邻居到当前个体方向的平均值;i(i=18).影响动物运动方向的各个因素的权重;vxi(t)

5、.第i个个体t时刻x方向的运动速度;vyi(t).第i个个体t时刻y方向的运动速度;vi(t).第i个个体t时刻的运动速度;Di(t).第i个个体t时刻的运动方向;xi(t).t时刻第i个个体的x坐标;yi(t).ti时刻第i个个体的y坐标;n.,.动物群体的数量;a.动物个体的加速度;Revdist.个体间碰撞的最小距离;maxspeed.个体的最大速度;bouncespeed.反弹速度;v0.个体的初始速度;r.视觉范围半径;R.,感知范围半径(还有一些具体的参数变量在各模型中进行具体说明)3 问题分析3.1 总体分析 群体是由个体组合而成的,群体的运动是每个个体运动的整体表现。根据人工生

6、命专家的观点任何现象都是有其规律的, 可以利用个体的特性, 然后个体群集从而产生复杂的社会现象。因此模拟鱼群的群体运动可以采用自底向上的建模方法,对个体鱼进行建模,这些个体具有有限的感知能力以及遵循简单的行为规则,通过个体之间以及个体和环境之间相互作用,最终涌现出复杂的群体行为。 鱼群群体运动的仿真模型应由三部分组成: 环境、个体和行为规则。环境是个体的生存空间,个体在环境中活动,收集环境中的资源(如食物) ,个体的总和构成了研究的群体对象;群体的演化过程由其行为规则来控制,行为规则决定了个体与个体之间、个体与环境之间相互作用的方式。3.2 问题一 首先我们确定鱼群游动的四个规则: 规则一:凝

7、聚性(向心性):每个个体都有向邻居中心靠拢的特性,邻居中心为感知范围内各个体所在位置的平均值。(邻居为感知范围内的其他个体) 规则二:同向性:个体会和它的邻居朝同一个方向游动。 规则三:排斥性:当个体和它的邻居靠的太近时(距离小于碰撞距离) , 会自动避开。 然后根据这三个规则,建立了群体中每个个体的运动方程,最后通过matlab实现对鱼群集群运动的模拟。3.3 问题二 首先我们将刻画鱼群躲避黑鳍礁鲨鱼的运动行为一般化,将其作为刻画鱼群躲避捕食者的运动行为来研究。然后我们将捕食者看成是鱼群中的特殊鱼(对所有其它鱼只有排斥力而没有吸引力,所有其它鱼对其只有吸引力而没有排斥力),然后在通过问题一所

8、建立的模型进行模拟刻画。3.4 问题三首先我们将鱼群中的鱼分为普通鱼与信息鱼(信息丰富者),并假设在运动过程中普通鱼会向信息鱼靠拢。然后通过问题一中的模型进行仿真,并研究了当信息鱼的比例为不同值时的情况,从而分析了信息鱼对于群运动行为的影响及解释群运动方向决策是如何达成的。4 模型的建立与求解4.1 问题一4.1.1 环境的模拟 我们把具体的环境描述为一个宽为width、长length的二维世界(见图1) 。我们通过计算机仿真把现实中的鱼映射到虚拟环境中来,所有个体在该区域内游动、觅食。这个二维平面区域以及计算机时钟的运行共同构成了鱼群所处的虚拟环境。4.1.2 个体的模拟把每条鱼看成是一个能

9、够自主决策的Agent,它们会根据自己的观察来感知周围的环境,并按照一定的规则决策。个体之间的交互是由其视觉范围的大小决定的。个体的视觉范围是半径为r、角度为300度的一个扇形。在真实的情况中鱼类视觉很有限,还需要其它的感知器官(主要是嗅觉)协同作用,所以我们还应定义一个觅食的感知范围,半径为R (R r)的圆面。个体具有以下属性:位置:个体位置由一组坐标( x, y) 表示。感知范围:个体所能感知的范围。个体的感知范围取决于所定义邻域半径R的大小,感知范围越大,表明该个体与环境和其它个体的作用越强。碰撞距离:个体之间的最短距离。当个体间的距离小于该值时,个体将朝着远离的方向游动。初速度:仿真

10、开始时,赋予每个个体的速度值,大小相等,方向不同。最大速度:为了使得仿真形象,规定的个体速度最大值。当个体速度大于最大速度时调整为最大速度 加速度:个体受到外界干扰(如出现捕食者或食物)时,对个体行为的改变,表现为速度的改变。反弹速度:个体到边界时反弹回来的速度。4.1.3规则描述每个鱼群个体都要遵守三条规则(尽量靠近邻居的中心,尽量与邻居的方向一致,尽量避免碰撞),这三条规则对改变鱼下一时刻游动方向起作用,动物个体的运动方向不可能立刻改变,还表现了某种惯性的作用。根据这四个方向的平均方向作为动物个体下一时刻运动的方向。我们将动物运动的方向用与x轴正方向的夹角来描述,因此仅仅需要对这四个方向与

11、x轴正方向的夹角进行平均,即为下一时刻该动物个体的运动方向。用公式表示为:, 其中为下个时刻Agent的运动方向, 为t时刻中该Agent的运动方向, 为t时刻当前个体到邻居平均位置的方向, 为邻居的平均方向, 为小于碰撞距离的邻居到当前个体方向的平均值(见图2)。 图2鱼的游动方向考虑到各规则对动物个体的影响力不同,我们还需要对各个方向加权,取加权平均值, 权重的大小可以根据偏好确定。即: 其中 。(1)靠近规则的实现 每个个体都有向邻居中心靠拢的特性,邻居中心为观察范围内各个体所在位置的平均值。公式表示为: , 为邻居的平均值, 为当前个体的位置, 为当前各个邻居的位置) , D2t 为当

12、前个体到的方向(见图3 ( a) ) 。(2)对齐规则的实现 个体会和它的邻居朝同一个方向游动。公式表示为:为各个邻居的方向, N 为邻居的个数, D3 t 为邻居的平均方向(见图3 ( b) ) 。(3)避免碰撞规则的实现当个体和它的邻居靠的太近时(距离小于碰撞距离) , 应自动避开。公式表示为:, 为小于碰撞距离的邻居到当前个体方向的平均值, 为邻居中小于碰撞距离的邻居个数(见图3 ( c) ) 。 图3鱼的规则描述所以得到下一个时刻动物运动方向的最终表达式为:4.1.4 动物运动方程的确定4.1.4.1 个体没受到外界干扰时(即不考虑动物的加速度)。(1)动物速度的确定:表示第个个体时刻

13、方向的运动速度,表示第个个体时刻方向的运动速度,表示第个个体时刻的运动速度,表示第个个体时刻的运动方向。(2)动物运动方程的确定: 为时刻第个个体的坐标,为时刻第个个体的坐标。4.1.4.2 个体受到外界干扰时(考虑动物的加速度)。(1)动物速度的确定: 当前速度: 下一时刻速度: (2)动物运动方程的确定:4.1.5鱼群集群运动的模拟: 因为鱼群集群时没有受到外界的干扰,所以采用不考虑加速度的模型,设定鱼的数量n=50,初始速度v0=0.1,最大速度maxspeed=1,反弹速度bouncespeed=0.3,个体间碰撞的最小距离resdist=0.05 感知范围半径R=0.2 虚拟世界的宽

14、width=10,,长length=10,1=0.5,2=0.2,3=0.2,4=0.1,初始速度的方向随机给定,通过matlab可得到如下仿真结果。图(1) 图鱼的初始分布 图(2)迭代367次后鱼的分布 图(1)与图(1)所表达的集群运动较符合现实世界中的情况,说明了模型具有较好的仿真性。4.2 问题二 对于鱼群来说,将捕食者看做一个排斥因素,即当捕食者出现在鱼所能感知的范围内时,鱼就沿着自己与捕食者连线的反方向逃离。因此捕食者对改变鱼下一时刻游动方向起作用,所以我们在影响鱼群运动的凝聚性、同向性、排斥性以及惯性这四个因素的基础上加上捕食者因素,并运用模型一的思想方法,得到如下关系:其中表

15、示鱼与黑鳍礁鲨鱼连线的反方向。其余符号的意义同模型一中一样。为下个时刻Agent的运动方向, 为时刻t中该Agent的运动方向, 为t时刻当前个体到邻居平均位置的方向, 为邻居的平均方向, 为小于碰撞距离的邻居到当前个体方向的平均值,影响动物运动方向的各个因素的权重,其中。 当鲨鱼出现在一个鱼所感知范围内的一定距离时,鱼就将沿着自己与鲨鱼连线的反方向逃离,所以的表达式如下:为鲨鱼的位置。因此得到下一个周期动物运动方向的最终表达式为:4.2.2 鱼的位置的确定因为有捕食者出现,所以鱼将会沿着下一时刻运动方向加速前进,加速度为a (1) 鱼的速度的确定: 当前速度: 下一时刻速度:(2)鱼的运动方

16、程的确定:4.2.2鱼群逃避捕食者运动的模拟: 设定鱼的数量n=100,初始速度v0=0.1,最大速度maxspeed=1,反弹速度bouncespeed=0.3,个体间碰撞的最小距离resdist=0.05 感知范围半径R=0.2 虚拟世界的宽width=10,,长length=10,1=0.5,2=0.2,3=0.2,4=0.1,a=0.2,初始速度的方向随机给定,通过matlab可得到如下仿真结果。其中*表示鱼,o表示捕食者; 图(3)初始分布 图(4)未集群是出现1个捕食者图(5)未集群时出现2个捕食者图(6)集群初始分布图(7)集群后出现捕食者 图(3)到图(7)给出了不同情况下出现

17、捕食者时鱼群的分布,显示了当捕食者出现时,鱼群将会逃避。4.3 问题三 信息丰富者(简称信息鱼)对鱼群的影响主要是体现在获取周围天敌、食物以及迁徙路线等信息的优势上,信息鱼和普通鱼之间的相互影响也遵循以上模型所说的鱼群运动的凝聚性、同向性、排斥性以及惯性。所以对于鱼群内部,由于信息鱼可能掌握食物源位置和迁徙路线等信息,那么其他的普通鱼就有向信息鱼靠拢的趋势。所以我们求得所有信息鱼的位置中心,并赋予一定的权重,将其作为影响普通鱼运动方向的一个因素,记为D*t。同时由于信息丰富者对外界信息获取有较大优势,在对外界反应上对信息丰富者和普通鱼加以区分,我们假设信息鱼的运动还受到避开天敌(D5t)和食物

18、源(D6t)的影响。4.3.1 鱼运动方向的确定4.3.1.1 信息鱼的运动方向为其中表示信息鱼在t+1时刻的运动方向,表示该鱼背离天敌的方向,表示该鱼趋向食物的方向,其他符号意思解释与前面相同。 。(1)鱼背离天敌的方向的确定:是天敌的位置。(2)鱼趋向食物的方向的确定:,(,)是食物的位置。所以得到信息鱼的最终运动方向为:4.3.1.2 普通鱼的运动方向为其中表示t+1时刻普通鱼的方向,其中 表示权重。D*t普通鱼到信息鱼的方向。 (,)为第x个信息鱼的位置坐标,C为信息鱼的数量。所以得到下一个周期普通鱼运动方向的最终表达式为:4.3.2 鱼的运动方程的确定4.3.2.1信息鱼(1)不考虑

19、鱼的加速度的模型,当无外界干扰时使用此模型。信息鱼的速度的确定:表示第个个体时刻方向的运动速度,表示第个个体时刻方向的运动速度,表示第个个体时刻的运动速度,表示第个个体时刻的运动方向。信息鱼的位置的确定: 为时刻第个个体的坐标,为时刻第个个体的坐标。 (2)考虑鱼的加速度的模型,当受到外界干扰时使用此模型。信息鱼的速度的确定: 信息鱼位置的确定:4.3.2.2 普通鱼(1)不考虑鱼的加速度的模型,当无外界干扰时使用此模型。普通鱼的速度的确定: 表示第个个体时刻方向的运动速度,表示第个个体时刻方向的运动速度,表示第个个体时刻的运动速度,表示第个个体时刻的运动方向。普通鱼的位置的确定: 为时刻第个

20、个体的坐标,为时刻第个个体的坐标。 (2)考虑鱼的加速度的模型,当受到外界干扰时使用此模型。普通鱼的速度的确定: 普通鱼的位置的确定:4.3.3鱼群有信息鱼时的运动模拟: 设定鱼的数量n=50,初始速度v0=0.1,最大速度maxspeed=1,反弹速度bouncespeed=0.3,个体间碰撞的最小距离resdist=0.05 感知范围半径R=0.2 虚拟世界的宽width=10,,长length=10,1=0.5,2=0.2,3=0.2,4=0.1,信息鱼数量为10%,初始速度的方向随机给定,通过matlab可得到如下仿真结果。其中*表示普通鱼o表示信息鱼。图(8)初始分布图(9)迭代45

21、3次后分布图(10)迭代663次后分布从图(8)到图(10)可以看出普通鱼始终跟随信息鱼运动,运动方向的运动方向主要由信息鱼决定。 5模型的进一步讨论 (1)假设动物集群在前进的过程中会遇到障碍物,我们可以在模型中增加障碍物这个因素,进而模拟出障碍物对于动物集群运动的影响。 (2)假设动物集群在前进的过程中会遇到食物,在模型中增加这个因素,可以进一步模拟动物群在追逐食物时的运动状态。 6模型的优缺点6.1 优点 在我们所建立的模型中,考虑到的因素可信度高,程序比较容易实现,成功地模拟出了鱼群的集群运动形态、鱼群躲避捕食者时的运动以及鱼群中信息丰富者对群体的影响。该模型具有广泛性, 能较好地反映

22、社会现象。 Matlab仿真实例进一步说明了本文结论的正确性。6.2 缺点(1)我们考虑的因素不是很全面。第一,没有讨论有障碍物时的情形;第二,将每一个动物个体同等对待,忽略了个体差异;第三,没有在三维立体空间的基础上实现鱼群集群运动的模拟。(2)模型结果只能初步地说明动物集群运动,对于解释自然界有的动物集群的特殊运动还有点乏力。7 参考文献 1 太原科技大学系统仿真与计算机应用研究所,赵建,曾建潮的鱼群集群行为的建模与仿真。 2 河北科技师范学院数学与信息科技学院, 秦皇岛066004; 河北工业大学理学院, 天津3004m )毛学志各向异性的群集行为分析。3 王晓红,基于多Agent的人工

23、鱼群自组织行为研究D。北京:北京科技大学, 2006。4 杨永娟,用java实现鱼群游动模拟系统 J ,安徽理工大学学报。 5 李晓磊等,组合应用问题中的人工鱼群算法应用 J ,山东大学学报(工学版) 。 5 李建会,数字创世纪: 人工生命的新科学M ,北京:科学出版社, 2006。 6 杨国为,人工生命模型M ,北京: 科学出版社,2005。 8 附录8.1%鱼集群function main1(n,eta)%generates boids in a fieldrange = 0.2;speed =0.1;TIME =600;density = 0.5;RUNS = 1;fieldsize =

24、 sqrt(n/density);pos = fieldsize*rand(n,2);heading = 2*pi*rand(n,1);relposX = zeros(n);relposY = zeros(n);neighbours = zeros(n);RelHead = zeros(n,1);B = zeros(n,1);newHeading = zeros(n,1);newPos = zeros(n,2);meanHeading = zeros(TIME,1);deviationMean = zeros(n,TIME);for run=1:RUNSfor time=1:TIMEfor i

25、=1:nfor j=1:nrelposX(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;endendendfor i=1:nfor j=1:nif(neighbours(i,j)=1)relheading(i,j) = heading(j,1)-heading(i,1);endendendRelHead = sum(relheading,2);for i=1:nwhile

26、RelHead(i,1) piRelHead(i,1) = RelHead(i,1) - pi;endendnoise = (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;newPos(:,2) = pos(:,2) + sin(newHeading(:,1)*speed;for k=1:nwhile newPos(k,1) = fields

27、izenewPos(k,1) = newPos(k,1) - fieldsize;endwhile newPos(k,2) = fieldsizenewPos(k,2) = newPos(k,2) - fieldsize;endendheading = 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(0 fieldsize 0 fieldsize); xlabel(time );M(time) = getframe;endrunDev(:,run) = deviationMean(:,1);end%plot(unDevr)movie2avi(M,boidtest.avi, quality,100);

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号