基于多策略的改进花授粉算法

一、理论基础

1、基本花授粉算法

请参考这里

2、基于多策略改进的花授粉算法

对基本FPA算法的搜索机制进行定性分析显示:基本FPA算法的搜索策略存在的不足制约着算法的收敛效果,包括存在收敛速度慢和易陷入局部最优等缺点。对于这些影响算法性能的不利因素,文献[1]对FPA算法进行了多策略改进。

(1)新全局搜索策略

从技术角度来说,FPA算法在全局授粉时,莱维飞行和最优个体( x b e s t x_{best} xbest)对种群中的个体同时施加影响。由于受全局最优个体 x b e s t x_{best} xbest的吸引,FPA算法在优化简单问题时具有较快的收敛速度;但在解决复杂的优化问题时,若种群中的个体 x b e s t x_{best} xbest陷入到探索领域中的某些局部极小位置,则其他个体受 x b e s t x_{best} xbest的影响,也快速移动到 x b e s t x_{best} xbest所在的位置,使得( x i t − x b e s t x_i^t-x_{best} xitxbest)变得非常小,从而造成个体位置更新公式无效,因为 x i t + 1 = x i t + 0 = x i t x_i^{t+1}=x_i^t+0=x_i^t xit+1=xit+0=xit。在这种情况下,种群将停止进化,并且很难逃离局部最优。为了解决该问题,本文利用式(1)对原始公式进行改进: x i t + 1 = x i t + γ L ( λ ) ( x i t − x b e s t + x i 1 t − x i 2 t + x i 3 t − x i 4 t ) (1) x_i^{t+1}=x_i^t+\gamma L(\lambda)(x_i^t-x_{best}+x_{i_1}^t-x_{i_2}^t+x_{i_3}^t-x_{i_4}^t)\tag{1} xit+1=xit+γL(λ)(xitxbest+xi1txi2t+xi3txi4t)(1)其中, i 1 i_1 i1 i 2 i_2 i2 i 3 i_3 i3 i 4 i_4 i4分别是从当前群体中随机选取的4个不同于 i i i的下标,其余变量的含义同原始公式相同。
从式(1)可以看出:在莱维飞行机制的基础上,引入了两组差异矢量,增加了种群个体之间的差异性,提高了算法在多维空间的探索能力,有利于抑制算法早熟收敛,提升算法的性能。

(2)引入精英变异策略的局部搜索策略

在基本花授粉算法的局部搜索部分,由于个体缺乏对种群中最优个体良好经验的继承和学习机制,个体的进化方向具有很强的盲目性,这导致了对搜索全局最优解的计算量增大,降低了算法的收敛速度。
为了解决上述存在的这个问题,基于差分进化算法的思想和FPA算法的特性,把差分进化算法中的经典变异算子DE/best/2的思路融入到局部授粉中,提出一种新的复合型局部搜索机制:如果 r a n d < ζ rand<\zeta rand<ζ,则按式(2)进行处理;否则按式(3)进行处理。 v i = x i + δ ( x r 2 − x r 3 ) (2) v_i=x_i+\delta(x_{r_2}-x_{r_3})\tag{2} vi=xi+δ(xr2xr3)(2) v i = x b e s t + α ( x r 1 − x r 2 + x r 3 − x r 4 ) (3) v_i=x_{best}+\alpha(x_{r_1}-x_{r_2}+x_{r_3}-x_{r_4})\tag{3} vi=xbest+α(xr1xr2+xr3xr4)(3)其中, r a n d rand rand [ 0 , 1 ] [0,1] [0,1]上服从均匀分布的随机数; ζ = 1 − t / Max _ i t e r \zeta=1-t/\text{Max}\_iter ζ=1t/Max_iter t t t是当前迭代次数, Max _ i t e r \text{Max}\_iter Max_iter为最大迭代次数;参数 δ \delta δ α \alpha α是服从高斯分布且均值和标准偏差分别为0.5、0.1,其作用是用于控制算法的演化速度; n n n为种群数, i ∈ ( 1 , 2 , ⋯   , n ) i\in(1,2,\cdots,n) i(1,2,,n)为当前个体的下标, r 1 r_1 r1 r 2 r_2 r2 r 3 r_3 r3 r 4 r_4 r4为4个不同的随机个体的下标, x b e s t x_{best} xbest为当前种群中最优个体。
从上述改进的局部授粉策略可知:式(2)采用变异策略增加种群个体的差异性,从而达到提升算法的全局优化能力,但算法的搜索速度比较慢;对于式(3)运用的变异机制,是通过精英个体对其他个体的演化方向进行引导,同时利用精英个体的信息有利于开发其周围领域,提高FPA算法的搜索效率,从而提升了算法的收敛速度和开采能力,但这一策略也容易导致FPA算法陷入局部极小问题。为了能够使这两种方法优势互补,提高FPA算法的寻优能力,通过一个线性递减概率规则融合这两种变异机制,构建MIFPA算法的新局部搜索策略。
依据 ζ = 1 − t / Max _ i t e r \zeta=1-t/\text{Max}\_iter ζ=1t/Max_iter可知:在算法进化初期,选择式(2)的变异策略的概率要比选择式(3)的变异机制的概率大,这有利于种群个体在演化初期扩大搜索空间。因为从式(2)可以发现:在算法进化初期,由于个体之 间的差异性比较大,则( x r 2 − x r 3 x_{r_2}-x_{r_3} xr2xr3)值较大,这使得种群个体有利于向更广的搜索范围进行扩散,易于算法找到最优值。在算法的演化后期,个体选择式(3)的变异策略的概率要比选择式(2)的变异机制的概率大,这有利于加快算法的收敛速度。因为式(3)利用精英个体对种群其他个体的演化方向进行了引导,促进种群的其他个体加速向精英个体靠近,达到提高算法的搜索速度和计算精度。综上所述,通过线性递减概率规则可使这两种变异策略优势互补,提升算法的收敛能力。

