动物集群运动行为模型-19_第1页
动物集群运动行为模型-19_第2页
动物集群运动行为模型-19_第3页
动物集群运动行为模型-19_第4页
动物集群运动行为模型-19_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2012第四次模拟训练承 诺 书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。我们参赛选择的题号是(从A/B/C/D中选择一项填写): 我们的参赛报名号为(如果赛区设置报名号的话): 所属

2、学校(请填写完整的全名): 参赛队员 (打印并签名) :1. 邓 俊 2. 李鸿基 3. 康 东 指导教师或指导教师组负责人 (打印并签名): 日期: 20120 年 89 月 2314 日赛区评阅编号(由赛区组委会评阅前进行编号):20120第四次模拟训练高教社杯全国大学生数学建模竞赛编 号 专 用 页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):鱼群行为的建模与仿真论文标题摘 要本文主要对人工鱼的集群行为,对天敌的有效躲避,和在集群中部分个体获得食物信息的

3、情况下,整个鱼类集群的运动行为进行了研究。并利用MATLAB 工具进行了模拟仿真。针对问题一,我们对鱼类的集群运动主要提出了聚集、和邻居速度匹配、避免碰撞三个原则。基于这三个原则建立了鱼类单个个体的自治模型,每个个体通过相互作用,使集群形成。本文对三个原则的具体实现进行了分析和假设。得到了计算机模拟仿真下的鱼类集群图形。针对问题二,在模型一的基础上,我们增加了鱼群有效逃避天敌的规则。并利用MATLAB进行在天敌存在的情况下,鱼类集群行为的运动特征,并且得出了较好的仿真结果。针对问题三,我们建立了鱼群觅食过程中的信息交流机制,得出了在部分人工鱼知悉食物信息的情况下,整个鱼群的运动状态的仿真结果。

4、XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

5、XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

6、XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

7、XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

8、XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

9、XXXXXX关键词:集群运动 模拟仿真 个体自治XXXXXXXXXXXXX,XXXXXXXXXXXX,XXXXXXXXXXXX一、问题的提出在动物界,大量集结成群进行移动或者觅食的例子并不少见,这种现象在食草动物、鸟、鱼和昆虫中都存在。这些动物群在运动过程中具有很明显的特征:群中的个体聚集性很强,运动方向、速度具有一致性。通过数学模型来模拟动物群的集群运动行为以及探索动物群中的信息传递机制一直是仿生学领域的一项重要内容。根据相关资料,建立数学模型刻画动物集群运动、躲避威胁等行为,解决如下问题:问题一:建立数学模型模拟动物的集群运动。 问题二:建立数学模型刻画鱼群躲避黑鳍礁鲨鱼的运动行为。问题三

10、:假定动物群中有一部分个体是信息丰富者(如掌握食物源位置信息,掌握迁徙路线信息),请建模分析它们对于群运动行为的影响,解释群运动方向决策如何达成。二、基本假设1、不考虑鱼的听觉的影响;12、假设除视觉外其他感官在第一问中不考虑除视觉外其他感官的影响忽略,如嗅觉,听觉;23、假设每条鱼体型、感知能力相同;34、假设鱼群在集群运动中没有死亡;5、每条鱼并行搜索反应;46、假设鱼的反应速度很快,改每条鱼改变速度所需的时间非常短;5、假设鱼遇到边界,以反射的方向反弹。三、定义符号说明符号说明二维体系中人工鱼的初始坐标人工鱼的速度二维体系中人工鱼速度方向与横轴的夹角人工鱼聚集的中心坐标在感知范围内邻居的

11、个数三维体系中人工鱼的初始坐标三维体系中人工鱼游动的方向人工鱼的能量状态人工鱼的饥饿系数四、问题的分析及模型的建立、求解4.1 对于问题一4.1.1 问题的分析关于集群行为的研究,大致可以分为三个阶段:第一阶段是生物学家做了大量研究,发现了许多生物群体特有的动态行为;第二阶段是实验物理学家和计算机专家做了许多实验和仿真,用模拟仿生的方法证明这种生物群体现象可以由个体的简单行为规律获得;第三阶段就是利用数学对群集行为进行严格建模及分析。动物的群体行为是相当于个体行为而言的。群体行为决定着个体行为的方向,个体行为是群体行为的体现。群体是由个体构成的,因此,群体行为离不开个体行为但群体行为并不是个体

