Page 181 - 《软件学报》2021年第10期
P. 181
肖辉辉 等:基于多策略的改进花授粉算法 3153
化中的最差个体变为较好个体,改善解的质量,构建了基于复合形法的花授粉算法模型.测试结果验证了改进方
法的有效性.
Chakraborty 等人 [18] 在 FPA 算法中融入差分进化思想:先运用差分进化算法来改善 FPA 算法初始解的质量;
然后,为了消除 p 对 FPA 算法优化性能的不利影响,增强 FPA 算法的鲁棒性,受粒子群优化算法设计思想的启发,
通过引入两个动态参数,把 FPA 算法的两个搜索方程合二为一.测试结果表明,改进策略提高了 FPA 算法的收敛
能力.
Wang 等人 [19] 针对 k-means 算法在求解聚类问题时容易陷入局部最优且解的质量高度依赖初始解等问题,
提出了用改进的 FPA 算法求解聚类问题.该算法首先在 FPA 算法的全局搜索部分引入人工蜂群算法中的丢弃
解操作,该策略有利于个体跳出局部最优;其次,再将基于精英的变异算子和交叉算子融入到 FPA 算法的局部搜
索中,分别用来提高算法的开采能力和增加种群的多样性.
Draa [14] 将反向学习方法融入到 FPA 算法中,实验结果显示,该措施能够有效提升算法的优化性能.
肖辉辉 [20] 构建了一种基于引力搜索机制的花授粉算法,对全局寻优部分进行改进:采用花朵个体间的万有
引力和算法本身的莱维飞行共同实现个体位置的更新,使花朵个体受莱维飞行和个体间引力的双重影响.在进
化中,种群个体利用万有引力的相互作用实现优化信息的共享及向质量大(最优位置)的个体靠近,且个体间的
万有引力也牵制莱维飞行的随机游走;同时又运用莱维飞行的跳跃及不均匀性步长,避免个体陷入局部极值,从
而提高算法的寻优能力.实验结果表明,改进方法能够有效提升 FPA 算法的性能.
以上文献中的改进方法均能有效提升 FPA 算法的寻优性能,但都没有从 FPA 算法的搜索策略所存在的固
有缺陷这个角度对其进行改进,也没有考虑在进化中劣解对 FPA 算法寻优能力的影响;同时,上述改进算法在求
解高维多峰的复杂优化问题时,其优化性能还不够理想,并且有些改进算法修改了 FPA 算法的演化思路,另一些
改进算法与 FPA 算法相比,其时间复杂度较高.
针对上述存在的问题,本文构建了一种改进的基于多策略的花授粉算法(an improved flower pollination
algorithm based on multi-strategy,简称 MIFPA).该算法在全局搜索部分引入两组随机个体差异矢量以增强算法
的扰动性,提高个体在进化后期逃离局部极值的概率;将精英变异策略融入到局部授粉,并通过一个线性递减概
率规则与基本 FPA 算法的变异机制构成新的局部搜索策略,在较好地保持算法种群多样性的同时,加速了算法
的收敛速度;利用余弦函数搜索因子方法对进化中的劣解进行改进,以提高算法解的质量.上述改进方法的有机
融合,构成了 MIFPA 算法的主要框架,这些方法在算法的不同进程中执行,并相互协调地提升 FPA 算法的整体性
能.新算法中的参数实施自适应调整策略,增强了算法的灵活性.其实现非常简单,且既不会大幅增加 FPA 算法
的时间复杂度,也未改变 FPA 算法的基本演化思想.实验结果表明,MIFPA 算法简单且高效、求精能力强、收敛
速度快和鲁棒性好,在单模态高维函数、多模态高维函数、多模态低维函数、带旋转的多模态高维函数和变换
旋转的复杂函数上的优化能力与已有典型的改进 FPA 算法和其他知名改进算法相比,显示出其良好的竞争力;
同时,在求解实际的复杂工程问题时,与其他对比算法相比,MIFPA 算法的优势也表现突出.
1 基本花授粉算法
FPA 算法概念简单、容易实现及寻优效率较高,且通过参数 p 实现了其异花授粉和自花授粉之间的相互切
换,平衡了算法的探索和开发能力.同时,FPA 算法利用了莱维飞行策略来实现对个体位置的更新,扩展其开采领
域,从而达到提高算法的优化能力.
[5]
为了更好地利用 FPA 算法解决实际优化问题,Yang 在算法中假定每株显花植物只开一朵花,每朵花只有一
个花粉配子,一个配子对应于求解问题的一个解.此外,还需假定以下 4 条规定.
(1) 显花植物的异花授粉对应于算法的勘探行为,全局授粉是由蜜蜂等传播者携带花粉并采用莱维飞行
来实现;
(2) 非生物自花授粉对应于算法的开采行为,局部授粉是通过同种植物的不同花朵之间传粉来实现;
(3) 繁衍概率对应于花的常性,进化中两个个体(花朵)之间的相似性与其值大小具有一定的比例关系;