Page 257 - 《软件学报》2021年第5期
P. 257

傅文渊:具有万有引力加速机理的布谷鸟搜索算法                                                          1481


                    布谷鸟算法(cuckoo search,简称 CS)是 Yang 等人于 2009 年根据布谷鸟的孵育寄生行为提出的一种新型仿
                 生智能优化算法      [1,2] ,该算法具有通用性强、控制参数少、算法执行速度快等优点,其整体性能相比于粒子群算
                 法(particle swarm optimization,简称 PSO)、遗传算法(genetic algorithm,简称 GA)、蚁群算法(ant colony
                 optimization,简称 ACO)、模拟退火算法(simulated annealing,简称 SA)具有较好的竞争力,已经成功应用于工业
                 界各个领域,例如结构优化         [3,4] 、光伏系统 [5,6] 、支持向量机及神经网络训练       [7,8] 和多目标优化 [9−12] 等.
                    然而,布谷鸟算法与其他智能启发式算法类似,也存在搜索效率不高的问题.为此,国内外学者对该算法进
                 行了大量的研究以提高收敛性能.目前的改进算法主要包括两个方面.
                    •   算法控制参数改进和混合算法策略.文献[13]提出一种自适应搜索步长的 CS 算法,提高了收敛性能.文
                        献[14]在文献[13]的基础上,将搜索步长因子变更为 3 种不同的函数适应度值变化因子,通过动态调节
                        步长因子,增强算法的鲁棒性.文献[15]将搜索步长因子设计为均匀分布随机数,虽然提高了 CS 算法的
                        全局搜索性能,但是该方法没有考虑局部搜索的性能,导致算法执行后期易发生迟滞现象.文献[16]提
                        出一种逐维更新的函数评价策略,将各维逐一更新,同时采用贪婪更新方式接受改善解.该算法具有一
                        定的竞争力,但是逐维更新的评价策略导致函数评价次数急剧增加,算法执行效率较低.文献[17]将发
                        现概率设置为动态变化,增强了算法的收敛性能.但是由于改进算法搜索步长的可容许范围过小,造成
                        算法全局收敛性能较差.
                    •   另一方面,混合算法策略的主要方法是布谷鸟算法与其他算法融合,获得最佳的优化性能.文献[18]将
                        和声优化算法与 CS 算法结合,在算法执行过程增加和声算法的变异操作,并将变异结果反馈到寻优过
                        程,加快算法的收敛速度.文献[19]借鉴粒子群算法良好的局部优化性能,在 CS 算法中引入粒子群组件,
                        提高了 CS 算法的收敛精度.文献[20,21]在偏好随机扰动中引入一种正交学习机制,以提高 CS 算法的
                        整体搜索性能.文献[22]将 CS 算法与万有引力算法结合,引入一种局部搜索机制,使布谷鸟个体的更新
                        由局部最优解和引力加速度共同作用.该算法虽然提高了收敛速度,但是引入的局部搜索极易使算法
                        陷入局部最优.文献[23]将 CS 算法与模式搜索方法结合,提高了 CS 算法的局部开采能力.
                    由上所述,该类算法虽然提高了搜索性能,例如种群的多样性、收敛精度等,但是增加了优化函数评价次数
                 及算法复杂度.当处理高维度多峰函数、脊峰函数和奇异函数时,算法的自适应调节能力较差,寻优效果不理想.
                 同时,该类算法没有深入挖掘种群寻优过程的内部机理,算法执行效率较低.因此,研究新的改进方法具有积极
                 的意义.
                    基于此,本文提出一种具有万有引力加速机理的布谷鸟算法(gravitational acceleration  search based cuckoo
                 search,简称 GASCS),提高 CS 算法的收敛速度和全局收敛效率.本文的主要特色及贡献为:(1)  该算法基于万有
                 引力搜索无需学习外部环境因素的变化亦能感知全局最优的特点,将布谷鸟巢穴等价为不同质量的个体,利用
                 CS 算法优化过程中遵循的牛顿万有引力定律进行加速搜索,并且提出一种概率变异方法增大种群多样性;
                 (2)  该算法提出两种新型的布谷鸟个体更新律;(3)  该算法解决了 CS 算法存在的 3 个局限性,提高了 CS 算法的
                 全局搜索效率和收敛精度.

                 1    布谷鸟算法(CS)及其存在的局限性

                    布谷鸟采用一种特殊的寄生宿主巢穴的方式孕育繁殖,它将孵育的蛋置入寄生宿主的巢穴,让寄生宿主孵
                 化布谷鸟蛋.由于布谷鸟幼雏能发出比寄生宿主幼雏更闪亮的叫声,因此获得更多的食物,具有更高的存活率.
                 在某些情形下,寄生宿主发现巢穴内不是宿主幼雏,则会遗弃该巢穴,并重新选择新的巢穴孵育繁殖.Yang X. S.
                                                                               [1]
                 和 Deb 等人基于上述孵育寄生机理,提出布谷鸟算法.它遵循以下 3 个理想规则 .
                    规则 1.  每只布谷鸟 1 次有且仅有孵化 1 个蛋,并随机选择 1 个寄生宿主巢穴存放.
                    规则 2.  在随机选择的 1 个寄生宿主巢穴中,最优的寄生宿主巢穴将被保留至下一代.
                    规则 3.  可利用的寄生宿主巢穴数量是固定的,1 个寄生宿主巢穴的宿主发现寄生布谷鸟蛋的概率为 P a .
                    基于上述 3 个理想规则,可以得到 1 个宿主巢穴代表 1 个候选解.因此,布谷鸟算法的基本算法流程包含 3
   252   253   254   255   256   257   258   259   260   261   262