12、行为的简单相加。所以我们在研究鱼群集体行为的过程中,首先对群体中单个鱼的行为做出研究,然后再从内部影响和外部作用两方面入手,分析鱼群的群集行为。对群集行为的研究主要有三种方法。第一种是欧拉法,在欧拉法中,一个群体的模型中的每个个体成员不作为单个实体进行研究,而是通过密度概念将整个群体作为一个连续集描述,欧拉法有一个明显的缺点就是忽略了个体的特性。第二种是拉格朗日法,拉格朗日法基本的描述就是每个个体各自的运动方程。第三类方法就是基于仿真的建模方法,基于仿真的群集模型无需建立像描述群体分布的费克方程或描述各种吸引力/排斥力作用的牛顿运动方程,而是通过群体中的个体建立模拟实际生物个体动态行为的行为规

13、则来研究群集行为。4.1.2 基于个体自治的仿真的鱼类集群行为的模型我们所进行的鱼群集群行为的仿真模型由三部分构成:(1)环境。(2)个体。(3)行为规则。环境是个体生存的空间,个体在环境中活动,利用环境中的资源来进行生存。个体的综合构成了研究的群体对象。个体的演化过程由其行为规则控制,行为规则则是决定了个体与个体之间、个体与环境之间相互作用的方式。任意时刻个体在环境中都有一个确定的位置并且由其所占据的方位来确定。(一)环境的描述首先对二维的鱼群世界进行仿真,环境应为一个二维的有限平面区域,使用反射型边界,当鱼游到边界以后按照镜子反射的方式反弹回来。我们可以把环境描述成为一个宽为width,长

14、为length的二维世界,如下图图1:个体及其所处环境因为计算机仅仅能处理离散的信息,所以环境也是一个离散的世界。我们用计算机屏幕上一系列运动的点代替鱼个体,给它们设置坐标、速度等参数,就可以把现实中的鱼映射到虚拟环境中来。所有个体在该环境中游动。描述个体的位置和方向如下: (1)其中为速度方向和横轴方向的夹角。 (2)其中,为鱼的初始坐标位置,为一段时间后,鱼的坐标位置。(二)个体描述对个体鱼的建模是仿真的核心与关键。把每条鱼看成一个人能够自主决策的Agent,他们会根据自己的观察来感知周围的环境,并按照一定的规则决策。鱼类个体之间的交互是由其视觉范围的大小决定的。个体的视觉范围是半径为r角

15、度为300度的一个扇形。图2:鱼类的视觉范围主体之间的交互作用是局部的,只能发生在所定义的邻域内。个体具有以下属性:(1)位置:个体位置由一组坐标(x,y)表示;(2)感知范围:个体所能感知的范围。个体的感知范围取决于所定义邻域半径的大小,感知范围越大,表明该个体与环境和其他个体的作用越强。(3)碰撞距离:个体之间的最短距离。当个体之间的距离小于该值时,个体将朝着远离的方向游动。(4)初速度:仿真开始时,赋予每个个体的速度值,大小相等,方向相同。(5)最大速度:鱼类在游动时所能达到的极限速度。(6)加速度:个体受到外界干扰时,对个体行为的改变,表现为的速度的改变。(7)反弹速度:个体到边界时反

16、弹回来的速度。(三)规则描述人工鱼的基本行为主要包括:(1)避开障碍物。(2)游向目标。(3)追逐目标。(4)离开。(5)闲逛。(6)逃逸。(7)集群。个体的行为规则主要表现为群体游动时的游动规则,游动规则主要包括:1聚集规则(尽量靠近邻居)2速度匹配(尽量与邻居的运动方向一致)3避免碰撞(尽量避免与群体内部和群体外部的障碍发生碰撞)在这里我们定义邻居为如果两个个体之间的距离小于某个给定的值,则它们互为邻居。每条人工鱼下一刻游动的方向都要受这三个因素和当前鱼的游动方向的影响,将这四个方向的平均作为人工鱼下一刻游动的方向如下图。下一刻人工鱼的游动方向碰撞方向聚集方向速度匹配方向此刻人工鱼的游动方

