




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
鱼类集群运动行为的研究与模拟鱼类集群运动行为的研究与模拟摘要在动物界中,动物的集群运动现象十分普遍。许多个体行为简单的动物,集群后却能表现出复杂的群体行为。对动物群体的集群运动进行研究和模拟对我们进一步了解动物界中的生物运动情况产生进一步的了解。在本文中,我们基于鱼群算法着重对鱼群的集群运动进行分析。在问题一中,我们建立了鱼类集群运动的初级模型,考虑鱼类聚群运动和随机运动等最一般的情况,利用分隔规则,内聚规则以及步长和方向的随机性进行限制。运用matlab进行分析模拟,得出不同迭代次数下的鱼群分布及鱼群运动路线图。在问题二中,引入了鱼群的逃逸行为,分别对捕食者和被捕食者设定捕食规则和逃逸规则,通过matlab仿真对模型进行进一步的模拟,得出了符合现实中捕食行为和逃逸行为的结果。在问题三中,我们假设一部分鱼是信息源丰富者,定义适应度函数,考虑鱼群的追尾行为,按照所定义的最优运动方向算法运用matlab进行模拟仿真,更好地展现了信息丰富的鱼群对鱼群整体的集群运动所造成的影响。本模型在聚群行为,逃逸行为,觅食行为,追尾行为等方面都给出了很好的模拟,与实际情况较为相符。并且我们通过动画演示非常直观地展现了鱼群聚群行为,逃逸行为,觅食行为,追尾行为。对进一步了解和研究鱼类集群运动行为具有很重要的意义。关键字:集群运动,鱼群算法,计算机仿真。目 录一、问题重述31.1问题背景31.2目标任务3二、问题分析3三、基本假设3四、符号说明3五、模型建立与求解35.1问题一:鱼类集群运动的初级模型35.1.1问题分析及模型准备35.1.2模型的假设35.1.3模型的建立与求解35.2问题二:引入逃逸行为的鱼类集群运动模型35.2.1模型假设35.2.2模型的建立与求解35.3问题三:具有信息丰富者条件下的集群运动35.3.1模型假设35.3.2模型的建立与求解3六、模型的评价36.1模型的优点36.2模型的缺点3参考文献3附 录3一、 问题重述1.1 问题背景 在生态系统中,动物个体的行为相对简单,集群后却能表现出复杂的群体行为。例如鱼群,鸟群,蝗虫等动物成群结队的进行运动或觅食的现象十分常见。这些动物群在运动过程中具有很明显的特征:群中的个体聚集性很强,运动方向、速度具有一致性。通过数学模型来模拟动物群的集群运动行为以及探索动物群中的信息传递机制一直是仿生学领域的一项重要内容。1.2 目标任务1. 建立数学模型模拟动物的集群运动。 2. 建立数学模型刻画鱼群躲避黑鳍礁鲨鱼的运动行为。3. 假定动物群中有一部分个体是信息丰富者(如掌握食物源位置信息,掌握迁徙路线信息),请建模分析它们对于群运动行为的影响,解释群运动方向决策如何达成。二、 问题分析问题一要求建立数学模型模拟动物的集群运动,为了简化模型,我们忽略鱼群的觅食行为,追尾行为,逃逸行为,避障行为等,仅考虑鱼群的聚群行为和随机行为并且在二维空间内进行讨论。问题二中,在对最一般情况运动的分析的基础上,我们可以引入鱼群逃逸行为对问题进一步分析,对海洋生态环境中的捕食与被捕食情况进行研究与模拟。问题三中,我们在一部分小鱼的信息丰富者(即了解食物源的位置)的情况下,研究其对整个群体觅食行为的影响,以此模拟更逼真的海洋生物环境。三、 基本假设1) 鱼群生活在一个有限的空间内;2) 每个鱼的个体可以视作一个质点;3) 不考虑由于觅食行为,追尾行为和逃逸行为造成鱼群速度的剧烈变化; 4) 捕食者仅有一个;5) 只考虑捕食者与被捕食者两个种群,不考虑与其它种群间的相互影响;6) 食物浓度和分布情况不随时间而变化;7) 在任意给定的时刻,鱼类的行为系统中受到刺激被驱动的行动有一个或多个,但所选出的目标行为只有一个;8) 鱼类可视范围设为一个以鱼个体为中心360度的圆;9) 只在二维的情况下对鱼类集群运动进行分析。四、 符号说明拥挤度因子极值接近水平期望在该邻域内聚集鱼的最大数目鱼所感知的某状态的值鱼自身状态的值可视范围内伙伴的数目周围第j条小鱼的当前状态向量小鱼的当前状态向量中心位置状态向量的第k个元素第个伙伴的第k个元素小鱼当前状态向量的第k个元素下一步状态向量的第k个元素0,step之间的随机数单位随机向量n小鱼总个数step小鱼集群运动的步长v小鱼可视半径kv鲨鱼可视半径鲨鱼下一时刻的状态变量鲨鱼下一时刻状态变量的第k个元素鲨鱼当前状态向量的第k个元素第p次迭代离鲨鱼最近的小鱼的状态向量p次迭代离鲨鱼最近的小鱼的状态向量中的第k个元素表示鲨鱼当前状态向量适应度函数食物源与小鱼的距离食物源位置坐标向量信息源丰富者的位置坐标向量不知道食物源位置信息的小鱼的位置坐标向量信息源丰富者下一时刻状态向量食物源坐标向量中的第k个元素信息源丰富者的位置坐标向量中的第k个元素非信息源丰富者下一时刻状态向量适应度最大的小鱼坐标向量中的第k个元素非信息源丰富者的位置坐标向量中的第k个元素五、 模型建立与求解23455.1 问题一:鱼类集群运动的初级模型123455.15.1.1 问题分析及模型准备该题要求建立数学模型模拟动物的集群运动,在本文中我们以鱼类的集群运动为例进行分析。鱼类的集群运动包括:聚群行为、觅食行为、追尾行为、随机行为、避障行为、逃逸行为等。为了简化模型,我们先对集群运动的简单形式进行分析,即仅考虑鱼类的聚群行为和随机行为,在此基础上对鱼类基础性集群运动进行分析,建立鱼类集群运动的初级模型。聚群行为是鱼类进化过程中的一种生存方式,由于鱼在行进过程中为了保证自身的生存和躲避危害会自然地聚集成群。鱼聚群时所遵守的规则有以下三条:1) 分隔规则,尽量避免与临近伙伴过于拥挤;2) 对准规则,尽量与临近伙伴的平均方向一致;3) 内聚规则,尽量朝着临近伙伴的中心移动。在该模型中,我们利用分隔规则和内聚规则对鱼类的聚群行为进行限制。随机行为是指鱼在水中悠闲的自由游动,基本上是随机的,是一种为了更大范围的寻觅食物或同伴的行为。随机性包括步长的随机性和方向的随机性,在模型中,步长的随机性存在于任何一个过程,而方向的随机性仅存在于随机行为中。5.1.2 模型的假设1) 不考虑鱼群觅食行为和追尾行为,假设食物浓度在各处均匀分布;2) 不考虑鱼群的避障行为和逃逸行为,假设鱼群在一个空旷无威胁的空间内活动;3) 假设鱼群生活在一个单位的二维区域内。5.1.3 模型的建立与求解首先进行分隔规则的设定。我们通过拥挤度因子来限制鱼群聚集的规模,在较优状态的邻域内希望聚集较多的鱼,而次优状态的邻域内希望聚集较少的鱼或不聚集鱼,并且以控制邻域内聚集的最大数目来做到尽量避免与临近伙伴过于拥挤。其选取规则如下:式中,:拥挤度因子:极值接近水平 nmax:期望在该邻域内聚集鱼的最大数目因此,衡量鱼群邻域内是否过于拥挤的标准为:若ycyinf0 for i=1:nf xc=xc+xnb(:,i); end xc=xc./nf;end xx=x+rand*st*d(x,xc); if xx(1)ub(1) xx(1)=ub(1); end if xx(2)ub(2) xx(2)=ub(2); end end%觅食行为function xx=af_prey(x,v,l,lb,ub,st)m=length(x);xx=zeros(m,1);counter=0;xnb=zeros(m,0);dx=ones(1,0);while 1 a=2*(rand(2,1)-0.5;0.5); b=sqrt(a(1)2+a(2)2); xnext=x+v*a./b; counter=counter+1; fx=fit(x); fxx=fit(xnext); if fxx=fx xx=x+rand*st*d(x,xx); break; endend%追尾行为function xx=af_follow(x,v,st,xnb,delta,lb,ub)n=size(xnb,2);maxx=x;maxy=fit(x);for n=1:nxn=xnb(:,n);if fit(xn)fit(x) maxx=xn; maxy=fit(xn);endendif maxydelta*fit(x) xx=x+rand*st*d(x,maxx); if xx(1)ub(1) xx(1)=ub(1); end if xx(2)ub(2) xx(2)=ub(2); end else xx=af_swarm1(x,st,xnb,lb,ub); end%第s条鱼感知可视域内同类的位置function xnb=af_feel(s,x,v)m=size(x,1);n=size(x,2);sx=x(:,s);xnb=zeros(m,0); for n=1:n if n=s xn=x(:,n); dx=xn-sx; m=0; for i=1:m m=m+dx(i)2; end m=sqrt(m); if mv xnb=xnb,xn; end endend%捕食者的捕食行为function yy=kl_prey(kl,x,kv,kst,lb,ub)m=size(x,1);n=size(x,2); xnb=zeros(m,0);dx=ones(1,0);for n=1:n xn=x(:,n); cd=dist(kl,xn); if cd0 xnb=xnb,xn; dx=dx,cd; end endif size(xnb)0mindx=min(dx);pos=find(dx=mindx);bestx=xnb(:,pos(1);yy=kl+rand*kst*d(kl,bestx); else yy=af_rand(kl,kst);end if yy(1)ub(1) yy(1)=ub(1); end if yy(2)ub(2) yy(2)=ub(2); end%被捕食者的逃逸行为function xx=af_escape(s,x,x,st,v,killer,lb,ub)xnb=af_feel(s,x,v);if dist(killer,x)0 xx=x+rand*st*d(killer,x);elseif size(xnb,2)0 xx=af_swarm1(x,st,xnb,lb,ub);else xx=af_rand(x,st); end if xx(1)ub(1) xx(1)=ub(1); end if xx(2)ub(2) xx(2)=ub(2); end%求两点间的单位方向向量function n=d(x,xx)c=size(x,1);dx=xx-x;m=0;for i=1:c m=m+dx(i)2;endm=sqrt(m);n=dx./m;%两点间距离function d=dist(a,b)m=size(a,1);c=0;dx=b-a;for i=1:m c=c+dx(i)2;endd=sqrt(c);%获取第n条鱼k代历史位置function a=getkloc(n,k,allx)a=zeros(3,k);for i=1:k b=allxi; a(:,i)=b(:,n);end%问题一源程序function allx=fsoucp_test(k,n,v,delta,l,lb,ub,st)m=length(lb); x=zeros(m,n);for i=1:nx(:,i)=20*(rand(3,1)-0.5;0.5;0.5);endallx=cell(k,1);ally=zeros(k,n);bestx=cell(k,1);besty=zeros(k,1);k=1;while k0 xx=af_swarm1(x,st,xnb,lb,ub); else xx=af_rand(x,st); end newx(:,n)=xx; end x=newx; allxk=x; k=k+1;end %作图figurefor i=1:6 if i=1 a=allx1; elseif i=6 a=allxk; else a=allxround(0.2*(i-1)*k); end aaa=a(1,:); bbb=a(2,:); ccc=a(3,:); subplot(3,2,i); plot3(aaa,bbb,ccc,*); axis(lb(1),ub(1),lb(2),ub(2),lb(3),ub(3); endfigure for n=1:naa=getkloc(n,k,allx);x=aa(1,:);y=aa(2,:);z=aa(3,:);hold onplot3(x,y,z,-*); axis(lb(1),ub(1),lb(2),ub(2),lb(3),ub(3); end%问题二源程序function allx,allk=fsoucp_test2(k,n,v,delta,l,lb,ub,st,kv,kst)m=length(lb); x=zeros(m,n);for i=1:nx(:,i)=5*(rand(3,1)-0.5;0.5;0.5);end kl=6;0;0; allx=cell(k,1);allk=zeros(m,k);k=1;while k=k newx=zeros(m,n); kl=kl; yy=kl_prey(kl,x,kv,kst,lb,ub); kl=yy; allk(:,k)=kl; for s=1:n x=x(:,s); xx=af_escape(s,x,x,st,v,kl,lb,ub); newx(:,s)=xx; end x=newx; allxk=x; k=k+1;end%作图figurefor i=1:6 if i=1 a=allx1; b=allk(:,1); elseif i=6 a=allxk; b=allk(:,k); else a=allxround(0.2*(i-1)*k); b=allk(:,round(0.2*(i-1)*k); end aaa=a(1,:); bbb=a(2,:); aab=a(3,:); ccc=b(1,:); ddd=b(2,:); ccd=b(3,:); subplot(3,2,i); hold on; plot3(aaa,bbb,aab,*); plot3(ccc,ddd,ccd,r*); axis(lb(1),ub(1),lb(2),ub(2),lb(3),ub(3); endfigure for n=1:naa=getkloc(n,k,allx);x=aa(1,:);y=aa(2,:);z=aa(3,:);hold onplot3(x,y,z,-*); axis(lb(1),ub(1),lb(2),ub(2),lb(3),ub(3); end hold on a=allk(1,:); b=allk(2,:); c=allk(3,:); plot3(a,b,c,r-*); axis(lb(1),ub(1),lb(2),u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030肉牛养殖场规划设计标准与生物安全规范报告
- 2025-2030羊肉副产品综合利用技术突破与商业化路径分析
- 2025-2030矿泉水行业社群营销模式与用户粘性提升策略
- 2025-2030直播电商农产品供应链整合与品质管控体系构建
- 积雪融化对夯土遗址顶缘水热过程的影响及侵蚀破坏特征
- 车间设备维修全流程方案范例
- 探索大豆分离蛋白的组成特性及其在多肽开发中的应用
- 智能温室作物品种的适应性评估体系构建
- 2024西安市事业单位招聘考试真题分析
- 工厂操作工岗位标准作业流程
- VEX智能机器人培训课程课件
- 2#横洞进正洞挑顶方案
- 智能变电站设备巡视
- UPS基础知识及竞争分析课件
- 2021《改革开放史》课件全文
- 塑料厂安全风险分级管控清单
- 心脏射频消融术护理常规ppt
- 建筑工程经济与管理完整版课件全套ppt教程(最新)
- 新教材教科版五年级上册科学全册课时练(课后作业设计)
- 锐捷兵法-售前学员版课件
- SLZ 552-2012 用水指标评价导则
评论
0/150
提交评论