(3)对劣解的改进策略

在基本花授粉算法中,总是以贪婪式演化策略选择较优个体来保证群体向前进化,即:经过全局搜索或局部搜索后,产生一个新个体,只有当子代的适应度值优于父代才能演化。然而,依据FPA算法的具体流程可知:如果子代劣于父代,则父代直接保留到下一代,并没有对其作任何改进措施,算法直接进入下一次进化,这使得本次迭代的计算资源严重浪费,增加了对全局最优解的搜索计算量,降低了算法的收敛速度,且容易造成算法收敛精度不高。
针对基本花授粉算法存在的这一不足,在算法进入下次迭代之前,如果父代没有得到改善,则利用式(4)重新产生一个新个体,若新解优于原始解,则用新解代替原始解: x n e w = 2 × cos ⁡ ( ( π × t ) / ( 2 × Max _ i t e r ) ) × φ × x t ( r ) (4) x^{new}=2\times\cos((\pi\times t)/(2\times\text{Max}\_iter))\times\varphi\times x_t(r)\tag{4} xnew=2×cos((π×t)/(2×Max_iter))×φ×xt(r)(4)其中, φ \varphi φ [ − 1 , 1 ] [-1,1] [1,1]上服从均匀分布的随机数,其作用是使种群个体实现随机游走; Max _ i t e r \text{Max}\_iter Max_iter为最大迭代次数, x t ( r ) x_t(r) xt(r)是迭代次数为 t t t时种群中的一个随机个体; x n e w x^{new} xnew为产生的新个体, t = 1 , 2 , ⋯   , Max _ i t e r t=1,2,\cdots,\text{Max}\_iter t=1,2,,Max_iter
通过融入余弦函数搜索因子,利用其振荡特点使得种群个体位置具有振荡性,扩展个体的搜索范围,有
效引导个体跳出局部最优,提高解的质量。

(4)自适应调整转换概率

通过实验可知:如果转换概率 p p p取固定的值,不利于FPA找到全局最优解。为了解决这一不足,采用式(5)对 p p p进行自适应调整,提高FPA算法的性能和灵活性。 p = p min ⁡ + ( p max ⁡ − p min ⁡ ) × ( ( Max _ i t e r − t ) / Max _ i t e r ) (5) p=p_{\min}+(p_{\max}-p_{\min})\times((\text{Max}\_iter-t)/\text{Max}\_iter)\tag{5} p=pmin+(pmaxpmin)×((Max_itert)/Max_iter)(5)其中, p max ⁡ p_{\max} pmax p min ⁡ p_{\min} pmin分别是 p p p的最大值(取0.9)和最小值(取0.2), Max _ i t e r \text{Max}\_iter Max_iter是最大迭代次数, t t t是当前迭代次数。
根据上述式(5)和改进算法的流程可知:在算法的进化初期,变量 t t t的值较小,则转换概率 p p p的取值较大,算法更偏向于异花授粉(全局搜索);当算法进入演化后期,变量 t t t的值越来越大,转换概率 p p p的值越来越小,则算法更倾向于自花授粉(局部搜索)。综上所述。通过 p p p的自适应调整策略,能够更有效地解决算法的全局搜索和局部搜索之间的平衡问题,从而更有利于提高算法的全局优化能力。

二、实验仿真及分析

MIFPA算法对FPA算法进行了4个方面的改进:在全局授粉部分增加了两组随机个体的差异矢量;通过一个线性递减概率规则,融合两种变异机制对局部授粉部分进行改进;自适应地调整转换概率;引入余弦函数搜索因子对劣解进行改善。为了验证这些改进策略分别对基本FPA算法的性能提升的效果,分别把这些策略融入到基本FPA算法中,并比较这些不同策略对基本FPA算法的性能改进效果,从而达到证明这些策略的效用。利用不同方法改进的FPA算法如下:

  • IGFPA:在基本FPA算法的全局搜索部分增加了两组随机个体的差异矢量改进后的算法;
  • ILFPA:对基本FPA算法的局部搜索部分改进后的算法;
  • IPFPA:采用自适应调整转换概率的FPA算法;
  • CFPA:融入余弦函数搜索因子的FPA算法;
  • MIFPA:引进上述所有改进策略的FPA算法。

