基于参数优化的改进人工蜂群算法及其应用

发布时间:2018-07-01 来源: 历史回眸 点击:


  摘要:针对基本人工蜂群算法(ABC)收敛速度较慢、容易陷入局部极值等不足,本文通过引入一个自适应控制参数,将基本ABC算法和一种改进的人工蜂群算法(EABC)进行混合,从而得出一种性能更加优良的改进人工蜂群算法——EFABC。将本文所提算法与混合前的两种算法应用于三维点云配准实验中,通過对点云库中的多个模型进行配准,结果表明本文所提算法不仅能提高收敛速度和精度,也可在一定程度上提高算法跳脱局部极值的性能。
  关键词:群智能优化;人工蜂群算法;自适应控制参数;三维点云配准
  1 引言
  人工蜂群算法(Artificial bee colony algorithm, ABC)[1]是由Karaboga、Basturk等,于2005年提出的一种群体智能优化算法,该算法通过模拟蜜蜂采蜜的行为对问题进行优化求解,具有参数较少、优化精度高等优点。其与粒子群算法(Particle swarm optimization, PSO)[2]、差分进化算法(Differential evolution, DE)[3]等相比具有更好的优化求解性能[4]。人工蜂群算法能够在不需要知道问题的特殊信息情况下,对问题进行优劣的比较,通过蜜蜂个体的寻优行为,在整个群体中体现出全局的最优值,故该算法一经提出就受到了极大的关注。近年来吸引了国内外众多学者对其进行了研究、改进[5-8]以及应用,主要在于函数优化问题[9]、车辆路径问题[10]、经济负荷分配[11]、无线传感器网络动态部署[12]及人工神经网络[13]等领域。
  但不可避免的是,人工蜂群算法在其具有较多优点的同时,也存在着一定的缺陷。它所具有的优良全局搜索能力,也导致了算法在寻优过程中开发能力较差,耗时较长等。为此,许多学者提出了一些相关的改进措施[14-18],也取得了较好的效果。但由于多数学者过多的注重开发能力,致使改进后的人工蜂群算法容易陷入局部极值。为此,本文提出了一种新的改进措施,用一个自适应参数将基本人工蜂群算法和一种改进后的人工蜂群算法所分别具有的优异全局搜索能力和开发能力相结合,从而减少算法陷入局部极值的概率并降低求解时间。通过将本文
  算法与ABC算法和EABC算法进行三维点云配准实验,结果表明本文提出的新改进人工蜂群算法效果更佳。
  2三维点云配准
  给定两片点云,一片为待配准点云 ,另外一片为目标点云 ,三维点云配准的目的是要获取这两片点云间的欧式变换矩阵 ,以此来解决多个传感器扫描得到的不同视角点云的配准问题。该变换矩阵包含6个待定参数,分别为沿三个坐标轴的平移量 以及绕三个坐标轴的旋转角 。在不考虑模型尺度伸缩的情况下,变换矩阵 的表达式为: 其中,
  解决配准问题便可利用人工蜂群算法对该目标函数进行优化求解,从而得出欧式变换矩阵 ,完成配准。
  3 人工蜂群算法
  人工蜂群算法主要是模拟蜂群的智能采蜜行为。在ABC算法的模型中,主要包含三个基本的组成要素:食物源、被雇佣的蜜蜂以及未被雇佣的蜜蜂[19]。利用ABC算法求解优化问题时,食物源的位置被抽象成解空间中的点,蜜蜂采蜜的过程就是搜寻最优解的过程。被雇佣的蜜蜂也称采蜜蜂,采蜜蜂即已经发现食物源的蜜蜂,与其所发现的食物源一一对应,并储存着某一食物源的相关信息,例如相对于蜂巢的方向、距离以及食物源中花蜜的数量等,随后将这些信息以一定的概率与其他蜜蜂分享。未被雇佣的蜜蜂包括跟随蜂和侦察蜂。采蜜蜂完成工作后,跟随蜂会根据采蜜蜂传达回来的信息,通过一定的概率选择适应度值较高的食物源,提高算法的收敛速度。侦察蜂则是负责随机搜索蜂巢附近的食物源,增强算法跳出局部极值的能力。在采蜜的过程中,若采蜜蜂经过一定次数地循环搜索食物源后,食物源的质量仍然没有改善时,该食物源会被采蜜蜂所抛弃,然后该采蜜蜂变为侦察蜂,开始寻找新的食物源。
  人工蜂群算法中,蜂群采蜜的过程其实就是寻找优化问题中最优解的过程。食物源的位置则对应着优化问题中的可行解,每个食物源的花蜜量则代表相关解的质量(适应度fit),采蜜蜂的数量就等于食物源的数量。在初始化阶段,人工蜂群算法首先生成一个随机分布的初始种群(食物源位置),其中 表示食物源的数量。利用公式(3-1)随机生成食物源:
  其中, 为食物源位置 的适应度值。适应度值越优的食物源被选择的概率越大。
  当采蜜蜂在某个食物源的位置处搜索超过一定的次数后,该食物源没有得到改善时,采蜜蜂会变成侦察蜂,通过公式(3-1)产生新的食物源。
  4 EABC算法
  人工蜂群算法一经提出,就有大批学者进行研究和改进。提高人工蜂群算法性能的关键,就在于平衡和提高该算法的探索性能和开发性能。探索性能通常表现为优化过程中算法跳脱局部极值的能力,而开发性能则体现为算法的收敛精度和速度。在原始的人工蜂群算法中,采蜜蜂和跟随蜂的位置更新搜索方程完全一致,较不利于算法性能的平衡和提高。高卫峰等[20]于2014年,研究并提出了一种改进的人工蜂群算法(Enhancing artificial bee colony algorithm, EABC),该算法在采蜜蜂和跟随蜂阶段引入了不同的搜索方程,该改进后的算法性能优良。其在采蜜蜂阶段引入的搜索方程如公式(4-1):
  5 使用自适应参数控制的改进人工蜂群算法——EFABC
  人工蜂群算法的优化效果较好,但由于初始的人工蜂群算法的搜索方程更加偏向于探索,故其在处理复杂的优化问题时往往收敛速度较慢,耗时较长。而大部分改进的人工蜂群算法则直接将算法偏向于开发性能,提高算法的收敛速度,但在节约了较多时间的同时也使得算法较为容易陷入局部极值。改进的EABC算法较于基本ABC算法性能优异,提高了开发能力,收敛速度较快,但是该算法同样容易陷入局部极值。因此,为了更好地提高算法的求解性能,本文提出了另一种改进的人工蜂群算法:EFABC(Enhancing faster artificial bee colony algorithm)。该算法在基本ABC算法和EABC算法的基础上,引入了一个能够随着迭代次数改变的自适应参数 ,使算法既具有良好的探索性能又同时具备较好的开发能力。在解决最优化问题时,首先进行全局搜索,在找到较多的疑似最优解的位置后再对其进行开发,通过这样的搜索过程会取得更佳的结果。引入本文所提自适应参数 后改进的搜索方程,如公式(5-1)、(5-2)所示。

相关热词搜索:蜂群 算法 及其应用 改进 优化

热点文章阅读

版权所有 长安文学网 www.cablewaterski.cn