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

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

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

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

   本篇文章是本系列的第四篇文章 :人工蜂群算法



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

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

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

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


   一、人工蜂群算法简介

   Karaboga在2005年为解决多变量函数优化问题,提出了人工蜂群算法模型( Artificial Bee Colony ,ABC)。

   蜜蜂是一种群居昆虫,自然界中的蜜蜂总能在任何环境下以极高的效率找到优质蜜源,且能适应环境的改变。蜜蜂群的采蜜系统主要由蜜源、采蜜蜂、跟随蜂、侦查蜂等组成(某些资料有雇佣蜂、非雇佣蜂之分)∶
   蜜源:蜜源就是待求优化问题的可行解,是人工蜂群算法中所要处理的基本对象。蜜源的优劣用实际问题的适应度(目标函数)来评价。

   采蜜蜂:采蜜蜂采用贪婪准则,比较记忆中的最优解和邻域搜索解,当搜索解优于记忆最优解时,替换记忆解;反之,保持不变。在所有的采蜜蜂完成邻域搜索后,采蜜蜂回蜂房跳摆尾舞与跟随蜂共享蜜源信息。

   跟随蜂:根据采蜜蜂的蜜源信息以一定概率选择采蜜源,蜜量大的采蜜蜂吸引跟随蜂的概率大于蜜量小的采蜜蜂。同样,跟随蜂在采蜜源附近邻域搜索,采用贪婪准则,比较跟随蜂搜索解与原采蜜蜂的解,当搜索解优于原采蜜蜂的解时,替换原采蜜蜂的解,完成角色互换;反之,保持不变。

   侦查蜂:若某处蜜源陷入局部最优,采用侦查蜂大步长搜索的方式探索最优解。


   二、将蚁群算法应用于路径规划


   三、算法流程

   ① 初始化:在搜索空间中随机生成S、个蜜源位置,这些位置也就代表了第一代的采蜜蜂的最优位置

   ② 采蜜蜂在蜜源位置附近寻找新的蜜源:xij= +rand * (xij-xkj) 式中,j代表解的某一维度,在路径规划中也就是x、y、z的坐标,i代表目前的采蜜蜂,k是除了i之外的某个采蜜蜂编号。

   ③ 采蜜蜂回到蜂巢跳摆尾舞与跟随蜂共享蜜源信息,每一只跟随蜂根据蜜源适应度,以一定概率(轮盘赌法)选择具体的蜜源,并在周围采蜜。

   ④ 另外,若某处的蜜源在经历了设定的最大次数后仍未找到邻近更优的蜜源,此时考虑已经陷入局部最优,则调用侦查蜂采用较大步长的方式随机生成新的蜜源位置。xjj= xij+rand * map(j)


   四、轮盘选择法

   轮盘赌的核心思想就是对于每个待选择的点,其对应的概率越大,被选中的可能性就越大,通过将每个点对应的概率除以所有点对应概率之和的方式来对每个点对应的概率进行处理,处理后,每个点对应的概率相加即为1,然后将这些点依次摆放在0~1的一维数轴上,其概率值越大,所占用的数轴长度就越大(注意跟摆放位置无关,可任意摆放),摆放完成后每个点也就对应于0 ~ 1数轴上一个小区间,比如第1个点的概率是0.05,第2个点的概率是0.03,第3个点的概率是0.1 … …,则第1个点对应的区间为0 ~ 0.05,第2个点对应的区间为0.05 ~ 0.08 ,第3个点对应的区间率为0.08 ~ 0.18,以此类推,这样我们随机产生一个0 ~ 1之间的随机数,该随机数落在那个区间,那个点即为被选中的点。


   五、编程实现思路

   对 小黎的Ally 提供的程序 的实现思路总结如下:

   首先初始化第一代蜜源的位置,按照正态分布随机生成每个采蜜蜂的蜜源位置,即代表路径的关键点位置。然后使用B样条曲线由关键点生成路径,并计算每个采蜜蜂对应的蜜源也就是路径的适应度,路径越短,适应度越低(越好),然后更新全局最优。

   开始按照设定的迭代次数,进行循环迭代,在每一次迭代中,先让采蜜蜂在其当前蜜源位置附近寻找新的蜜源,对于每个采蜜蜂,首先随机选择一个其他采蜜蜂k,然后按照公式xij= +rand * (xij-xkj) ,更新当前采蜜蜂的蜜源位置,也就是代表路径的关键点的位置,然后计算新生成的蜜源位置的适应度,判断新蜜源与之前蜜源的适应度大小,若当前的蜜源位置更优,则对当前采蜜蜂的蜜源位置进行更新,若之前的更优,则将当前蜜蜂判断陷入局部最优的累加值加一(当累加达到设定的界限时,便认为当前采蜜蜂陷入了局部最优),然后判断是否更新种群最优。

   对于每个采蜜蜂均完成以上操作后,程序的第一阶段就完成了,采蜜蜂回到蜂巢跳摆尾舞与跟随蜂共享蜜源信息,每一只跟随蜂根据蜜源适应度,以按照轮盘赌的方式选择具体的蜜源,并根据其选择的蜜源,每只跟随蜂执行上面介绍的跟采蜜蜂一样操作。执行完后,程序的第二阶段完成了。

   注意:采蜜蜂跟跟随蜂最大的区别在于,每个采蜜蜂对应一个不同的蜜源,而跟随蜂的蜜源是根据采蜜蜂蜜源的适应度采用轮盘赌的方式选择的,也就是适用度好的蜜源可能对应多个跟随蜂,而适应度差的蜜源可能没有跟随蜂,这样更多的跟随蜂前往了适应度好的蜜源,并在其周围搜索新的蜜源,更容易找到更优的解(如果存在的话)

   开始执行第三部分,若某处的蜜源陷入了局部最优,则调用侦查蜂生成随机位置,并计算新位置的适应度,并判断是否更新全局最优,并重置该蜜源的陷入局部最优的标志位。

   第三部分介绍后,本轮迭代结束,开始进行下一次迭代 ,直至完成设定的迭代次数。

   注意:该程序中,并没有体现三种蜜蜂之间的身份转换


   六、运行效果示例:

