基于Boid模型与粒子群算法对沙丁鱼行为趋势的研究
2019-07-15胡星辰方圆吴萍
胡星辰 方圆 吴萍
摘 要:针对沙丁鱼群在被捕食的环境下如何通过行为规律降低被捕食风险的问题,运用Boid模型、粒子群算法、灰色关联及仿真模拟等理论和方法,构建基于沙丁鱼习性Boid模型、基于鱼群决策的粒子群算法模型、基于影响行为趋势因素的灰色关联模型及鱼群集群行为仿真模拟等模型,综合运用MATLAB等软件求解,分析沙丁鱼群被捕食时的行为规律,最后将沙丁鱼行为规律代入现实社会利用。
关键词:行为趋势;Boid模型 灰色关联 粒子群算法
鱼群仿真模拟 MATLAB
中图分类号:TP18文献标识码:A文章编号:
沙丁鱼和绝大部分的鱼类一样,是一种群居生物。当数以千万计的沙丁鱼聚集在一起时,海豚们就会倾巢出动来捕获美食,通过自己优势在鱼群中横冲直撞,运用超声波对个体进行定位,而身为群体生物的沙丁鱼也在这漫长的岁月中形成了与海豚们斗智斗勇的生存模式。本文希望通过研究沙丁鱼的群体行为趋势来探究其对于人类社会可以借鉴的意义。
一、基于沙丁鱼习性的Boid模型
(一)研究思路
在Boid模型[1]中,用坐标中的运动点代表鱼个体,这样的一群点就是鱼类的群体。给每个点设置坐标、速度等参量,这样就把现实世界中的鱼映射到坐标中来。通过假设以下三条简单的规则来决定鱼群的行为方式,这样Boid模型的动态行为就可以和真实世界中的鱼类群聚行为相比拟。
由于现实中的鱼具有一定的视角范围,因此在Boid模型中每条“鱼”都要观察它周围的局部环境。假如我们把Boid模型放置在一个与现实世界相似的三维虚拟现实环境中,每条“鱼”能够看到它所处水平面的一个扇形,如图1所示,图中阴影部分表示鱼的视力范围。
图1 鱼的视力范围表现图
(二)模型建立
基于以上对鱼类视力观察范围,并且受其视力范围的影响,我们可以得到具体鱼群在游动过程中是怎样相互配合联系,达到群体秩序和谐统一的。这里有如下三个规则进行约束:
1)吸引规则。每个个体都要去尽量靠近它相邻个体的中心位置,如图2示。
2)匹配规则。每个个体的游行方向尽量与周围邻居的游行方向保持一致,如图3示。
图2 Boid模型的靠近规则 图3 Boid模型的对齐规则
3)分隔规则。当个体与相邻个体靠得太近的时候就会尽量避开,如图4示。
再加入第四条规则,规避规则。当个体发现前方有障碍物的时候,就改变自己的运动方向尽可能避开。反映在模型中就是“鱼群”灵活地避开障碍物,然后重新组织集聚游行的姿态与方式,如图5所示。
图4 Boid模型的分隔规则 图5 Boid模型的规避规则
(三)模型求解
基于Boid模型,我们初步了解鱼类在平常运动行为的规律,针对其运动规律进行设想,鱼群在相互联系配合时应具备以下三个方面的模块条件。
1.感知模块。指个体在遇到障碍物或者危险时,能够及时感应,这需要个体具备相对应的功能。从整体来看,当个体感受到对应的危险存在时,个体立即做出对应的反应,发放行为信息等,邻居的个体会在视觉范围内感受到其信息,做出与其相一致的行为,这样整体就会在个体部分的影响下,做出反应。
2.决策模块。对于单个个体在面临危险到来时候能够迅速做出最优策略,及時能够规避风险。
3. 运动模块。基于Boid群聚模型,要求个体的运动模块更加精密与精确,在鱼群运动时能够随时调整其运动姿态与运动速度,否则就可能发生因为鱼群运动模块的滞后性而带来的相撞的事故,甚至会出现鱼群产生极其剧烈的扰动从而破坏了Boid模型的秩序与自组织。
二、基于鱼群决策的粒子群算法模型
在沙丁鱼觅食模型[2]中,每个个体可以被看成一个粒子,则沙丁鱼群可以被看成一个粒子群。假设在一个维的目标搜索空间中,有m个粒子组成一个群体,其中第i个粒子位置表示为,即第个粒子在D维搜索空间中的位置是。换言之,每个粒子的位置就是一个潜在解,将代入目标函数就可以计算出其适应值,根据适应值的大小衡量其优劣。粒子个体经历过的最好位置记为整个群体所有粒子经历过的最好位置[3]记为。粒子i的速度记为
粒子群算法采用下列公式对粒子所在的位置不断更新(单位时间:1):
⑴
⑵
其中,;;是非负数,称为惯性因子;加速常数和是非负常数;和是[0,1]范围内变换的随机数;a称为约束因子,目的是控制速度的权重。
此外,,即粒子的游动速度被一个最大速度所限制。如果当前时刻粒子在某维的速度更新后超过该维的最大飞翔速度,则当前时刻该维的速度被限制在。为常数,可以根据不同的优化问题设定。
迭代终止条件根据具体问题设定,一般达到预订最大迭代次数或粒子群目前为止搜索到的最优位置满足目标函数的最小容许误差。
三、基于危险性预测的灰色关联模型
(一)模型准备
基于鱼群决策的粒子群算法模型可知,对于未面临危险的沙丁鱼,极为游散,小部分聚集觅食。当个体部分感知危险过后,沙丁鱼会迅速聚集成一团,对于这种面临危险沙丁鱼聚团行为进行假设分析。其是否通过这种行为降低被捕食的概率,本文基于灰度关联模型,对聚团后鱼群的数量,聚团的大小,聚团后鱼鳞反光的面积三个因子展开研究,探析其对聚团这种行为降低被捕食风险的影响。
(1)确定反映系统行为特征的参考数列和影响系统行为的比较数列
(2)对参考数列和比较数列进行无量纲化处理
(3)求参考数列与比较数列的灰色关联系数
对于一个参考数列有若干个比较数列各比较数列与参考数列在各个时刻(即曲线中的各点)的关联系数可由下列公式算出:其中为分辨系数,一般在0-1之间,通常取0.5;第二级最小差,记为;是两级最大差,记为。
为各比较数列曲线上的每一个点与参考数列X0曲线上的每一个点的绝对差值,记为。
关联系数也可简化如下列公式:
(4)求关联度
用比较数列与参考数列间关联程度的数量表示,关联度公式如下:
表示比较数列对参考数列的灰关联度,或称为序列关联度、平均关联度、线关联度。值越接近1,说明相关性越好。
(5)关联度排序
因素间的关联程度,主要是用关联度的大小次序描述,而不仅是关联度的大小。将m个子序列对同一母序列的关联度按大小顺序排列起来,便组成了关联序,记为{x},它反映了对于母序列来说各子序列的“优劣”关系。若,则称{}对于同一母序列{}优于{},记为{}>{} ;表示第个子序列对母数列特征值。
灰色关联度分析法是将研究对象及影响因素的因子值视为一条线上的点,与待识别对象及影响因素的因子值所绘制的曲线进行比较,比较它们之间的贴近度,并分别量化,计算出研究对象与待识别对象各影响因素之间的贴近程度的关联度,通过比较各关联度的大小来判断待识别对象对研究对象的影响程度。
(二)模型建立
对于模型的建立,本文定义以下三方面的假设和要求:
1.我们假设聚团后的沙丁鱼群为一个圆心,无半径大小,而沙丁鱼所能感受到捕食者最远的距离为,我们以沙丁鱼团为圆心,以R半径,作球,令球面为沙丁鱼“感应面”,显然对于沙丁鱼聚团越大,则“感应面”越大。(=1,2,3…n)
2.聚团鱼群的数量我们令作(=1,2,3…n)
3.对于聚团后鱼群鱼鳞的反光面积令作(=1,2,3…)
以影响因子作为解释变量,以海豚捕食量为被解释变量,做出相关序列表。建立反映鱼群团大小与“防御面”之间的三维立体图形,如图6所示。
(三)模型求解
对于鱼群数量对降低捕食风险来说,存在一个临界值,当鱼群聚团数量低于临界值时,海豚随鱼群数量的增加而减少,但是鱼群数量一旦超过临界值,海豚捕食的数量就会随之增加而增加。
对于鱼群聚团的大小和鱼鳞反光面积,海豚捕食量与其负相关。即鱼群聚团越大,鱼鳞反光面积越大,海豚捕食量越小。
综上模型的求解分析,我们得到海豚捕食量的大小受鱼群数量影响最大,其次是聚团的大小,影响最弱的是鱼鳞反光面积的大小,这也与实际认知相符合。
四、鱼群集群行为仿真模型
(一)模型准备
假设每个个体在每个仿真周期内都要经历观察、决策、行动三个步骤。[4]
1)观察视野范围内其它个体的位置、状态信息以及觅食范围内是否有食物、鱼钩、捕食者。
2)根据这些观察结果和简单的行为规则选择一个行动,具体的就是确定自己的加速度方向。
3)将决策的结果进行实施,并更新自己的状态。
(二)模型建立
对二维世界的鱼群进行仿真,环境应为一个有限的二维平面区域,使用反射型边界,当鱼游到边界时反弹回来。我们可以把具体的环境描述为一个二维世界。由于计算机仅能处理离散的信息,所以环境也是一个离散的世界。用计算机屏幕上的一系列运动的点代替鱼个体,给它们设置坐标、速度等参数,就可以把现实中的鱼映射到虚拟环境中来。所有个体在该区域内游动、觅食。描述个体的位置和方向如下:
其中为方向上个体的速度分量,为方向上个体的速度分量,direct为游动方向,即游动方向和x轴[7]的夹角。为目标位置的坐标。[5]
这个二维平面区域以及计算机时钟的运行共同构成了鱼群所处的虚拟环境。环境中还需要包含食物、鱼饵等信息。我们用一个数组变量来存储信息。表示该点没有元素,表示该点是食物,表示该点是鱼饵。
(三)模型求解与结果分析
对个体的建模是仿真的核心与关键。把每条鱼看成是一个能够自主决策的Agent,它们会根据自己的观察来感知周围的环境,并按照一定的规则决策。[6]模拟的环境示意图如下图7.
图7 模型环境示意图
模型中加入捕食者主体情况下,进行仿真,如下图8 所示。
1)模型中捕食者主体属性设置如下:
1.主体的数量 numb=20;
2加速度 acc=0.4;
3.碰撞的最小距离revdist=600;
4.最大速度 maxspeed=6.0;
5.反弹速度 bouncespeed=0.8;
6.初始速度 =3.0;
7.能量消耗 energy Consumed=2;
8.主体颜色 color=red;
9.初始能量 fish Energy=400;
10.最大能量 fish Max Energy=600;
11进食能量值 hunger Energy=300;
12.视觉范围 r=3000;
13.觅食范围 R=6000。
2)仿真结果
图 是仿真开始后,捕食者能量值减少到一定值,处于饥饿状态,需要觅食的仿真。图是随着仿真运行,捕食者捕食普通鱼类后,普通鱼类逃避捕食者的仿真。图9是通过修改捕食者参数,被捕食者数量的变化图。
3)结果分析
图中 data A 为本仿真数据;data B 为捕食者数量由 num=20 改为 num=50;data C 为捕食者进食能量由 hunger Energy=300 修改为 hunger Energy=200。在0T 图8 捕食者开始捕食图9 逃避捕食者 五、总结 目前智能算法中的神经网络、遗传算法等都具有完善的生物学基础。而目前动物的集群行为相对单调,可挖掘的生物知识较少。但在现实生活中电力系统规划可以借鉴鱼群的社会行为趋势:电力系统规划的重要组成部分是输电网规划,其目的是根据规划期间的负荷增长及电源规划方案构建相应的最佳电网结构,来满足经济可靠地输送电能的要求。目前,人工智能算法的快速发展为解决输电网规划问题提供了新的方法。人工智能算法适于求解组合优化问题或者目标函数与一些约束条件[8]不可微的优化问题。人工鱼群算法通过引入禁忌搜索和对人工鱼部分行为的改进,使人工鱼在探寻过程中具有记忆能力,对探索过的位置设为禁区,从而避免重复搜索;同时记录禁区中的一些优良状态,保证搜索的高效性和多样性,进而通过人工鱼群算解决输电网规划问题的速度和效率。 参考文献: [1] 罗德相,周永权,黄华娟.粒子群和人工鱼群混合优化算法[J].计算机与应用化学, 26(10):1257-1261,2009. [2] 刘建华. 粒子群算法的基本理论及其改进研究[D].中南大学,2009. [3] 翟超. 生命群集协调行为模型的改进及同步控制研究[D].华中科技大学,2009. [4] 冯春时. 群智能优化算法及其应用[D].中国科学技术大学,2009. [5] 赵建,曾建潮.鱼群集群行为的建模与仿真[J].太原科技大学学报,30(01):31-35,2009. [6] 崔志华. 微粒群算法的性能分析与优化[D].西安交通大学,2008. [7] 杨桂元,朱家明.数学建模竞赛优秀论文评析[M],合肥:中国科学技术大学出版社,2013. [8] 司守奎.孫玺菁.数学建模算法与应用[M]. 北京:国防工业出版社,2015 作者简介:胡星辰(1998.01) 男,汉族,安徽蚌埠人,安徽财经大学管理科学与工程学院,2016级本科生,研究方向:XXXX。