Page 182 - 《软件学报》2021年第10期
P. 182

3154                                 Journal of Software  软件学报 Vol.32, No.10, October 2021

                    (4)  参数 p[0,1]对 FPA 算法的勘探(全局授粉)和开采(局部授粉)之间的相互转换进行调节,且因受花朵
                        个体之间所处位置的邻近性和风等其他自然因素影响,使得授粉更偏重于自花授粉                              [21] .
                    从上述可知,异花授粉(全局授粉)和自花授粉(局部授粉)是 FPA 算法的核心,算法的全局授粉(优化)通过公
                 式(1)实现,局部授粉(优化)通过公式(5)实现.
                    全局授粉(优化)的进化公式如下:
                                                 x i t 1    x   t i    L ()(x  t i    x best  )  (1)
                      t
                 其中, x 、 x t 1  分别对应于迭代 t 次、(t+1)次后获得的解,x best 是每次迭代后获得的最优解,是控制步长的缩放因
                      i
                         i
                 子 [20] ,L()是对应于花朵个体的莱维飞行位移.L()的计算如公式(2):
                                                   G   ()sin(    / 2) 1
                                            L ()   ~            (s   s   ) 0                      (2)
                                                                      0
                                                             s 1 
                 其中,=3/2,G()是标准伽马函数,s 由公式(3)得到:
                                                            
                                                        s                                            (3)
                                                          || 1/ 
                                    2
                           2
                 其中,~N(0, ),ν~N(0,1), 由公式(4)计算获得:
                                                     G   (1    )  sin(     / 2)  1/ 
                                                 2            1) / 2                             (4)
                                                      G [(1     )/ 2]  2 (  
                    花朵个体的局部授粉(优化)可通过公式(5)进行局部搜索:
                                                    x t 1    x   t i   (x   t j  x t k  )        (5)
                                                     i
                         t
                      t
                 其中, x 、 x 是优化过程中两个不同的随机解,是区间 0~1 上的一个均匀分布随机数.
                      j
                         k
                 2    基于多策略改进的花授粉算法
                    依据基本 FPA 算法的仿生原理可知:其是由全局搜索和局部搜索通过参数 p 进行融合组成的,并利用公式
                 (1)和公式(5)实现了数学模型化,为其解决一系列复杂的优化问题奠定了理论基础.而对基本 FPA 算法的搜索机
                 制进行定性分析显示:基本 FPA 算法的搜索策略存在的不足制约着算法的收敛效果,包括存在收敛速度慢和易
                 陷入局部最优等缺点.对于这些影响算法性能的不利因素,本文对 FPA 算法进行了多策略改进.

                 2.1   新全局搜索策略
                    从技术角度来说,FPA 算法在全局授粉时,莱维飞行和最优个体(x best )对种群中的个体同时施加影响.由于受
                 全局最优个体 x best 的吸引,FPA 算法在优化简单问题时具有较快的收敛速度;但在解决复杂的优化问题时,若种
                 群中的个体 x best 陷入到探索领域中的某些局部极小位置,则其他个体受 x best 的影响,也快速移动到 x best 所在的
                 位置,使得( x   x best  )变得非常小,从而造成个体位置更新公式(1)无效,因为 x           t 1    x   i t  0   t i  . x 在这种情况下,种群
                           t
                           i
                                                                             i
                 将停止进化,并且很难逃离局部最优.为了解决该问题,本文利用公式(6)对公式(1)进行改进:
                                          x t 1    x   t    L ()(x  t    x    x   t  x   t  x   t  x t  )  (6)
                                           i    i       i  best  1 i  2 i  3 i  4 i
                 其中,i、i 1 、i 2 、i 3 、i 4 分别是从当前群体中随机选取的 5 个不同个体的下标,其余变量的含义同公式(1).
                    从公式(6)可以看出:在莱维飞行机制的基础上,引入了两组差异矢量,增加了种群个体之间的差异性,提高
                 了算法在多维空间的探索能力,有利于抑制算法早熟收敛,提升算法的性能.
                 2.2   引入精英变异策略的局部搜索策略
                    在基本花授粉算法的局部搜索部分,利用公式(5)的变异操作产生一个新个体.从公式(5)可知:新个体是在父
                 代个体的基础上加上一个扰动项,其值是一个随机数和两个个体差分矢量的乘积.于是,新个体的产生具有较大
                 的随机性,这使得种群个体的多样性能够较好地得到维持,从而使算法能够保持良好的持续优化能力.但是由于
                 个体缺乏对种群中最优个体良好经验的继承和学习机制,个体的进化方向具有很强的盲目性,这导致了对搜索
   177   178   179   180   181   182   183   184   185   186   187