巫光福,陈 颖
江西理工大学 信息工程学院,江西 赣州 341000
在复杂的现实世界中,大部分情况下系统由于搜索空间非常庞大而难以使用传统算法做出决策,因此开发出受到自然界启发的各种优化算法寻找最优解,以帮助做出决策。然而随着优化问题复杂性的增加,越来越多的新兴的元启发式算法,如蚁群算法(ACO)[1-2]、粒子群算法(PSO)[3]、人工鱼群算法(AFSA)[4]、萤火虫算法(FA)[5]或各种混合算法[6]等被相继提出,并被广泛应用于解决实际工程领域的优化问题。2012年学者Yang受自然界中花朵授粉行为启发,并在授粉的帮助下模拟了开花植物的繁殖,提出了花授粉算法(Flower Pollination Algorithm,FPA)[7]。与遗传算法(GA)相比,FPA算法收敛速度和寻优能力明显提高,但是稳定性一般;与粒子群算法(PSO)相比,虽然都易陷入局部极值,但FPA 算法跳出局部极值的能力更强,且其收敛精度、速度和搜索能力也更优。并且通过对FPA算法全局收敛性分析,可以证明该算法在实际应用的有效性[8]。由于FPA算法具有结构简单、参数少,鲁棒性和适应性强等特点,众多学者对其未来的发展潜力十分看好,为了该算法能在多领域的复杂问题实现简单求解,纷纷对其进行了简单的改进,如ERFPA[9]、EFPA[10]、CFPA[11]、DE-FPA[12]和QFPA[13]等,以实现算法的轻量化和求解的高精度。算法中ERFPA 具有较快的收敛速度,QFPA 与EFPA 相比具有更优的跳出局部最优的能力,DE-FPA 算法则具有更强的鲁棒性,CFPA算法和EFPA算法相比其他算法收敛速度则较慢。除了以上主流花授粉算法外,本文还总结了其近五年左右国内外提出的主要研究成果,包括在初始种群质量、种群多样性、转换概率以及搜索能力等方面的改进和在聚类和分类、电力系统、参数估计、信号和图像处理、经济调度与控制、路径规划等方面的应用,方便其他学者能快速了解花授粉算法及其最新进展和成果,最后提出了FPA算法未来的展望与进一步的研究方向。
自然界中的花卉授粉是一个很有趣的进化过程,其近90%的开花植物异花授粉是通过传粉者如蜜蜂、蝴蝶、鸟类等进行长距离传粉,并且其行为服从莱维分布。而剩下的10%自花授粉则无需传粉者,一般是通过风等进行扩散实现短距离的传粉。学者Yang受其行为启发提出了花授粉算法(FPA),该算法中全局搜索和局部搜索分别模拟授粉的两个过程用来寻找最优解。标准的FPA大致分为以下几个步骤:
(1)初始化FPA 控制参数。控制参数有种群大小(N)、最大迭代次数(Maxgen)、转换概率p。
(2)初始化种群。根据给定的上下界随机生成初始解x1,x2,…,xn,并计算其相应的适应度值。
(3)从初始种群中获得最佳解决方案。根据初始种群及其适应度值找出最佳解决方案g∗及其适应度值f(g∗)。
(4)生成新的种群。局部或全局搜索策略是根据转换概率p∈[0,1] 的值来确定,其公式如下:
其中,Γ(λ)表示标准的伽马函数,且当s(s>0)为较大值时这一分布才较为合理,λ通常取值为1.5。
(5)更新种群和最佳解决方案。根据适应度值,替换比存储的解决方案质量更好的新解决方案,并获得最佳解决方案g∗。
(6)检查停止标准。重复执行步骤(4)、(5),直到达到最大迭代数。
虽然众多学者对FPA 算法进行研究与应用且在大部分优化问题上取得了较好的效果,但是仍然存在容易陷入局部最优和寻优精度较低等不足,在处理高维、多目标等问题时效果一般。因此为了支持研究人员解决更多的优化问题,众多学者通过算法修改或与其他自然启发算法的有效杂交来提高FPA 的性能。主要通过以下几种方式进行改进。
智能算法的初始种群是为后续演化过程提供的初始猜想,因此初始种群质量的好坏影响了算法寻找全局最优的进程,如种群收敛速度和最终解的精度等方面。因此需要对初始种群进行改进,经过研究发现,种群初始解的数量和其分布情况对初始解质量影响较大。而传统的FPA 算法是采用随机方式对种群进行初始化操作,导致初始种群位置分布不均匀,容易发生过早收敛的情况。因此对算法的相关改进如下。
张水平等人[14]提出用迭代次数等价替换初始种群以增加种群数量,同时利用霍尔顿序列生成分布更加规律和均匀的初始种群位置。宁杰琼[15]和贺智明等人[16]利用Logistic 映射产生混沌值并以此更新初始花粉位置,使其均匀的分布在搜索空间。崔丽群等人[17]提出利用和声搜索算法求解出初始种群的最优解,并将此解作为FPA算法的初始解以提高初始解的质量。
上述改进方法中等价替换增加了初始种群的数量,而为了让初始种群能更加均匀地分布在搜索空间则采用霍尔顿序列或混沌映射等方式,以此提高初始种群解的质量,这样不仅加快了算法收敛速度,还有助于找到全局最优值。还可引入和声搜索算法寻找最优解,并作为FPA算法的初始解,该改进方式不仅提高了算法的寻优精度和收敛速度,还提高FPA算法的整体性能。但是和声搜索算法随机性较大,可能使算法陷入局部最优,因此需要结合其他改进同时使用,以帮助算法跳出局部最优。除了以上方式外,还可采用佳点集、立方映射等方式实现初始种群的均匀化分布,反向学习策略以获得更接近最优解的初始解,以及混合方法如差分算法、粒子群算法和萤火虫算法等方式提高初始种群质量,但是要注意不能增加算法的时间和空间复杂度。针对指定问题可以使用专用算法,拥有的先验知识可以避开无关搜索区域,提高算法搜索效率,获得更好的寻优效果,但是这种算法没有普适性。
由于FPA 算法迭代后期,花粉变得越来越相似,种群丧失了多样性,导致算法容易发生早熟收敛,且易陷入局部最优。因此为了在算法迭代后期保持种群多样性需要进行改进,相关改进策略如下。
(1)汪海等人[18]提出利用遗传算法杂交的思想,在局部授粉过程中,将上一代最优个体与一个随机个体进行杂交,花粉之间可以实现信息交流。同样,王蕾等人[19]在全局搜索中引入精英算子并进行变异与交叉操作。利用遗传算法思想引入交叉和变异操作改进的FPA算法,花粉个体之间可以实现信息交流以引导算法进化方向,不仅提高了寻优精度和收敛速度,增强了鲁棒性,还避免了陷入局部最优。
(2)王兴凡等人[20]提出在自花授粉过程中通过柯西变异进行随机扰动,以增加种群多样性避免陷入局部最优,其定义如下:
(3)张水平等人[21]提出在算法进化后期种群多样性降低到某一程度时,引入非均匀变异操作,使得当出现聚拢现象时,下一代种群可以从最优个体的某个领域内搜索更优解以突破限制引导进行方向,其改进如下:
其中,式(4)和(5)是用来判断种群的多样性指标。xgt表示多样性比设定值小的那一代的全局最优个体,UB、LB是求解问题的范围。改进后的算法具有更强的探索性和跳离局部限制的能力,在高维问题上优化效果明显,不仅大大提高了收敛速度,还提高了寻优的精度和求解的稳定性。并且也能对最优值为负数的函数进行求解,具有更广的适用面,但是其在优化精度上还不够理想。将该算法对BP神经网络的权值和阈值优化并用于风速预测,提高了预测的准确性。
(4)Al-Betar等人[22]引入孤岛模型,将种群划分为多个子种群,并根据迁移率、拓扑、频率和控制策略进行迁移以控制种群的多样性,该改进算法在高维函数上具有更好的性能和效率,并且在并行平台可以实现快速收敛,但是其引入了更多的参数,而算法对参数设置较为敏感,容易影响到算法性能。陈西成等人[23]提出利用小生境技术对种群进行分类,形成动态的独立搜索空间并进行搜索,避免了协同种群聚集过度,从而保证了种群的多样性,使得算法避免了早熟收敛,寻优能力和搜索精度得到了显著提高。
(5)张超等人[24]提出精英反向学习策略,选择精英个体进行动态一般反向学习计算,并用获得的反向解替换种群个体位置。改进的FPA 算法只计算精英个体的反向解,降低了计算的复杂度,有效摆脱了局部极值的束缚,且收敛速度明显优于PSO、BA 和标准FAP 算法,并具有良好的鲁棒性,但是算法容易受飞行步长影响,导致收敛精度降低。
以上介绍了多种种群多样性的改进方式,利用遗传算法思想引入杂交和变异操作,包括柯西变异、非均匀变异等,通过在算法迭代后期进行变异扰动以增加种群多样性,有效加快了算法的收敛速度和收敛性能。还可采用高斯变异、混合变异、动态权重和t-分布扰动等方式对后期种群实行扰动,对当前迭代种群实行折射、模拟退火、混合蛙跳和复合形法等方式处理以丰富种群多样性,提高寻优精度,增强算法性能。其中柯西变异与高斯变异其分布图像非常相似,但是柯西分布产生远离原点的随机数概率更大,而到达x轴的速度更慢。非均匀分布则适用于大多数随机的不等概率的特征变量事件。混合变异则是将柯西变异与高斯变异优点结合的混合变异算法。此外对初始种群采用孤岛模型或小生境技术进行分类处理,避免种群过度聚集以保证种群多样性,但是注意孤岛模型会引入多个参数,且参数对算法性能影响较大,而小生境技术中半径大小不好确定。
FPA 算法是根据转换概率p这一重要参数随机地选择进行全局搜索或局部搜索,因此转换概率的取值会影响算法的进化方向和优化性能。若p取值过小,算法全局搜索操作次数多不易收敛,而p取值过大,则算法执行局部搜索多易陷入局部最优。因此对于转换概率取值固定的标准FPA 算法需要进行改进。此外步长控制因子和繁衍概率影响因子的设置对于算法的搜索性能也有很大影响,可以进行相关改进。其策略如下。
(1)Valenzuela 等人[25]提出通过模糊推理系统动态设置参数p的值,以帮助算法跳出局部极值。通过分析与研究得出,该改进算法是一种易于实现的方法,能跳出局部极值,实现更大可能的全局搜索,在100 维度下与CA、PSO和标准FPA算法相比,大部分测试函数显示出改进算法的良好性能,其具有更高的寻优精度和求解的稳定性,但是在Rastrigin测试函数中效果差于PSO算法,此外其种群的多样性限制了算法的性能。
(2)Liu 等人[26]提出将韦伯分布函数和迭代次数结合以实现动态控制转换概率,以平衡全局授粉和局部授粉。其定义公式如下:
其中,t表示当前迭代次数,γ>0 是韦伯分布函数W中的一个比例参数,m>0 是一个形状参数,ω是概率的基本值,q是韦伯影响因子。改进后的算法与标准FPA和BA算法相比,能更快地收敛于全局最优解,并且收敛精度得到了很大的提高,但是其应用还是比较少,可以将该算法多应用于实际优化问题,如复杂的网络聚类问题和水下声纳图像检测等。
(3)Rodrigues等人[27]提出一种改进的自适应FPA算法,在整个收敛过程中根据迭代次数动态地调整转换概率和步长影响因子,并跟踪最佳的解决方案,其转换概率改进方式如下:
其中,γ范围限制在[γmin,γmax]。该改进算法通过动态调整p实现了全局与局部搜索的平衡以实现靠近全局最优解方向的进化,提高了收敛速度和寻优精度。实验结果表明,改进的算法与文中对比算法在最终迭代时,适应度值非常相似但收敛速度明显得到了提高,因此可以考虑提早停止优化过程,从而节省计算资源。但是算法中的莱维函数的收敛性会随着维度的增加而减小,容易陷入局部极值。
(4)刘景森等人[28]提出利用变形指数分布函数,其根据当前迭代次数与最大迭代次数比值非线性递减地调整步长,同时结合迭代次数和瑞利分布函数改进繁衍概率影响因子,其步长缩放函数如下:
其中,t为当前迭代次数,Maxgen为最大迭代次数。该改进算法在前期取较大步长,使算法快速收敛到最优解附近,同时避免陷入局部极值,后期算法取较小步长使搜索更加集中和靠近局部最优,以获得更高的收敛精度。使用9个测试函数测试,相比于BA、标准FAP和基于随机定位和交叉策略的花授粉算法(MRLFPA)相比,改进算法都能以最快的速度和最优精度收敛到全局最优。但算法中转换概率p的值是固定的,导致算法进化具有一定的盲目性,减弱了其优化能力。
花授粉算法中除转换概率外,步长控制因子和繁衍概率影响因子等都是影响算法性能和效率的重要参数。以上通过模糊推理、根据迭代次数改变的韦伯分布和自适应等方式改进转换概率,算法前期取较小的p值侧重于全局搜索,避免陷入局部最优,迭代后期取较大的p值侧重于局部搜索,提高收敛精度。此外还可使用同时考虑迭代次数和种群个体适应度值的动态自适应方式改进。步长控制因子和繁衍概率影响因子其参数改进则可通过变形函数、瑞利函数和自适应方式等方式改进,使算法能够在前期以较大的取值在更大的探索空间寻找最优解,以避免局部最优,算法后期以较小的取值搜索以靠近最优解,提高收敛精度。
全局搜索和局部搜索是花授粉算法中核心步骤,其搜索能力低会导致算法早熟收敛,因此对其进行改进是十分必要的,相关改进策略如下。
(1)汪海等人[29]为了使全局搜索具有针对性,引入时滞调整算子控制搜索过程,使得搜索方向不断向最优值靠近,同时在局部搜索引入自适应调整算子,吸收前期个体的经验以更新花粉个体位置,使算法更具灵活性。其全局搜索的改进如下:
其中,ωmax、ωmin分别为最大和最小权重,利用权重递减机制可以很好地协调算法搜索。改进算法具有更优的跳出局部极值的能力,并且虽然基于复合形的花授粉算法(CFPA)较大幅度提升了算法精度,但是该改进算法的精度还比其高出50 多个数量级,且在高维多峰问题上的优化更加可行有效,但是该算法的收敛性证明不足且理论基础薄弱。
(2)陆克中等人[30]提出采用量子化搜索机制,个体受到吸引将可能出现的搜索空间的任意处,个体的随机性增强了算法全局搜索能力,其新的全局搜索机制如下:
其中,Ct是种群的平均位置,为(0,1)上均匀分布的随机数,实验结果显示,改进后的算法具有良好的探索能力和寻优精度,且在10 个测试函数中标准差均值最小,多个函数甚至达到或等于0,表明其具有良好的鲁棒性,虽然没有增加算法的时间复杂度,但是运行时间由于多了少量的步骤而增加了一些,且其在优化Rosenbrock 函数时,后期会出现优化停滞,优化效果弱于基于随机维度操作的ABC 算法,因此该算法还有改进的空间。
(3)肖辉辉等人[31]针对进化策略的不足,提出将带惯性权重的三角变异机制与精英变异融合组成新的局部搜索策略,实现算法搜索能力的增强。其改进策略如下:
式中,i∈(1,2,…,N)为当前个体下标,表示随机变量中的最优、次优、最差解,r1、r2、r3、r4为四个不同随机个体的下标,xbest,t表示第t代迭代的最优个体。式(17)、(18)是带惯性权重的改进策略,其可以增强种群的多样性,使算法能持续优化,为了加快收敛速度,同时式(19)实现精英变异,使算法朝着最优个体周围领域搜索,提高算法收敛速度和开采能力,同时采用线性递减概率规则将这两种策略进行融合,以实现取长补短,有效提高算法优化能力。测试结果显示,改进算法收敛速度和鲁棒性优势明显,用于求解UCAV 问题行之有效,但是增加了算法的时间复杂度。
(4)张超等人[32]提出引入精英概率保留参数pc,将全局搜索分为两个部分,生成随机数r,当pc≤r时,按照原公式(1)进行全局搜索,当pc>r,则使用加入t-分布变异算子的策略进行计算,其公式如下:
其中,N为服从m=0,s=1 的高斯分布。该改进后的算法从30维增加到512维时,均值平均的变化率为0,具有良好的鲁棒性,此外引入t-分布变异算子对最优个体进行扰动,使算法快速靠近最优解进化,提高了其收敛精度,将高斯变异替换原局部搜索的随机扰动因子,提高局部开发能力,加快算法收敛速度。
以上改进通过在全局搜索引入时滞调整算子实现花粉个体的交流、量子化搜索机制实现个体的随机性,精英概率保留机制实现两种方式的搜索策略,在局部搜索引入自适应调整算子实现算法搜索的灵活性,高斯变异策略扰动后期种群或使用带惯性权重的三角变异与精英变异融合的策略替换局部搜索策略等方式来增加算法的搜索能力以提高算法整体性能,摆脱早熟收敛和易陷入局部最优的不足。除此之外,还可引入交流算子、精英与信息共享机制、小概率变异策略和单纯形法等方式使算法跳出局部最优,提高其搜索能力。
邵良杉等人[33]在全局搜索中进入天牛须算法,将根据标准FPA算法移动后的花粉个体视为天牛,进行BAS算法移动并计算其适应度值,将移动前后的适应度值进行比较与更新,并在局部搜索引入变异策略,改进后的算法迭代次数明显减少。刘升等人[34]提出在局部搜索的迭代后期使用正弦余弦算法优化花粉,使得普通个体与最优个体进行交流并引导搜索方向,提高了种群花粉的质量且避免了算法陷入局部最优。戴娇等人[35]利用混合蛙跳算法对种群个体进行分组和排序并更新每一组中最差个体位置,并引入高斯变异,改进后的算法具有更优的稳定性和鲁棒性,但是算法中的转换概率p是固定不变的,使得算法进化具有一定的盲目性。卞京红等人[36]提出了一种基于萤火虫算法的改进花授粉算法(FA-FPA),利用萤火虫算法全局随机搜索时的并行策略来优化花授粉算法的初始种群质量,此外采用自适应转换概率,并在局部搜索引入自适应的变异因子,改进后的算法与DE-FPA和PSO-FPA相比,具有更优越的性能。Ram 等人[37]提出将FPA 算法与人工蜂群算法相结合,利用蜂群丢弃花粉算子的特性增加算法的随机性,并将精英突变引入局部授粉,用于太阳能参数估计,获得了更准确的估计结果。Xu等人[38]提出将FPA算法和Nelder-Mead 单形法相结合,其利用FPA 算法确定解的潜在区域,选择区域中最佳的n+1 个解决方案形成初始单纯形,然后利用Nelder-Mead单纯形法进行m次迭代更新,最终生成的单纯形的解与区域其他解作为下一次迭代的新种群。该混合算法充分利用了FPA 的全局搜索能力和单纯形算法强大的局部搜索能力。但是,单纯形算法中,m是重要参数,如果取值太小无法充分发挥算法的局部搜索能力,太大,则该算法将被过分强调。Tsai等人[39]提出在并行模式中将FPA与DE进行合并,即两种算法以对等的方式同时应用。在搜索过程中,最佳解决方案将通过通信策略存储并在两种算法之间互换。本章中各算法研究汇总如表1。
表1 改进算法研究汇总Table 1 Summary of improved algorithm research
Alweshah 等人[40]提出了一个FPA 算法和PNN 的混合分类模型,利用改进的FPA优化PNN的权重,提高分类精度。王子清等人[41]将黑名单引入FPA算法,通过黑名单中的灵活“记忆”技术,降低同一局部多次出现最优解的概率,特例法则可释放优秀解,还可加入随机扰动进行位置调整,用在加权朴素贝叶斯模型中实现分类,其分类准确性得到了较大的提高。Sayed等人[42]中提出将克隆选择算法(CSA)与FPA结合生成二元克隆花授粉算法(BCFA),用于解决特征选择问题,实现更准确的分类。Mohammadzadeh等人[43]基于反对学习(OBL)的概念,提出WOA 算法和FPA 算法结合的混合算法,将其用于电子邮件的垃圾邮件检测,准确性高于其他启发式算法。
Shilaja[44]提出了一种基于联合排放经济调度(CEED)的混合算法,利用eFPA 算法寻找最近邻域,BFPA 算法帮助PV 发电组获得更好的太阳能份额,该混合算法有效地处理了ED 问题,并最大程度上减少了传输损失。葛维春等人[45]引入授粉加速度因子和遗传自适应因子改进FPA算法以优化源-储-荷模型,经过仿真验证了该方法的正确性和可行性。徐文豪等人[46]利用离散算子对初始解进行离散处理,并在迭代过程中使用自适应变异算子改进FPA算法,并将该算法用于柔性作业车间调度模型,与标准FPA 算法和PSO 算法相比,该算法有更好的搜索能力。刘二辉等人[47]利用遗传中的变异算法和交叉算子改进FPA算法,并用于求解共融AGV作业车间调度问题。杨家然等人[48]结合FPA和差分进化算法,提出一种具有时变模糊选择机制的算法,丰富Pareto中的最优解,删除极端点,提高算法的局部搜索能力,用于优化风电电力系统的经济调度模型。张娟等人[49]提出将FPA算法用于PID参数的在线优化,成功应用在BLDCM调控系统,实现了电机平稳运转,提高了系统性能。
Zhang等人[50]为了提高风速预测精度,提出结合FPA和混沌局部搜索的算法CLSFPA,首先利用CEEMDAN将原始风速数据分成有限分组,并用基于NNCT的组合模型预测每个分解信息,改进的算法用于优化该组合模型的最优权重,最后通过重构改进的序列获得最终预测值,该预测值精度提高明显。田梦等人[51]提出一种新的风速集合预报模型,其利用FPA与不限制负值的约束理论进行权重平均。张淑清等人[52]为了提高电网负荷预测的准确性提出了一种新的预测方法,并引入FPA算法对BP 神经网络的权值和阈值进行优化,最终预测精度得到了提升。王芳等人[53]利用FPA 算法优化随机森林的参数,并用于飞灰含碳预测模型,实现了模型的高精度快速预测。牛培峰等人[54]通过自适应转换概率和在局部搜索中引入基于适应度值的步长改进FPA算法,并用该算法对ELM 参数进行优化,优化后的模型具有更高的预测精度。
Shen 等人[55]提出一种改进的多层次阈值图像分割花授粉算法(MFPA),采用适应度欧几里德距离比策略和随机位置向量分别改进FPA 算法的局部搜索策略和全局授粉策略,在高级阈值设定中具有更高的处理精度。Lei 等人[56]利用FPA 算法解决彩色量化问题,能以较低的计算代价生成高质量量化图像。Yousri等人[57]采用分数阶微积分特征增强FPA算法局部搜索能力,并自适应调整转换概率以改进FPA算法,将其用于实现图像分割,实现了更精准的分割。Kumari 等人[58]提出基于FPA算法的矢量化方式,以实现更好的图像压缩和图像重构质量。Sekhar 等人[59]提出利用小波变换将FPA 算法应用于图像处理中的去噪问题,能成功观察到相应的SSIM和MSIM等图像指标。
Singh[60]和Chakravarthy 等人[61]为了解决线性天线阵列问题,提出利用FPA 算法以降低最大旁瓣电平(SLL)和避免出现空值。Salgotra 等人[62]提出一种并行算法,采用蝙蝠算法和花授粉算法同时并行寻找最佳解决方案,用于解决困难的天线设计问题。Salgotra 等人[63]提出自适应的花授粉算法(AFPA)用于优化线性天线阵列,其转换概率根据迭代次数进行自适应调整,全局和局部搜索中划分为四个种群分别进行各自的优化搜索,该算法在LAA的10元素、16元素、24元素情况下均表现出了良好的效果。
肖辉辉等人[64]提出在种群下一次演化前,利用差分进化策略对个体进行优化,并用于机器人路径规划获取更优的路径长度。史骏等人[65]采用动态转换概率改进FPA算法,用来分辨单目视觉图像中的障碍物以进行避障路径规划。苏兴龙等人[66]结合粒子群局部搜索和维度改进算法对FPA算法进行全局搜索优化,用于解决无人船路径规划问题。王志俊等人[67]提出个体动态细化分工FPA算法的路径规划方法,按照适应度值将花粉分为三类,其中进化方向由精英个体引导,优等个体寻优使用改进搜索方式,差等个体为避免陷入局部最优使用柯西变异,最终搜索出更优路径节点。
于海越等人[68]为了解决室内场所定位精度低等问题,提出了将改进的FPA 算法与RSSI 可见光定位方法结合,其对FPA算法中最优个体进行柯西变异策略扰动以避免算法早熟和陷入局部最优,经过室内环境验证,能更精准地实现定位。王仲奇等人[69]将FPA 算法和基于Python语言的参数化有限元分析结合,用来实现薄壁件的定位布局寻优。刘国繁等人[70]采用改进的FPA 算法用于RSSI 定位,先对FPA 算法中的步长权重进行改进,并在局部搜索中引入变异算子,不仅降低了测距误差,还提高了定位精度,适用于无线传感器网络中的定位。Kaur 等人[71]利用FPA 算法减小局部误差以更准确定位传感器节点在WSN 中的位置,相比其他算法具有更好的定位精度。
Liang等人[72]采用反对学习策略和迭代混沌映射改进花授粉算法,并用改进的算法优化反向传播神经网络的初级权值和阈值,并将其用于管道缺陷的智能诊断,能更准确地识别管道的正常状态、矿坑缺陷和划痕缺陷三种信号。赵立进等人[73]通过e 约束改进花授粉算法,用于优化输电线路检修模型,以获得更经济可靠的检修计划。卞京红等人[74]对FPA 算法的转换概率进行自适应调整,并引入自适应变异因子改进FPA 算法,用于优化BP 网络中的权值和阈值,获得了更高的泛化能力和学习能力。Pauline 等人[75]首次将FPA 算法用于在体育视频中跟踪运动员的运动,通过FPA算法搜索窗口的宽度和长度用于表示运动员当前位置,然后评估搜索窗口内区域色相、饱和度和值(HSV)直方图,以此确定运动员潜在位置,对于OTB-2015年的视频,FPA算法的跟踪性能甚至优于FCSN。Nigdeli[76]中提出集成FPA 和HS算法的新混合算法,用于优化地震结构顶部的调谐质量阻尼器的质量、周期和阻尼比等参数,以获得更好的计算能力和精度。Abdel-Basset等人[77]提出基于精英的反对花授粉算法(EFPA)用于解决0-1背包问题,实验结果表明该算法能有效解决此问题。
自2012 年提出FPA 算法以来,由于其效率与简便性受到了国内外众多学者的研究与应用,但是其研究还不够深入,理论基础比较薄弱,仍然存在着可以进一步研究和优化的可能,在现实生活领域有着很大的应用前景,因此未来可以考虑将研究重点放在FPA算法的以下几个方面:
(1)理论分析:虽然FPA 算法已经成功地应用于非凸、非线性、无约束和单峰各种优化问题,并表现出较好的性能,但是FPA 算法还是一个比较年轻的算法,在针对具有粗糙和深层特征的复杂搜索空间的问题,其表现效果不佳,因此可以进一步加强理论分析以应对各种复杂优化问题。花授粉算法中转换概率参数和两个搜索过程是影响算法性能的重要因素,然而目前针对其理论分析还不足。其中转换概率的固定取值极大影响算法性能,因此可以对其取值范围或普适应取值等进行算法的性能分析,以设定合适的取值或自适应调整平衡全局和局部搜索。可以对算法的两个搜索过程分别对算法的性能影响进行研究,为改进搜索过程后的算法提供更详细的理论分析。
(2)算法改进:目前针对FPA 算法初始种群的改进方式还比较少,初始种群解的质量直接影响到算法收敛速度和精度。但是除了考虑混沌映射和混合算法还可以考虑使用其他方式来使初始种群均匀分布或更靠近最优解但是不增加计算复杂性,如佳点集、反向学习等。将种群进行分组并进行不同的优化方式。影响全局搜索重要的因素包括步长控制因子和莱维分布,其步长太长或者太短对于算法性能都有不好的影响,因此可以考虑针对其进行改进,如可以用更好的重尾行走如伽马分布或其他方式代替莱维飞行或自适应调整步长控制因子。局部搜索策略繁衍概率影响因子也可以考虑其方式进行调整以适应不同优化问题。此外还可以考虑使用两种算法并行取较优的种群,或对当前种群进行其他方式处理以获得更靠近最优解的种群进行下一次迭代,还可增加花粉间的信息交流或利用复数编码改进原有编码方案以丰富种群的多样性。此外,可以考虑结合全局搜索和局部搜索以消除转换概率,或考虑其他更优算法替换搜索过程如正弦余弦算法等。对于部分优化问题可以考虑进行种群多样性控制,当种群多样性下降到某一阈值在加入扰动策略,这样可以减少较多的计算复杂性。引入其他算法的优势进行结合以生成新的搜索策略,如克隆、布谷搜索等,虽然目前已有部分混合算法的改进研究,但是需要注意不能增加算法时间复杂度。
(3)实际应用:虽然许多学者对算法进行了改进并应用于各个领域,但是大多数都是参数优化或单一目标问题优化,而对于现实生活中多目标、离散、多峰、约束以及动态不确定等方面的复杂优化问题应用较少。对于不同的实际问题可以尝试通过不同的方式进行处理,如通过离散FPA 以生成二进制FPA 算法用于解决组合优化问题。对于多目标问题则可以考虑降维或结合修正单纯形法来处理。可以分析随机规划、模糊规划及鲁棒性优化的优缺点,并将其与花授粉算法融合以改进搜索策略解决动态不确定问题。此外还可以研究混沌理论、量子理论和其他优化算法等以提高FPA性能以实现在其他领域进行进一步探索,如原油生产、云计算、量子计算、网络挖掘等。