17、向图3:人工鱼下一刻的游动方向然而四个因素对鱼群的影响力的大小不同,根据它们对人工鱼下一刻运动方向影响的大小进行赋权,则人工鱼下一刻的运动方向(与二维区域横轴的夹角) (3) (4)下面分别对四条游动准则分别进行描述:(1)聚集性。每个个体都有向邻居中心靠拢的特性,邻居中心为感知范围内所有个体所在位置的平均值。 (5)当前状态下的人工鱼相对中心位置的方向为 (6)其中,为鱼群靠拢的中心,为人工鱼当前所在位置。(2)速度匹配人工鱼要与邻域内的鱼保持游动时速度大小和方向一致,速度和方向为邻域内的均值,则 (7) (8)为邻域内第条鱼的位置,为邻域内第条鱼的速度。(3)避免碰撞为了避免鱼群之间的碰撞

18、。在人工鱼进入危险距离后,若即将与一条鱼碰撞,设为 ,那么人工鱼就以与运动的方向垂直的方向进行规避。若是即将与两条鱼碰撞,分别设为。则人工鱼就以与运动的合成方向相垂直的方向进行规避。当有条时,同样以与条鱼运动合成方向的垂直方向进行规避。如下图: 人工鱼的运动合成方向规避方向图4:避免碰撞的规避图在三维状态下,我们采取相想同的准则,进行模拟仿真。环境应为一块有限的三维区域,我们选定作为人工鱼的位置,用它游动方向和轴,轴和轴的夹角作为人工鱼游动的方向。聚集性的方向为人工鱼和鱼群中心的方向向量。速度匹配的方向为邻居所有鱼的夹角的均值。避免碰撞仍然采用合成的方法。4.1.3 模型的求解通过MATLAB

19、仿真模拟,得到在二维条件下,初始状态的鱼群,如下图:图5:鱼群初始状态在模型一的规则下,鱼群的聚群行为图6:二维鱼群集群应用二维的规则,同样可以得到在三维状态下的模拟成果图7:鱼群三维初始状态三维集群之后的状态,如下图图8:三维鱼群的集群4.2 对于问题二4.2.1 问题的分析在问题一的分析和模型的建立求解过程中,我们并没有考虑人工鱼群在食物链中受到天敌威胁的情况。鱼类在海洋中有效的躲避天敌也是鱼类运动中的一项规则。所以我们在第一问的基础之上建立鱼类的躲避规则,重新仿真鱼类集群运动。4.2.2 模型的建立在游动规则的基础上加入躲避天敌这项规则,进一步完善模型。人工鱼下一刻的运动状态和方向也要受

20、到天敌的影响。4 (4)躲避天敌人工鱼在遭遇黑鳍礁鲨鱼天敌时,迅速以与相对黑鳍礁鲨鱼天敌相反的方向逃离。 (9)其中,为人工鱼所在的位置,为天敌所在的位置,为人工鱼遭遇天敌时逃离的方向与横轴的夹角。在三维的状态中,人工鱼相对黑鳍礁鲨鱼的向量。求出和轴,轴,轴的夹角,从而确定人工鱼的逃离方向。4.2.3 4.2.3 模型的求解利用MATLAB 编程模拟仿真在二维状态下人工鱼在黑鳍礁鲨鱼进入的初始状态下的运动情况,如下图:图9:黑鳍礁鲨鱼进入的初始状态(注:·表示人工鱼,o表示黑鳍礁鲨鱼)黑鳍礁鲨鱼游动T时刻,人工鱼对它的躲避行为,如下图:图10:鱼群对黑鳍礁鲨鱼的躲避行为(注:

21、3;表示人工鱼,o表示黑鳍礁鲨鱼)利用MATLAB 编程模拟仿真在三维状态下人工鱼在黑鳍礁鲨鱼进入的初始状态下的运动情况,如下图:图11:加入黑鳍礁鲨鱼的初始状态(注:·表示人工鱼,o表示黑鳍礁鲨鱼)黑鳍礁鲨鱼游动T时刻,人工鱼对它的躲避行为,如下图:图12:鱼群对黑鳍礁鲨鱼的躲避行为(注:·表示人工鱼,o表示黑鳍礁鲨鱼)4.3 对于问题三4.3.1 问题的分析在问题一和问题二的解决过程中,我们并未考虑人工鱼的能量系统,都是在假设人工鱼不会在能量消耗下自然死亡的情况下进行模拟仿真的。在问题三中,由于要解决对于寻求食物状态下,集群的决策形成。因此我们考虑引入人工鱼的能量消耗系

