欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    动物集群运动行为模型系列之一.doc

    • 资源ID:2036348       资源大小:889.02KB        全文页数:45页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    动物集群运动行为模型系列之一.doc

    动物集群运动行为模型动物集群运动行为模型摘 要自然界中很多种生物中都存在着复杂的群集行为,生物学家曾对此做了大量研究,也取得了很多重要的研究成果。群集行为在一定程度上是由群集智能所支配的,所谓群集智能指的是众多简单个体组成群体,通过相互间的合作表现出智能行为的特性。自然界中动物、昆虫常以集体的力量进行躲避天敌、觅食生存,单个个体所表现的行为是缺乏智能的,但由个体组成的群体则表现出了一种有效的复杂的智能行为。本文要做的主要工作是通过建立适当的数学模型,利用计算语言进行仿真,研究群体的集群运动。针对问题一,我们首先寻找其理论基础,国内外专家研究群集行为时主要采用欧拉法和拉格朗日法。通过相关理论的比较发现,解决本题所研究的问题,采用拉格朗日法更佳。为方便研究,本文选取自然界的鱼群作为对象,建立自由游动模型、引入环境R-a模型、并在此基础上建立避开静态障碍物模型,赋予多Agent感知、交互能力,通过对Agent内部状态值的调节改变搜索参数,达到内部状态控制行为选择的目的,最后通过计算机仿真演示动物的集群运动。针对问题二,在前面模型的基础上,进一步引进当Agent遭遇捕食者时的集群运动模拟算法。基于人工鱼群的自组织模型,确立相关的天敌因子,之后根据约束因子分配权重,进行迭代计算,实现鱼群逃逸模拟。针对问题三,分析其信息丰富者对于群运动的影响,以及群运动方向的决策,借鉴种群中的信息传递原理,简化种群内通讯机制,并赋予鱼群一种彼此间可以互相传递信息的通讯方式,融合抽象的信息交互方式,建立动物的群体觅食模型信息交互模型,实现信息对种群对决策运动方向的影响。关键词:群集行为 群集智能 多Agent 微分迭代 信息交互 群体觅食一、 问题的背景及重述1.1 问题的背景生态系统中,动物个体行为比较简单,集群后却表现出异常复杂的群体行为,鱼群,鸟群在运动中表现出连贯一致的整体结构,使得他们能够更好地躲避危险以及提高获得食物的机会。生物的这种集群运动引发人们对群集智能方面的探索。群集智能理论的研究从二十世纪八十年代出现以来,作为一个新兴的领域,得到越来越多的科学家的关注,现在已经成为经济、社会、生物等交叉学科的研究热点。群集智能主要是针对蚂蚁、鸟群等群居生物体行为的观察和研究,是在自然界生物群体表现出来的智能现象的启发下提出的针对简单生物群体的智能涌现现象的具体模式研究。1.2问题的重述通过观看视频和在网上搜索相关资料,这些动物群在运动过程中具有很明显的特征:群中的个体聚集性很强,运动方向、速度具有一致性。着重思考动物集群运动的机理,建立数学模型刻画动物集群运动;建立数学模型刻画鱼群躲避黑鳍礁鲨鱼的运动行为;假定动物中有掌握食物源位置信息、掌握迁徙路线信息的信息丰富者,进一步分析该动物群体中是如何达成群运动方向决策。二、模型假设2.1假设本文中所提到的生物种群是一个独立的生态部落;2.2 假设自然鱼的一般游动是随机性的;2.3论文中提到的鱼群数量在短期内的是不发生变化的,即也不考虑鱼的出生率、死亡率;2.4假设同种鱼群个体之间是同质的,只考虑平均水平,不考虑个体差异;2.5该鱼种群不受环境变化影响(地震、海啸等自然灾害);2.6假设环境当中出现食物和障碍物是随机分布的。三、符号说明 设单位时间单位面积内在方向上粒子的迁移量 粒子浓度 扩散率 粒子数 群体的平移 群体面对所处环境反应作出的常规漂移量 群体中距离为的个体相互之间的吸引力 群体中距离为的个体相互之间的排斥力 个体的质量 个体i的位置 作用在个体上的合力 个体的总数目 包括聚集或分散的力 下个周期Agent的游动方向 个体Agent靠近鱼群游动的方向(向心因子) 对齐鱼群时游动的方向(对齐因子) 避免碰撞时游动的方向(躲避因子) 当前t中该Agent的游动方向(惯性因子) 第因子的权重(=1,2,3,4,5,7) 个体的位置向量 每一步时间间隔 Agent与Agent的距离为 由向心性对Agent引起的期望运动趋势 由对齐性对Agent引起的期望运动趋势 由避免碰撞性对Agent引起的期望运动趋势、 静态障碍物边界切线的方向向量 逃逸因子、 、与的夹角 Agent运动的最大速度 Agent运动的最小速度 捕食者的最大速度 最大偏转角 时间 所消耗的食物量 消化率 自从上次进食以来的时间 一个常数,它表明鱼的胃口大小 外部刺激的影响 自从上次交配以来的时间 计算对潜在交配的感知影响 对所发现的捕食者的恐惧感 对所发现的捕食者距离 两条鱼之间的距离 遇到捕食者需要旋转的角度 四、问题分析自然界存在着大量集结成群进行移动或者觅食的动物,这些动物群在运动过程中具有很明显的特征:群中的个体聚集性很强,运动方向、速度具有一致性。常以集体的力量进行觅食生存,单个个体所表现的行为是缺乏智能的,但由个体组成的群体则表现出了一种有效的复杂的智能行为,也就是群集智能的体现。本文中研究的主要问题是建立模型模拟动物的集群行为,首先寻找动物集群的一些理论依据,诸如欧拉法、拉格朗日法,深入分析其中影响集群的原因包括游动原则、觅食原则、躲避障碍物原则,再建立R-A模型,并利用计算机演示集群行为。在第二问中考虑其鱼群躲避黑鳍礁鲨鱼的运动行为,当鱼群遇到天敌时的逃逸,通过个体逃逸及过程中相互作用来表现群体逃逸行为。当某个Agent发现捕食者时将发送消息给其他的Agent。假设Agent接收到危险信号,将分析捕食者的位置、方向、自身的心理、生理作出相应的逃逸选择,在第一问模型的基础上,引进当Agent遭遇捕食者时的集群运动模拟算法。基于人工鱼群的自组织模型,确立出相关的天敌因子,之后根据约束因子分配权重,迭代计算,实现鱼群逃逸模拟。对于问题三当中,对于所有的生物,无论是群居的还是散居的,因为生存的需要,彼此之间总要发生联系,为了研究信息丰富者对于群集运动方向,分析动物的信息交互,将其通讯机制进行简化分析,针对鱼的觅食行为,在前一问模型建立的基础上,再分析信息丰富着是如何影响种群决策路径的。五、模型的建立与求解5.1建立数学模型模拟动物的集群运动。5.1.1理论基础通过搜集相关书籍和资料可以知道,关于集群问题的建模和研究方法主要分为以下两类:(1)欧拉法在欧拉法中,一个群集模型中的每个个体成员不作为单个实体来研究,而是通过密度概念将整个群体作为一个连续集描述。欧拉方法的理论基础为费克提出的经典的扩散理论,其模型方程表示为:方程中设单位时间单位面积内在方向上粒子的迁移量记为,为粒子浓度,是扩散率。及为群体通过垂直于x轴的平面的通量,表示群体的平移。同时对流项不仅包含群体中心漂移的速度项,还增加了群体成员间的相互作用,如:该式中,描述群体面对所处环境反应作出的常规漂移量;、分别描述群体中距离为的个体相互之间的吸引和排斥作用力。其它一些基于欧拉法的研究工作都是在基于上述群集模型的基础上做一些扩充性的探讨。方程中还可以添加的项有来自于同类或环境资源的吸引力或排斥力。(2)拉格朗日法拉格朗日法基本的描述就是每个个体各自的运动方程,这也是一种更加自然的建模和分析方法。举例来说,在拉格朗日法中,牛顿运动方程是一个典型的个体运动方程:其中,是个体的质量,是个体i的位置,是作用在个体上的合力,是个体的总数目。由组成,其中包括聚集或分散的力(即描述个体之间的吸引力作用或排斥力作用)、与邻近个体速度与方向相匹配的作用力、确定的环境影响力如万有引力以及由环境或其它个体行为产生的随机扰动作用力。是这些作用力的总和。当前,很多关于群集行为的研究工作也都是围绕着这些作用力的形式而展开的。(3)理论模型的比较与结论欧拉法因为偏微分方程理论发展得较为完善,因此对由偏微分方程构建的群集模型的理论分析将易于进行,另一个优点就是无需对群体所处环境作空间离散化处理,对于描述大规模密集而没有明显不连续分布的群集行为非常有效。但是,欧拉法也有一个明显的缺点,即忽略了个体的特性。因此,对于很多群体由有限数量的大体积或强调个体智能特性的个体成员组成的情况下,将不太适合使用基于欧拉法的连续集模型,如鱼群、鸟群等的群集行为。欧拉模型中对群体所处物理空间的连续性假设多适合于体型较小的生物群。当分析由较大体型生物组成的群体如鱼群、鸟群、兽群等时,由此组成的群体所占据的物理空间也会因为每个个体体型的因素而变得相对大许多,这也使得欧拉法对于群体所处物理空间是连续集这一假设在现实中也变得难以满足。故而本题采用基于拉格朗日法的Agent模型模拟动物集群运动。5.1.2模型建立原则为了较为准确的建立数学模型模拟动物的集群运动,我们以自然鱼为原型,建立人工智能鱼群。通过视频的观看和相关书籍资料的查阅及学习,我们提出人工智能鱼群的运动原则如下:(1) 一般游动原则a.靠近原则,即尽量靠近邻近鱼群的中心;b.对齐原则,尽量与邻近鱼的运动方向一致;c.避免碰撞原则,尽量避免与邻近鱼碰撞。又由于每条鱼的运动方向是随机性的,这三条规则对改变鱼下一时刻游动方向只起到一定的影响作用,而鱼的游动方向不可能立刻改变,鱼的原本速度还表现了惯性作用。故而自由游动情况下,Agent的下一时刻的运动速度方向主要由惯性速度,对齐速度,向心速度,躲避速度四个因素综合作用决定,如下图所示:(2)鱼群觅食规则鱼类在群体中比单独行动时能更多更快地找到食物。如果鱼群中的一个成员找到了食物,其他成员也可以捕食。当鱼群中各成员之间的距离勉强保持在各自视线之内,则搜索面积最大,自然鱼群集觅食时遵循以下俩点规则:a.离心性:Agent个体前往鱼群外围搜索到近距离的食物;b.追尾性:当其他鱼群聚集在食物所在地时,Agent会追尾上前捕获食物。(3)Agent躲避静态障碍物原则当Agent感知到静态障碍物时,静态障碍物只有位置信息,没有运动信息。Agent计算出在当前速度下需要转动多大的角度可以避开距离障碍物的最近点,经多次试验验证,这个转角通常在Agent的单步运动能力范围内,即以最小耗能和最近路线避开障碍物。5.1.3模型的建立(1)自由游动模型的建立根据以上原则,考虑到各规则对鱼的影响力不同,我们还需要对各个方向矢量加权,采用层次分析法,以游动原则的所涉及到的速度向量作为四个指标,计算影响Agent下一时刻运动方向的各个方向指标的所占权重因子。自由游动模型算法:建立公式如下:其中其中为下个周期Agent的游动方向,当前t中该Agent的游动方向(惯性因子),为个体Agent靠近鱼群游动的方向(向心因子),为对齐鱼群时游动的方向(对齐因子),为避免碰撞时游动的方向(躲避因子)。分别表示的权重大小。采用层次法分析,得出判断矩阵:指标惯性因子向心性因子对齐性因子避免碰撞性因子惯性因子1424/3向心性因子1/411/21/3对齐性因子1/2212/3避免碰撞性因子3/433/21由层次分析法解得:主观因素W1客观因素W2权重0.33330.66671惯性因子2-0.50.3333向心性因子-0.16670.33330.1667对齐性因子0.33330.50.2222避免碰撞性因子0.50.66670.2778因此,。,惯性因子对下一时刻鱼的速度影响最大。(2)R-a环境模型的建立由于Agent处于鱼群之中,临近鱼对其影响比较复杂,为了进一步量化指标,方便模拟集群运动的实现,现简化Agent的环境因素模型R-a模型如下所示:R-a模型将个体与个体之间的相互作用描述为3种作用。设Agent与Agent的距离为:1. 当时,表现为一种排斥作用,即躲避性的体现,防止它们出现碰撞冲突;2. 当时,表现出一种吸引作用,即向心性的体现,确保鱼群成为一个整体;3. 当时,处于一个相对平衡和稳定的状态,与进行速度匹配,避免打破这种平衡距离或出现潜在冲突,即对齐性的体现,保证鱼群朝着相同的方向前进。有了R-a模型,我们即可对三条游动规则的方向矢量作出如下定义:以各原则属性所引起的期望运动趋势作为相应的影响因子。设群体中有N个Agent (1、2、.N,),Agent的位置向量为,运动向量为,每一步时间间隔为。1.由向心性对Agent引起的期望运动趋势为:2.由对齐性对Agent引起的期望运动趋势为:3.又避免碰撞性对Agent引起的期望运动趋势为:将以上影响因子代入(1)式中计算即可的Agent下一时刻的运动方向。其中:,将相关算法利用计算机语言编程,时间微量化逐次迭代就可以得到一般自由运动的鱼群集群运动的模拟。 上边两幅二维图中:左图为红色和蓝色鱼群的随机分布图,右图为动物在集群行为后的图像,右图中左侧的鱼群为蓝色鱼群,右侧的鱼群为红色鱼群,其中红色种群和蓝色种群各10个。(程序见附录)(3)鱼群绕开静态障碍物的模型建立感知定义:基于感知问题的复杂性,在虚拟环境里作了简化,设定如下:a.Agent感知食物,捕食者及障碍物的感知范围为Agent运动方向,半径为或的半球,Agent直接从数据库读取位置和运动数据;b.Agent在鱼群中的相互感知,感知范围为半径的球体,通过Agent之间的通信,传递位置和运动信息。基于二维平面的绕行算法:Step1当Agent感知到此刻速度方向上有障碍物,则以此刻位置为原点P作一簇射线。Step2记录射线集合中与障碍物边界有且只有一个交点的射线的方向向量为、,记、与的夹角分别为、。Step3当>,则以作为障碍物绕行因子,反则反之。Step4将绕行因子添加至约束条件中,再次根据约束因子分配权重。根据经验算法得绕行因子权重与鱼距离障碍物的距离反相关,引入函数量化如下:Step5计算下一刻速度速度,按时间步长法不断迭代并执行,直至运动方向上无障碍物则回归自由游动。算法流程图如下:。基于三维空间的绕行算法:面向Agent作出垂直于水平方向的空间障碍物投影,之后代入二维平面程序中进行计算迭代即可。上图为鸟群躲避静态障碍物的截图。5.2.建立数学模型刻画鱼群躲避黑鳍礁鲨鱼的运动行为5.2.1相关因素的引入定义1.最大速度:设Agent运动的最大速度为,最小速度为,设捕食者的最大速度,二者比值设为:。定义2.最大偏转角为,K为常量,v为直线速度。定义3.人工鱼的行为函数是用来度量各行为的参数度量描述。比如:疲劳感、饥饿感、恐惧感属于鱼的内部心理状态,用以下几个公式进行量化:其中其中,带上划线的部分表示人工鱼的内部冲动部分,表示时间,是所消耗的食物量,按实物颗粒数或捕食鱼的数目来衡量,是消化率,其中为常数;是自从上次进食以来的时间;是一个常数,它表明鱼的胃口大小(大鱼具有较大的值);体现外部刺激的影响,如对邻近食物的感知;包含常数的呈性欲函数;是自从上次交配以来的时间;计算对潜在交配的感知影响;是一常数;和分别表示对所发现的捕食者的恐惧感和距离;,是标称值。5.2.2人工鱼群自组织模型的建立在前面模型的基础上,进一步引进当Agent遭遇捕食者时的集群运动模拟算法。基于人工鱼群的自组织模型,确立相关的天敌因子,之后根据约束因子分配权重,代入迭代计算,实现鱼群逃逸模拟。当鱼群遇到天敌时的逃逸,通过个体逃逸及过程中相互作用来表现群体逃逸行为。当某各Agent发现捕食者时将发送消息给其他的Agent。假设Agent接收到危险信号,将分析捕食者的位置、方向、自身的心理、生理作出相应的逃逸选择。下面将这个逃逸行为模拟为:设Agent的质量为;某遇危险时刻为;速度为逃逸时期望达到的速度为;其遇到捕食者需要旋转的角度为;Agent逃逸期间防止碰撞的排斥力为。则时间内Agent运动速度、位置的变化可用下式表示:同时定义人工鱼逃逸期间避免碰撞的斥力为,其中、为常量;为两条鱼之间的距离。为有指向的法向量。其中遇到捕食者需要旋转的角度为(的取值由Agent的运动速度与捕食者的运动速度共同决定),如图所示,其中虚线为调整后的速度。If then Else if then Else 式中的“-”表示背离捕食者的运动方向,即捕食者在Agent左侧,则Agent向右转,反之亦然。Step1.当Agent感知到探知范围内有捕食者,或收到其他鱼传的的危险信息,迅速确定捕食者位置及其运动速度和方向Step2.计算疲劳度,饥饿感,恐惧感和群体逃逸的排斥力Step3.确定规避的偏转角及逃逸速度,并作为逃逸因子代入约束条件Step4.结合疲劳度,饥饿感,恐惧感和排斥力等确定约束因子的权重Step5. 计算下一刻速度速度,按时间步长法不断迭代并执行,直至鱼群整体探知内无捕食者则回归自由游动。如上图所示:绿色代表天敌,其他四种颜色代表小鱼。在小鱼感知到探知范围内有捕食者,或收到其他鱼传的的危险信息,迅速确定捕食者位置及其运动速度和方向,然后聚群逃离,免受天敌捕食。5.3.群中信息丰富者对群体运动方向的影响的探究5.3.1觅食环境下的信息交互动物不像人们那样说话,因为生存和繁衍的需要,他们同样能够交流,动物是通过某种信号来唤起或影响其他个体行为的方式就是动物间的通讯。他们的通讯方式很多,其中有视觉通讯、听觉通讯、接触通讯、电通讯和化学通讯等,在本题当中融合了上述通讯方式的抽象的信息交互方式。当一个Agent在觅食环境中找到食物时则发出找到食物这样的讯息,而其他未找到食物的Agent如果感知到了这样的讯息就会向发出讯息处聚集。此题中我们以鱼群觅食为研究对象。5.3.2鱼群觅食的中的信息传递机理为方便模型建立,将交互过程定义为Agent之间的消息传递,我们把通信机制简化如下:1.Agent通信范围:以自身质心为中心的,半径为最大吸引距离的球体;2.通信对象:位于的通信范围内的所有Agent;3.通信过程:a)当每一步运动结束位置坐标发生变化后,更新成员库;b)传递位置、运动信息给所有通信对象;c)所有通信对象将它们的位置、运输信息传递给 。4.通过与通信对象之间的通信,实现Agent在群体中的局部交互。5.3.3群体信息交互模型的建立为了解信息丰富者在鱼群集群运动中的影响,在前面一些模型建立的基础上,我们主要从鱼群的觅食行为模拟方面进行研究:动物通过与周围同伴交互信息寻找食物的过程Step1确立鱼群中信息丰富者所占比例;Step2计算鱼群的饥饿度,疲劳度;Step3对信息丰富者引入信息因子,对饥饿者结合自然鱼的觅食特性,即离心性和追尾性,引入离心因子和追尾因子,扩充各自的约束条件并从新赋予相应权重,迭代计算;Step4调整信息丰富者比例,重复上述过程;Step5研究结果,得出结论。六、模型评价欧拉法因为偏微分方程理论发展得较为完善,因此对由偏微分方程构建的群集模型的理论分析将易于进行,另一个优点就是无需对群体所处环境作空间离散化处理,对于描述大规模密集而没有明显不连续分布的群集行为非常有效。但是,欧拉法也有一个明显的缺点,即忽略了个体的特性。因此,对于很多群体由有限数量的大体积或强调个体智能特性的个体成员组成的情况下,将不太适合使用基于欧拉法的连续集模型,如鱼群、鸟群等的群集行为。在解问题一时,继上面所述的两种理论之后先考虑动物群及运动的原则:一般游动原则、鱼群觅食原则、Agent躲避障碍物原则,在此原则基础上建立自由游动模型、R-A模型、躲避障碍物模型。建立模型中有考虑各个因子的对鱼的下一刻游动的影响,采用层次法分析其权重比值,总体思路比较清晰,模型上下的衔接比较好,模型建立比较成功。问题二中在前面模型的基础上,引进当Agent遭遇捕食者时的集群运动模拟算法。基于人工鱼群的自组织模型,确立相关的天敌因子,之后根据约束因子分配权重,进行迭代计算,实现鱼群逃逸模拟,而采用根据约束因子分配权重也有其局限性:1. 它在很大程度上都依赖于人们的经验,主观因素的影响很大。它至多只能排除思维过程中的严重非一致性,却无法排除可能存在的片面性。2. 比较判断过程较为粗糙,不能用于精度要求较高的决策问题。问题三同样是先分析动物信息传递方式以及信息传递机制建立群体信息交互模型,扩充各自的约束条件并从新赋予相应权重,迭代计算,得出结论。七、参考文献1胡晓东,董辰辉,MATLAB从入门到精通,北京,人民邮电出版社,2010.6;2马莉,MATLAB数学实验与建模,北京,清华大学出版社,2010.1;3江道平,尹怡欣,班晓娟,孟祥嵩,群体中 Agent 基于内部状态的行为选择,北京,北京科技大学信息工程学院;4陈世明,群集行为的建模与控制方法综述,江西 南昌,华东交通大学电气与电子工程学院;5余建平,周新民, 陈 明,群体智能典型算法研究综述,长沙湖南师范大学,数学与计算机科学学院;6赵建,曾建潮,鱼群集群行为的建模与仿真,太原,太原科技大学系统仿真与计算机应用研究所;7赵建,鱼群群集行为的建模与仿真硕士学位论文,太原,太原科技大学。八、附录8.1层次分析法程序a=1 1/22 1;x,y=eig(a);eigenvalue=diag(y);lamda=eigenvalue(1);cil=(lamda-2)/1;crl=cil/0;w1=x(:,1)/sum(x(:,1);>> b1=1,4,2,4/3;1/4,1,1/2,1/3;1/2,2,1,2/3;3/4,3,3/2,1;x,y=eig(b1);eigenvalue=diag(y);lamda=eigenvalue(1);ci21=(lamda-4)/3;cr21=ci21/0.9;w21=x(:,1)/sum(x(:,1);>> b2=1,1/2,1/3,1/4;2,1,2/3,1/2;3,3/2,1,3/4;4,2,4/3,1;x,y=eig(b2);eigenvalue=diag(y);lamda=eigenvalue(1);ci22=(lamda-4)/3;cr22=ci21/0.9;>> w22=x(:,1)/sum(x(:,1);>> w_sum=w21,w22*w1;>> ci=ci21,ci22;>> cr=ci*w1/sum(0.9*w1);8.2用MATLAB编写的二维鱼群聚模型8.2.1主函数clcclear allclose all Boids_params.pop_size = 10;Boids_params.num_rounds = 500;Boids_params.dist_param = 100;Boids_params.velocity_limit = 200;Boids_params.rand_speed_param = 50;Boids_params.bound_square_size = 700;Boids_params.bound_speed_param =40;Boids_params.bang_params.cycle = 80;Boids_params.bang_params.duration = 0;Boids_params.bang_params.power = 20; Boids_pop_blue = Boids_init(Boids_params.pop_size);Boids_pop_red = Boids_init(Boids_params.pop_size); mov = avifile('Boids_3.2_Hunter_Hunted.avi')ticfor iRound=1:Boids_params.num_rounds Boids_params.current_round = iRound; Boids_pop = Boids_pop_blue; Boids_pop_red; F = Boids_draw(Boids_pop, Boids_params); mov = addframe(mov,F); blue_center = Boids_get_center(Boids_pop_blue); red_center = Boids_get_center(Boids_pop_red); new_Boids_pop_blue = Boids_move_all_to_new_pos(Boids_pop_blue, red_center, 1, Boids_params); new_Boids_pop_red = Boids_move_all_to_new_pos(Boids_pop_red, blue_center, 2, Boids_params); Boids_pop_blue = new_Boids_pop_blue; Boids_pop_red = new_Boids_pop_red; iRoundendtocmov = close(mov);8.2避开天敌function v4 = Boids_avoid_shark(Boid, shark_pos, Boids_params) % Simple shark escape % if (norm(Boid.pos - shark_pos) > 0.5*Boids_params.bound_square_size) v4 = 0 0;else v4 = (Boid.pos - shark_pos)*(1*0.5*Boids_params.bound_square_size)/. (5*Boids_params.bound_square_size - norm(Boid.pos - shark_pos);end % Advanced shark escape % Boid_shark_vec = shark_pos - Boid.pos;scalar_prod = Boid_shark_vec(1)*Boid.v(1) + Boid_shark_vec(2)*Boid.v(2); if (scalar_prod < 0) v4 = 0 0;end8.2.3子函数1. 画图函数function F = Boids_draw(Boids_pop,Boids_params) X = ;Y = ; SQUARE_SIZE = Boids_params.bound_square_size*2; Boids_center_mass = 0 0; for iBoid = 1:Boids_params.pop_size Boids_center_mass = Boids_center_mass + Boids_pop(iBoid).pos;end Boids_center_mass = Boids_center_mass/Boids_params.pop_size;% plot(Boids_center_mass(1), Boids_center_mass(2), 'or');% hold on; if (rem(Boids_params.current_round, Boids_params.bang_params.cycle) < Boids_params.bang_params.duration. && Boids_params.current_round > Boids_params.bang_params.duration) plot(Boids_center_mass(1), Boids_center_mass(2), 'or'); hold on;end % shark_pos.x = 1.0*Boids_params.bound_square_size*cos(2*Boids_params.current_round*pi/180);% shark_pos.y = 0.4*Boids_params.bound_square_size*sin(5*Boids_params.current_round*pi/180);% plot(shark_pos.x, shark_pos.y, 'og');% hold on; for iBoid = 1:size(Boids_pop,1) %X = X; Boids_pop(iBoid).pos(1); %Y = Y; Boids_pop(iBoid).pos(2); p0 = Boids_pop(iBoid).pos - Boids_pop(iBoid).v; p1 = Boids_pop(iBoid).pos; if (iBoid <=Boids_params.pop_size) vectarrow(p0,p1,'b'); else vectarrow(p0,p1,'r'); end hold on;endhold off;% plot(X,Y,'.b');% hold off;AXIS(-SQUARE_SIZE SQUARE_SIZE -SQUARE_SIZE SQUARE_SIZE) F = getframe;2. 群聚中心函数function center = Boids_get_center(Boids_pop) center = 0 0; for iBoid = 1:size(Boids_pop,1) center = center+Boids_pop(iBoid).pos;end center = center / size(Boids_pop,1);3. 位置初始化function Boids_pop = Boids_init(Boids_pop_size); Boids_pop = ; Boids_init_velocity = 100*(rand - 0.5) (rand - 0.5); for iBoid = 1:Boids_pop_size xPos = rand*3000 - 1500; yPos = rand*3000 - 1500; new_Boid.pos = xPos yPos ; new_Boid.v = Boids_init_velocity; Boids_pop = Boids_pop; new_Boid;end4. 位置限制函数function new_Boid = Boids_limit_position(Boid, Boids_params); if Boid.pos(1) > Boids_params.bound_square_size*0.9 && Boid.v(1) > 0 Boid.v(1) = Boid.v(1) - Boids_params.bound_speed_param;endif Boid.pos(1) < -Boids_params.bound_square_size*0.9 && Boid.v(1) < 0 Boid.v(1) = Boid.v(1) + Boids_params.bound_speed_param;endif Boid.pos(2) > Boids_params.bound_square_size*0.9 && Boid.v(2) > 0 Boid.v(2) = Boid.v(2) - Boids_params.bound_speed_param;endif Boid.pos(2) < -Boids_params.bound_square_size*0.9 && Boid.v(2) < 0 Boid.v(2) = Boid.v(2) + Boids_params.bound_speed_param;end new_Boid = Boid;5. 速度限制函数function new_Boid = Boids_limit_velocity(Boid, Boids_params) if norm(Boid.v) > Boids_p

    注意事项

    本文(动物集群运动行为模型系列之一.doc)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开