在这里插入图片描述



   上面的示例中100次迭代后的适应度为161.81,而理论最优适应度为160.75,100次迭代耗时达到了3分20秒,规划效率不理想,规划质量还可以。


  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于MATLAB人工蜂群算法(Artificial Bee Colony, ABC),可以应用于无人机作业路径规划问题。人工蜂群算法是一种模仿蜜蜂觅食行为的启发式优化算法,在求解路径规划问题上具有一定的优势。 首先,无人机作业路径规划问题可看作是一个多目标优化问题,需要同时考虑到最短路径和最小能量消耗等多个目标的平衡。人工蜂群算法能够通过不同蜜蜂种的分工合作,以多样化的方式搜索全局最优解,从而得到较好的路径规划结果。 其次,人工蜂群算法中的蜜蜂种包括三类蜜蜂:雇佣蜜蜂、侦查蜜蜂和观察蜜蜂。雇佣蜜蜂通过采用局部搜索策略,在当前最优解周围进行搜索,以寻找更优解。侦查蜜蜂通过随机选择目标位置,探索新的解空间。观察蜜蜂负责更新全局最优解,并根据一定的选择概率,决定是否进行跟随其他蜜蜂的位置。 最后,在MATLAB中实现人工蜂群算法的无人机作业路径规划,可以先定义目标函数,包括路径的距离和能量消耗。然后,利用蜜蜂种的行为规则来搜索最优解,在每一代中更新和调整蜜蜂种的位置和适应度。通过迭代过程,蜜蜂种会不断优化路径规划结果,直至达到收敛条件。 综上所述,基于MATLAB人工蜂群算法可以应用于多目标优化的无人机作业路径规划问题中,通过蜜蜂种的协作和迭代优化,得到较好的路径规划结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慕羽★

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

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

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

打赏作者

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

抵扣说明:

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

余额充值