22、统,综合人工鱼的能量状态来形成对于食物信息的合理决策。4.3.2 模型的建立我们首先定义个体在能量系统中的各个要素:,(a)能量值个体能量的多少由获得的资源量来衡量, 每个仿真周期内个体都要消耗一定的能量,能量值的变化由新陈代谢率决定。当个体的能量值小于或等于0时,该个体死亡。(b)新陈代谢率一个仿真周期个体所消耗的能量值。能量是维持个体在虚拟世界中生存的基本因素。(c)最大能量:个体所能拥有能量的最大值。当个体的能量值达到该值时,停止觅食。(d)初始能量仿真开始时,个体所拥有的能量值。在获得食物信息的情况下,在集群中知道食物信息的个体行为发生改变,表现为朝着食物的方向加速游动, (10)为初

23、始速度,为时刻的速度,为获知食物信息的时刻,为当前时刻。影响人工鱼的运动状态的因素除了食物信息之外还有人工鱼自身的能量状态。我们用饥饿系数来表示人工鱼当前的能量状态。 (11)其中表示人工鱼的初始状态能量,即时刻的能量。T表示发现食物信息的时刻。表示人工鱼单位时间消耗的能量。表示人工鱼能量的满值状态。 (12)所以如果人工鱼处于饥饿状态,并且接收到食物信息,就会以尾追的状态去寻求食物。(5)尾追鱼群中的单个人工鱼会向拥有食物信息的人工靠近,去寻找食物,则鱼群运动的方向是: (13)其中,为人工鱼当前所在位置。为知道食物信息的人工鱼的位置。如果人工鱼没有处于饥饿状态,就会按照问题一和问题二中的规

24、则进行游动。在三维状态下,人工鱼相对知悉食物信息的鱼的向量坐标是,求出相对于轴,轴,轴的夹角,从而确定人工鱼的逃离方向。模型的求解利用MATLAB编程模拟仿真在获得食物位置时,人工鱼群运动的初始状,如下图 :图13:知悉食物初始状态的运动情况(注:·点表示人工鱼,表示食物的位置)在T时刻,人工鱼相对食物的运动状态,如下图:图14:T时刻运动情况(注:·点表示人工鱼,表示食物的位置)五七、结果分析本文通过建立鱼群行为仿真模型, 基于集群规则,对鱼群集群,躲避天敌以及觅食行为进行了二维图像仿真,通过模型的进一步分析,又将模型推广至三维,通过设置不同的仿真参数,利用计算机的仿真模

25、拟鱼类个体之间的相互作用,最终达到集群形成的效果,较为真实的模拟了自然环境中鱼类的集群行为。XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX八、模型检验XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX九、模型推广XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

26、XXXXX六十、模型的评价与改进模型的优点:(1)基于仿真的群集模型可以为个体如何完成群集行为提供一个明确的视觉过程。(2)我们在解决问题的过程中同时对二维和三维进行了仿真,并且得出了合理的结果。模型的缺点:(1)基于仿真的群集模型的优点是可以为个体如何完成群集行为提供一个明确的视觉过程。然而,个体可能存在有很多不同的行为规则,都能够使得群体实现相同的集结行为,也就是说并不能从群体仿真实验中的涌现结果推论出确切的个体行为。(2);而且,实际智能个体的行为可能是非常复杂的,在仿真中也难以复制。总之,个体的简单规则可以使得群体涌现与实际生物界中相似的群体行为,但缺乏理论分析的手段,而且也不能保证现