将MIFPA与FPA和上述4种不同方法改进的FPA算法进行对比,以文献[1]表1中的F1、F2(单模态高维函数/30维)、F6、F8(非旋转的多模态高维函数/30维)、F10、F11(多模态低维函数/4维、4维)为例,实验设置种群规模为30,最大迭代次数为500,每种算法独立运算30次,结果显示如下:

  • 函数适应度值的收敛曲线对比及收敛结果
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
函数:F1
FPA:最优值: 1102.6762, 最差值: 2709.4261, 平均值: 1816.8628, 标准差: 398.424
IGFPA:最优值: 278.6499, 最差值: 865.4833, 平均值: 543.0433, 标准差: 164.4604
ILFPA:最优值: 335.6107, 最差值: 1468.8504, 平均值: 741.2832, 标准差: 275.4976
IPFPA:最优值: 225.1061, 最差值: 789.9161, 平均值: 454.1126, 标准差: 145.1454
CFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
MIFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
函数:F2
FPA:最优值: 10939.2367, 最差值: 25554.5761, 平均值: 18051.0455, 标准差: 3143.089
IGFPA:最优值: 5064.7047, 最差值: 16534.6618, 平均值: 11121.1297, 标准差: 2790.6069
ILFPA:最优值: 492.2353, 最差值: 1783.3709, 平均值: 1107.1141, 标准差: 351.6503
IPFPA:最优值: 12338.2242, 最差值: 26571.4515, 平均值: 17969.6029, 标准差: 3915.6045
CFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
MIFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
函数:F6
FPA:最优值: 13.0261, 最差值: 17.9042, 平均值: 15.9319, 标准差: 1.1135
IGFPA:最优值: 10.4705, 最差值: 16.9197, 平均值: 13.7115, 标准差: 1.5584
ILFPA:最优值: 7.0271, 最差值: 10.9861, 平均值: 9.1135, 标准差: 1.2454
IPFPA:最优值: 9.1531, 最差值: 14.3869, 平均值: 11.3617, 标准差: 1.3076
CFPA:最优值: 8.8818e-16, 最差值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0
MIFPA:最优值: 8.8818e-16, 最差值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0
函数:F8
FPA:最优值: 19.2057, 最差值: 12779.5492, 平均值: 822.5082, 标准差: 2446.8099
IGFPA:最优值: 7.5994, 最差值: 27.365, 平均值: 12.36, 标准差: 4.3884
ILFPA:最优值: 4.0587, 最差值: 32.3221, 平均值: 9.0326, 标准差: 5.5655
IPFPA:最优值: 6.7877, 最差值: 25.2227, 平均值: 13.0217, 标准差: 3.7959
CFPA:最优值: 0.005025, 最差值: 0.050079, 平均值: 0.018714, 标准差: 0.010305
MIFPA:最优值: 0.0030858, 最差值: 0.045018, 平均值: 0.019766, 标准差: 0.010802
函数:F10
FPA:最优值: 0.00049111, 最差值: 0.0012362, 平均值: 0.00087339, 标准差: 0.00017134
IGFPA:最优值: 0.00034314, 最差值: 0.00076413, 平均值: 0.00059345, 标准差: 0.00012123
ILFPA:最优值: 0.00030749, 最差值: 0.0012232, 平均值: 0.00036854, 标准差: 0.00023232
IPFPA:最优值: 0.00062474, 最差值: 0.0010752, 平均值: 0.00077192, 标准差: 9.6805e-05
CFPA:最优值: 0.00030749, 最差值: 0.00060913, 平均值: 0.00033403, 标准差: 7.632e-05
MIFPA:最优值: 0.00030749, 最差值: 0.00030749, 平均值: 0.00030749, 标准差: 1.2613e-19
函数:F11
FPA:最优值: -10.1482, 最差值: -7.879, 平均值: -9.7537, 标准差: 0.50232
IGFPA:最优值: -10.1532, 最差值: -10.1509, 平均值: -10.1526, 标准差: 0.00049563
ILFPA:最优值: -10.1532, 最差值: -10.1532, 平均值: -10.1532, 标准差: 3.2574e-10
IPFPA:最优值: -10.1526, 最差值: -9.1482, 平均值: -10.0558, 标准差: 0.19797
CFPA:最优值: -10.1532, 最差值: -5.0552, 平均值: -6.4144, 标准差: 2.2925
MIFPA:最优值: -10.1532, 最差值: -5.0552, 平均值: -6.2447, 标准差: 2.1931
  • 独立运行30次的函数最优适应度值比较特性图
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

实验结果表明:MIFPA算法是一种富有竞争力的新算法,其解的质量、鲁棒性和收敛速度、时间复杂度等方面总体上都要优于对比算法。

三、参考文献

[1] 肖辉辉, 万常选. 基于多策略的改进花授粉算法[J]. 软件学报, 2021, 32(10): 3151-3175.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值