图11鱼群躲避捕食者的运动模拟截图
图12鱼群躲避捕食者的运动模拟截图(绿色圆圈为捕食者,红色叉为鱼)
结论:我们通过对鱼群躲避捕食者的模型建立,然后通过matlab编程得到了对鱼群运动的模拟,总的可以看出鱼群的逃逸运动。
5.3对鸟群的觅食运动的模拟
5.3.1模型的分析与建立
11
通过对问题的分析,我们建立了PSO模型对鸟群的觅食行为进行模拟。
5.3.1.1 PSO模型的简介
粒子群优化算法是基于群体的演化算法,其思想来源于人工生命和演化计算理论。Reynolds对鸟群飞行的研究发现,鸟仅仅是追踪它有限数量的邻居,但最终的整体结果是整个鸟群好像在一个中心的控制之下,即复杂的全局行为是由简单规则的相互作用引起的。PSO即源于对鸟群捕食行为的研究,一群鸟在随机的搜寻食物,如果区域只有一块食物,那么找到食物的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。人们通常是以他们自己及他人的经验来作为决策的依据,这就构成了PSO的一个基本概念。
5.3.1.2算法的原理
PSO算法将群体中的每个个体视为多维搜索空间中的一个没有质量和体积的粒子,这些粒子在搜索空间中以一定的速度飞行,并根据粒子本身的飞行经验以及同伴的飞行经验对自己的飞行速度进行动态调整,即每个粒子通过统计迭代过程中自身的最优解和群体的最优值来不断修正自己的前进方向和速度大小,从而形成群体寻优的正反馈机制。PSO算法就是这样依据每个粒子对环境的适应度将个体逐步移到较优的区域,并最终搜索、寻找到问题的最优解。PSO算法具有鲜明的生物社会背景:认知过程和社会行为,即在寻求一致的认知过程中,个体往往记住它们的信念,同时考虑其它同伴的信念,当个体察觉同伴的信念较好时,将进行适应性调整。
5.3.1.3模型的建立
在PSO算法中,用粒子的位置表示待优化问题的解,每个粒子性能的优劣程度取决于待优化问题目标函数确定的适应值,每个粒子由一个速度矢量决定其飞行方向和速率大小。设在一个d维的目标搜索空间中,有m个粒子组成一个群体,其中,在第t次迭代时粒子组成一个群体,其中,在第t次迭代时粒子i的位置表示为Xi(t)??xi1(t),xi2(t),...,xid(t)?,相应的飞行速度表示为开始执行PSO算法时,首先随机初始化m个粒子的Vi(t)??vi1(t),vi2(t),...,vid(t)?。
位置和速度,然后通过迭代寻找最优解,在每一次迭代中,粒子通过跟踪两个极
值来更新自己的速度和位置:一个极值是粒子本身迄今为止搜索到的最优解,称为个体极值,表示为Pi(t)??pi1(t),pi2(t),...,pid(t)?;另一个极值是整个粒子群到目前为止找到的最优解,称为全局极值,表示为Pg(t)??pg1(t),pg2(t),...pgd(t)?。在第t?1次迭代计算时,粒子i根据下列规则来更新自己的速度和位置:
vik(t?1)??vik(t)?1?c1?p?)ik(tx)2??2ci?k(t?12
p?t)? ixk(t)gk(xik(t?1)?xik(t)?vik(t?1);(i?1,2,...,m;k?1,2,...,d)
?取大值可使算法具有较强的全局搜索能力,?取小值则算法倾向于局部搜索。一般的做法是将?初始取0.9,并使其迭代次数的增加而线性递减至0.4,
这样下去可以先侧重于全局搜索,使搜索空间快速收敛于某一区域,然后采用局部精细搜索以获得高精度的解;c1、c2一般取2。另外粒子的每一维的速度Vi取值范围为 Vmin~Vmax。如果当前粒子的加速度导致它在某一维的速度超过该维上的最大速度Vmax,则该维的速度被限制值为最大速度。位置Xi的取值范围为
Xmin~Xmax。
5.3.1.4 PSO算法流程
(1) 随机初始化粒子群体的位置和速度;通常是在允许的范围内随机产生的,每个粒子的 pbest 坐标设置为其当前位置,且计算出其相应的个体极值(即个体的适应度值),而全局极值(即全局的适应度值)就是个体极值中最好的,记录该最好值的粒子序号,并将gbest 设置为该最好粒子的当前位置; (2) 计算每个粒子的适应值;
(3) 对每个粒子,将其适应值与个体极值进行比较,如果较优,则更新当前的个体极值;
(4) 对每个粒子,将其适应值与全局极值进行比较,如果较优,则更新当前的全局极值;
(5) 根据更新位置速度的公式,更新每个粒子的位置和飞行速度;
(6) 如未达到预先设定的停止准则(通常设置为最大迭代次数),则返回步骤(2),达到则停止计算;
5.3.2模型的求解
种群大小取30,粒子大小2,Vmax?2,c1、c2均取2。
根据上述算法,我们通过matlab编程,得出了对鸟群觅食的模拟(程序见附录4)。截图如下:
13
图13鸟群绕过山峰觅食
图14鸟群飞向食物点
14
图15鸟群找到食物
结论:通过上述的截图我们可以看出,我们作出的模拟十分合理,鸟群能够绕过山峰找到食物,我们通过PSO模型,通过鸟群寻找食物的最短路径的最优解算法得到对鸟群觅食过程的模拟。
六、模型评价
对于问题一,我们采用的Boid模型是有缺陷的,它给出的规则都是局部规则,每个个体仅仅根据它周围附近球域内的个体的行为调整自己的行为,只能做到局部一致性,局限性较强,并且模型是在虚拟的没有障碍物存在的空间内进行模拟的,而实际中不可能没有障碍物,基于以上的缺点因素,我们提出了Vicsek模型,这个模型能克服上诉缺点。
对于问题二,我们在模型一的基础上建立了模型,模型得出的结果也是很合适的,不过模型对于鱼群的加速逃离区和适度逃离区的选择不是很合理,模型的改进方向可以是:划定一个必须逃离区,在必须逃离区外危险系数与捕食者和个体的距离成正比,在必须逃离区之内就只能全力逃跑。鉴于时间关系,我们没有再深入下去。
对于问题三,我们采用PSO模型,通过对鸟群觅食的最短路径最优化问题的分析,利用PSO模型作出对鸟群觅食的模拟。
参考文献
[1] 姜启源,数学模型[M].北京:高等教育出版社.1987年4月第一版;
[2] 胡守信,李柏年.基于MATLAB的数学实验[M].北京:科学出版社.2004年6月;
[3] 江铭炎,人工鱼群算法及其应用. 科学出版社. :2012年1月1日第一版;
附录
15