27、实生物系统就是遵循这样的简单规则。(3)我们对于鱼类活动的原则考虑比较少,行为准则略显粗糙。参考文献:1江道平 尹怡欣等,群体中Agent基于内部状态的行为选择,系统仿真学报,2009年01月;2赵建 曾建朝,鱼群集群行为的建模与仿真,太远科技大学学报,2009年02月;3班晓娟 宁淑荣等XXX,人工鱼高级自组织行为研究XXXXXXXXXXXXXXXXXXX,XXXXXXX自动化学报,2008年10月XXXXX;4陈世明XXX,群集行为的建模与控制方法综述,华东交通大学电气与电子工程学院XXXXXXXXXXXXXXXXXXXXXXXXXXXXX,XXXXXXXXXXXX,XXXXX,2006年

28、09月。书籍的表述方式为:编号 作者,书名,出版地:出版社,出版年。参考文献中期刊杂志论文的表述方式为:编号 作者,论文名,杂志名,卷期号:起止页码,出版年。参考文献中网上资源的表述方式为:编号 作者,资源标题,网址,访问时间(年月日)。正文引用处用方括号标示参考文献的编号,如13等;在文章中的图片、表格等要有注释、说明。 摘要中要把文章中模型的方法、思想、技巧、结论体现出来。 附 录 第一问程序:%实现功能:模拟鱼群的集群,避敌,觅食行为,进行动画演示clear;clc;N=50; %鱼的数量50,Rn=1500; %领域半径VV=30; %初始速度3.0,%a=3; %加速度0.3,Vsi

29、=18; %反弹速度0.8,%鱼的活动范围XRange=-10000,10000; YRange=-10000,10000;ZRange=-10000,10000;VRan=-5*pi/6,5*pi/6;%(1)随机产生鱼的位置PF(x,y)为位置集 for i=1:N PZ(i,1)=XRange(1)+(XRange(2)-XRange(1)*rand; %X坐标 PZ(i,2)=YRange(1)+(YRange(2)-YRange(1)*rand; %Y坐标 PZ(i,3)=ZRange(1)+(ZRange(2)-ZRange(1)*rand; %Z坐标 PF(i,1)=PZ(i,1

30、); PF(i,2)=PZ(i,2); PF(i,3)=PZ(i,3); VZ(i,1)=2*pi*rand; %alpha X速度方向 VZ(i,2)=2*pi*rand; %beta Y速度方向 VZ(i,3)=2*pi*rand; %gama Z速度方向 VF(i,1)=VZ(i,1); VF(i,2)=VZ(i,2); VF(i,3)=VZ(i,3); VZ(i,4)=VV; %gama Z速度大小 VF(i,4)=VZ(i,4);endlam=0.1 0.3 0.3 0.3;%(2)判断一条鱼和其他鱼之间的距离%如果<Rmin则避免碰撞;若>Rmin,<Rmax保持

31、速度相同;若>Rmax,<Rvis则加速追尾;%(2)搜索视野范围内的鱼,并统计个数while 1for i=1:N cn=0; alsum=0; besum=0; gasum=0; for j=1:N if(i=j)&&sqrt(PZ(i,1)-PZ(j,1)2+(PZ(i,2)-PZ(j,2)2+(PZ(i,3)-PZ(j,3)2)<=Rn cn=cn+1; alsum=alsum+VZ(i,1); besum=besum+VZ(i,2); gasum=gasum+VZ(i,3); end end if cn=0 alsum=alsum/cn; besum

32、=besum/cn; gasum=gasum/cn; VF(i,1)=alsum; VF(i,2)=besum; VF(i,3)=gasum; end PF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1); PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2); PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3); %是否越界 if PF(i,1)<XRange(1)|PF(i,1)>XRange(2) VF(i,1)=VF(i,1)+pi; end if PF(i,2)<YRange(1)|PF(i,2)>YRa

33、nge(2) VF(i,2)=VF(i,2)+pi; end if PF(i,3)<ZRange(1)|PF(i,3)>ZRange(2) VF(i,3)=VF(i,3)+pi; end PF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1); PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2); PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3);endTU1=plot3(PZ(:,1),PZ(:,2),PZ(:,3),'.');%更新鱼的状态for i=1:NPZ(i,1)=PF(i,1); PZ(i,2)

