基于群智能的路径规划算法(六)------人工鱼群算法

   本系列文章主要记录学习基于群智能的路径规划算法过程中的一些关键知识点,并按照理解对其进行描述总结和进行相关思考。

   主要学习资料是来自 小黎的Ally 的 《第2期课程-基于群智能的三维路径规划算法》,视频链接如下(点击链接可跳转):

   https://space.bilibili.com/477041559/channel/seriesdetail?sid=863038

   本篇参考博客:

   人工鱼群算法Matlab实现(点击可跳转)

   本篇文章是本系列的第五篇文章 :狼群算法


本系列文章链接 (点击可跳转):

-----------------------------------------------------------------------------

   基于群智能的路径规划算法(一)------粒子群算法
   基于群智能的路径规划算法(二)------蚁群算法
   基于群智能的路径规划算法(三)------遗传算法
   基于群智能的路径规划算法(四)------人工蜂群算法
   基于群智能的路径规划算法(五)------狼群算法
   基于群智能的路径规划算法(六)------人工鱼群算法

-----------------------------------------------------------------------------


   一、人工蜂群算法简介

   人工鱼群算法是一种基于模拟鱼群行为的优化算法,是由李晓磊等在2002年提出的一种新型的寻优算法。在一片水域中,鱼生存的数目最多的地方就是本水域中富含营养物质最多的地方,依据这一特点来模仿鱼群的觅食等行为,从而实现全局寻优,这就是鱼群算法的基本思想。

   在鱼类的活动中,可以分为觅食行为、聚群行为、追尾行为和随机行为这四种行为。

   (1)觅食行为主要就是循着食物多的方向游动的一种行为,在寻优中则是向较优方向进行的迭代方式,如鱼群模式中的视觉概念;

   (2)在聚群行为中,借鉴的思想对每条人工鱼规定了这样两个规则:①尽量向邻近伙伴的中心移动 ② 避免过分拥挤,这样就能基本实现人工鱼的聚群能力;

   (3)追尾行为就是一种向临近的最活跃者追逐的行为,在寻优算法中可以理解为是向附近的最优化伙伴前进的过程;

   (4)随机行为就是人工鱼在其视野内随机移动的行为,在寻优算法中这种行为有助于解跳出局部最优。


   二、问题描述与定义

   假设在一个n维的目标搜索空间中,有N条组成一个群体的人工鱼群,每个人工鱼个体的状态可表示为向量X = ( x 1 , x 2 , … , x n ) X=(x_1,x_2,…,x_n),其中xi(i=1,2,3…n)为欲寻优的变量。:人工鱼当前所在位置的食物浓度表示为Y = f ( X ), 其中f()为目标函数;人工鱼个体间距离表示为 d = ∣ ∣ x i − x j ∣ ∣(这是二范数); visual表示人工鱼的感知范围,step为人工鱼移动步长,δ 为拥挤度因子;trynumber表示人工鱼每次觅食最大试探次数。


   三、将人工鱼群算法应用于路径规划

   (1)随机行为

   随机行为是指某只鱼从当前位置Xi按照步长step随机移动一步的行为,随机行为的存在可一定程度上抑制鱼群陷入局部最优。

   (2)觅食行为

   觅食行为是指鱼循着食物多的方向游动的一种行为,若某只人工鱼当前的位置为Xi,在其视野内随机选择一个位置Xj;,分别计算这两个位置的适用度y(xi)和y(xj),如果发现Xj位置处的适应度更优,则令该鱼从Xi向Xj的方向移动一步; 否则,该鱼循环执行以上操作,若在到达设定的最大循环次数try_number之前,找到适应度更优的位置,则令该鱼从Xi向Xj的方向移动一步,并退出循环,若在到达设定的最大循环次数之后,仍没有满足前进条件,则该鱼执行随机行为,随机移动一步使该鱼从Xi,到达一个新的位置Xk。

   (3)聚群行为:

   聚群行为是指鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群的行为。该人工鱼会搜索其视野内的伙伴数目nf(即搜索与该人工鱼的距离小于设定的界限visual的其他鱼)及它们的中心位置Xc,并计算该鱼当前位置的适应度y(xi)与视野内伙伴中心位置的适应度y(xc),若y(xc)* nf<δ*y(xi),则表明伙伴中心位置适应度较优且不太拥挤,则该人工鱼会朝伙伴的中心位置移动一步,否则,该人工鱼会转而执行觅食行为;

   ☆☆☆☆☆注:y(xc)* nf<δ * y(xi)中的δ可以理解为拥挤度因子,是可调节的参数,此外,上式中认为适应度越低越优,若认为适应度越高越优则需改为:y(xc)/ nf > δ*y(xi)

   (4)追尾行为

   追尾行为是指鱼向其视野区域内的最优方向移动的一种行为。该人工鱼i会搜索其视野内所有的个体(即搜索与该人工鱼的距离小于设定的界限visual的其他鱼),并计算它们的适应度,选取其中适应度最优的个体j其适应度值为y(xj);,并探索人工鱼j视野内的伙伴数目nf,若y(xj)/nf<δ*y(xi),表明Xj处的位置较优且不太拥挤,则Xi朝Xj位置移动一步,否则执行觅食行为;

   聚群行为和追尾行为的区别:聚群行为中当前鱼i会搜寻其自己视野内的其他鱼的数量nf,并计算这些鱼的中心位置Xc,若满足判断条件,则朝Xc位置移动,而追尾行为中,当前鱼会先搜寻其自己视野内的其他鱼,并选出它们中最优的那只鱼j,然后统计最优的那只鱼视野内的其他鱼的数量nf,若满足判断条件,则朝Xj位置移动。


   四、算法流程

   算法在运算过程中,鱼群中的每只鱼都会同时进行聚群和追尾行为。然后对聚群行为和追尾行为得到的适应度值进行比较,将两者中适应度更优的一个作为该只鱼下一代的初始位置。而觅食行为属于这两种行为中发现聚群对象或者追尾对象附近拥挤度过大时,人工鱼选择的行为方式,若在觅食过程中,未发现比自身适应度高的人工鱼,则按步长step随机移动。算法总框架图如下:


   五、人工鱼群算法中核心参数对算法的影响

   1、影响度因子δ

   拥挤度因子用来限制人工鱼群聚集的规模,在较优状态的邻域内希望聚集较多的人工鱼,而次优状态的邻域内希望聚集较少的人工鱼或不聚集人工鱼。

   假设当前鱼群中有15只鱼,且6号鱼处的食物浓度最高,即6号鱼所在的位置的适应度更优(本例中某处的适应度越低,认为该处的适应度越优),所有鱼的视野大小相同,6号鱼的视野范围即为图中橙色的C1圈内的范围,10号鱼的视野范围为图中紫色的C3圈内的范围,并且假设10号鱼视野内其他鱼的位置的中心为图中标注的Center10的实心圆圈所在的位置。



   下面以拥挤度因子δ对追尾行为的影响为例,来分析拥挤度因子对鱼群的影响

   在上图所示的例子中,3、4、5、7、8、9、10号鱼的视野范围内适应度最优的鱼为6号鱼,即对于这几只鱼来说,若满足式子y(X6)* nf<δ*y(Xi),则该i号鱼执行追尾行为(其中i=3、4、5、7、8、9、10),否则执行觅食行为。

   上式可以化成y(X6)< (δ/nf) * y(Xi)的形式,上图的例子中,此时nf为7,δ 取值为以理解为某个区域内期望的最大鱼的个数。

   若此时δ取值为8,则此时 (δ/nf)=10/8 显然大于1,又已知y(X6)< y(Xi),(其中i=3、4、5、7、8、9、10),所以对3、4、5、7、8、9、10号鱼而言无论他们所在的位置的适应度与6号鱼所在位置的适应度相差多少, 式子y(X6)< (δ/nf) * y(Xi)必然成立,即它们都将执行追尾行为。

   若此时δ取值为3.5,则此时 (δ/nf)=3.5/7 =0.5,此时只有 当i号鱼的适应度y(Xi)> (nf/δ) *y(X6),即本例中y(Xi)> 2 * y(X6)时,i号鱼才执行追尾行为。若假设上图中白圈C2处的适应度y(C2)=2 * y(X6),则只有3、4、10号鱼执行追尾行为,而5、6、8、9号鱼则执行觅食行为

   通过以上例子可以看出,在认为适应度越低越优的情况下,影响度因子δ取值越小 (在认为适应度越高越优的情况下,影响度因子δ取值越大), 表明允许的拥挤程度越小,人工鱼摆脱局部极值的能力越强,但人工鱼群的收敛的速度会有些减缓,这主要因为人工鱼在逼近极值的同时,会因避免过分拥挤而随机走开,或者受其它人工鱼的排斥作用,不能精确逼近极值点。


   2、觅食行为中的try_number

   try_number的次数越多,人工鱼群摆脱局部极值的能力就会越弱,当然,对于局部极值不是很突出的优化问题,增加try_number的次数可以减少人工鱼的随机游动而提高收敛的效率。

   3、视野Visual

   由于视野对算法中各行为都有较大的影响,因此,它的变化对收敛性能的影响也是比较复杂的。当视野范围较小时,人工鱼的觅食行为和随机游动比较突出;视野范围较大时,人工鱼的追尾行为和聚群行为将变得比较突出。总体来看,视野越大,越容易使人工鱼发现全局极值并收敛。

   4、随机步长step

   若采用固定步长,随着步长的增加,收敛的速度得到了一定的加速,但步长过大时,有时会出现振荡现象而大大影响收敛的速度,而采用随机步长的方式在一定程度上防止了振荡现象的发生,并使得该参数的敏感度大大降低了,但最快的收敛速度还是最优固定步长的收敛速度,所以,对于特定的优化问题,我们可以考虑采用合适的固定步长或变尺度方法来提高收敛的速度。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕羽★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值