34、=PF(i,2);PZ(i,3)=PF(i,3);VZ(i,1)=VF(i,1); VZ(i,2)=VF(i,2);VZ(i,3)=VF(i,3);endset(TU1,'xdata',PZ(:,1),'ydata',PZ(:,2),'zdata',PZ(:,3);drawnow;axis(XRange,YRange,ZRange);grid on;pause(0.01);end第二问程序:%实现功能:模拟鱼群的集群,避敌,觅食行为,进行动画演示clear;clc;N=50; %鱼的数量,Rn=1500; %领域半径VV=30; %初始速度,a=

35、3; %加速度,Vsi=18; %反弹速度,%鱼的活动范围XRange=-10000,10000; YRange=-10000,10000;ZRange=-10000,10000;VRan=-5*pi/6,5*pi/6;%(1)随机产生鱼的位置PF(x,y)为位置集 for i=1:N PZ(i,1)=XRange(1)+(XRange(2)-XRange(1)*rand; %X坐标 PZ(i,2)=YRange(1)+(YRange(2)-YRange(1)*rand; %Y坐标 PZ(i,3)=ZRange(1)+(ZRange(2)-ZRange(1)*rand; %Z坐标 PF(i,1

36、)=PZ(i,1); PF(i,2)=PZ(i,2); PF(i,3)=PZ(i,3); VZ(i,1)=2*pi*rand; %alpha X速度方向 VZ(i,2)=2*pi*rand; %beta Y速度方向 VZ(i,3)=2*pi*rand; %gama Z速度方向 VF(i,1)=VZ(i,1); VF(i,2)=VZ(i,2); VF(i,3)=VZ(i,3); VZ(i,4)=VV; %gama Z速度大小 VF(i,4)=VZ(i,4);endfor i=1:4 %鲨鱼初状态; SZ(1)=XRange(1)+(XRange(2)-XRange(1)*rand; %X坐标 S

37、Z(2)=YRange(1)+(YRange(2)-YRange(1)*rand; %Y坐标 SZ(3)=ZRange(1)+(ZRange(2)-ZRange(1)*rand; %Z坐标 SF(1)=SZ(1); SF(2)=SZ(2); SF(3)=SZ(3); SVZ(1)=2*pi*rand; %alpha X速度方向 SVZ(2)=2*pi*rand; %beta Y速度方向 SVZ(3)=2*pi*rand; %gama Z速度方向 SVF(1)=SVZ(1); SVF(2)=SVZ(2); SVF(3)=SVZ(3); SVZ(4)=VV; SVF(4)=SVZ(4); endl

38、am=0.1 0.3 0.3 0.3;%(2)判断一条鱼和其他鱼之间的距离%如果<Rmin则避免碰撞;若>Rmin,<Rmax保持速度相同;若>Rmax,<Rvis则加速追尾;%(2)搜索视野范围内的鱼,并统计个数while 1for i=1:N cn=0; alsum=0; besum=0; gasum=0; for j=1:N if(i=j)&&sqrt(PZ(i,1)-PZ(j,1)2+(PZ(i,2)-PZ(j,2)2+(PZ(i,3)-PZ(j,3)2)<=Rn cn=cn+1; alsum=alsum+VZ(i,1); besum

39、=besum+VZ(i,2); gasum=gasum+VZ(i,3); end end if cn=0&&sqrt(SZ(1)-PZ(i,1)2+(SZ(2)-PZ(i,2)2+(SZ(3)-PZ(i,3)2)>=Rn alsum=alsum/cn; besum=besum/cn; gasum=gasum/cn; VF(i,1)=alsum; VF(i,2)=besum; VF(i,3)=gasum; end ddd=sqrt(SZ(1)-PZ(i,1)2+(SZ(2)-PZ(i,2)2+(SZ(3)-PZ(i,3)2); if ddd<=Rn VF(i,1)=p

40、i+acos(SZ(1)-PZ(i,1)/ddd); VF(i,2)=pi+acos(SZ(2)-PZ(i,2)/ddd); VF(i,3)=pi+acos(SZ(3)-PZ(i,3)/ddd); VF(i,4)=VZ(i,4)+a; if VF(i,4)>Vmax VF(i,4)=Vmax; end end PF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1); PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2); PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3); %是否越界 if PF(i,1)<XRange(1)|

41、PF(i,1)>XRange(2) VF(i,1)=VF(i,1)+pi; end if PF(i,2)<YRange(1)|PF(i,2)>YRange(2) VF(i,2)=VF(i,2)+pi; end if PF(i,3)<ZRange(1)|PF(i,3)>ZRange(2) VF(i,3)=VF(i,3)+pi; end PF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1); PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2); PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3);end %鲨鱼

42、下一时刻状态 SF(1)=SZ(1)+SVF(4)*cos(SVF(1); SF(2)=SZ(2)+SVF(4)*cos(SVF(2); SF(3)=SZ(3)+SVF(4)*cos(SVF(3); if SF(1)<XRange(1)|SF(1)>XRange(2) SVF(1)=SVF(1)+pi; end if SF(2)<YRange(1)|SF(2)>YRange(2) SVF(2)=SVF(2)+pi; end if SF(3)<ZRange(1)|SF(3)>ZRange(2) SVF(3)=SVF(3)+pi; end SF(1)=SZ(1)

43、+SVF(4)*cos(SVF(1); SF(2)=SZ(2)+SVF(4)*cos(SVF(2); SF(3)=SZ(3)+SVF(4)*cos(SVF(3);TU1=plot3(PZ(:,1),PZ(:,2),PZ(:,3),'.');T2=plot3(SZ(1),SZ(2),SZ(3),'ro');%更新鱼的状态for i=1:NPZ(i,1)=PF(i,1); PZ(i,2)=PF(i,2);PZ(i,3)=PF(i,3);VZ(i,1)=VF(i,1); VZ(i,2)=VF(i,2);VZ(i,3)=VF(i,3);VZ(i,4)=VF(i,4);e

44、ndSZ(1)=SF(1);SZ(2)=SF(2);SZ(3)=SF(3);SVZ(1)=SVF(1);SVZ(2)=SVF(2);SVZ(3)=SVF(3);set(T2,'xdata',SZ(1),'ydata',SZ(2),'zdata',SZ(3);set(TU1,'xdata',PZ(:,1),'ydata',PZ(:,2),'zdata',PZ(:,3);drawnow;axis(XRange,YRange,ZRange);grid on;pause(0.01);end第三问程序:%实现

45、功能:模拟鱼群的集群,避敌,觅食行为,进行动画演示clear;clc;N=100; %鱼的数量,Rn=30000; %领域半径VV=1100; %初始速度,a=10; %加速度,Vsi=100; %反弹速度,Vmax=VV+60;%鱼的活动范围XRange=-10000,10000; YRange=-10000,10000;ZRange=-10000,10000;VRan=-5*pi/6,5*pi/6;%(1)随机产生鱼的位置PF(x,y)为位置集 for i=1:N PZ(i,1)=XRange(1)+(XRange(2)-XRange(1)*rand; %X坐标 PZ(i,2)=YRang

46、e(1)+(YRange(2)-YRange(1)*rand; %Y坐标 PZ(i,3)=ZRange(1)+(ZRange(2)-ZRange(1)*rand; %Z坐标 PF(i,1)=PZ(i,1); PF(i,2)=PZ(i,2); PF(i,3)=PZ(i,3); VZ(i,1)=2*pi*rand; %alpha X速度方向 VZ(i,2)=2*pi*rand; %beta Y速度方向 VZ(i,3)=2*pi*rand; %gama Z速度方向 VF(i,1)=VZ(i,1); VF(i,2)=VZ(i,2); VF(i,3)=VZ(i,3); VZ(i,4)=VV; %gama Z速度大小 VF(i,4)=VZ(i,4);endfor i=1:4 %食物位置; SZ(1)=XRange(1)+(XRange(2)-XRange(1)*0.82; %X坐标 SZ(2)=YRange(1)+(YRange(2)-YRange(1)*0.455; %Y坐标 SZ(3)=ZRange(1)+(ZRange(2)-ZRange(1)*0.5421; %Z坐标 endlam=0.1 0.3 0.3 0.3;%(2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论