新授粉方式的花授粉算法
一、理论基础
1、花授粉算法
请参考这里。
2、新授粉方式的花授粉算法
(1)自适应调整的转换概率 p p p本文对 p p p采用自适应调整策略,其计算公式为: p i ( t ) = p min + ( p max − p min ) × ( 0.5 × ( 1 − t N _ i t e r ) + 0.5 × f max , t − f i , t f max , t − f min , t ) (1) p_i(t)=p_{min}+(p_{max}-p_{min})×left(0.5×left(1-frac{t}{N_iter}right)+0.5×frac{f_{max,t}-f_{i,t}}{f_{max,t}-f_{min,t}}right)tag{1} pi(t)=pmin+(pmax−pmin)×(0.5×(1−N_itert)+0.5×fmax,t−fmin,tfmax,t−fi,t)(1)其中,转换概率 p p p的取值范围为 [ 0.2 , 0.9 ] [0.2,0.9] [0.2,0.9], f min , t f_{min,t} fmin,t和 f max , t f_{max,t} fmax,t分别为第 t t t代种群中最小适应度值和最大适应度值, f i , t f_{i,t} fi,t为当前个体的适应度值, N _ i t e r N_iter N_iter为最大迭代次数, t t t为当前迭代次数, p min p_{min} pmin是参数 p p p的最小值, p max p_{max} pmax是参数 p p p的最大值。
在进化初期, p p p的值较大,算法侧重于全局搜索,扩大算法搜索范围,使种群中的个体更靠近最优解,随着进化的深入, p p p的值越来越小,使算法倾向局部精细化搜索,有利于算法找到最优值。
为了解决FPA算法存在的问题,通过融入带惯性权重的思想对FPA算法的全局授粉方式进行改进,具体如下: x i t + 1 = { x i t + γ L ( λ ) ( x i 1 t − x i 2 t + x i 3 t − x i 4 t ) r a n d ≤ θ ω x i t + γ L ( λ ) ( x i 1 t − x i 2 t + x i 3 t − x i 4 t ) r a n d > θ (2) x_i^{t+1}=begin{dcases}x_i^t+gamma L(lambda)(x_{i_1}^t-x_{i_2}^t+x_{i_3}^t-x_{i_4}^t),,,,,,,,,,, rand≤thetaomega x_i^t+gamma L(lambda)(x_{i_1}^t-x_{i_2}^t+x_{i_3}^t-x_{i_4}^t),,,,,,, rand>thetaend{dcases}tag{2} xit+1={xit+γL(λ)(xi1t−xi2t+xi3t−xi4t)rand≤θωxit+γL(λ)(xi1t−xi2t+xi3t−xi4t)rand>θ(2)其中, r a n d ∈ [ 0 , 1 ] randin[0,1] rand∈[0,1]是服从均匀分布的随机数; i , i 1 , i 2 , i 3 , i 4 i,i_1,i_2,i_3,i_4 i,i1,i2,i3,i4分别是从当前种群中随机选取的5个不同个体的下标; x i t + 1 x_i^{t+1} xit+1、 x i t x_i^t xit分别是第 t + 1 t+1 t+1代、第 t t t代的解; γ gamma γ是控制步长的缩放因子; L L L是对应于花粉传播者的Lévy飞行随机搜索步长; λ = 3 / 2 lambda=3/2 λ=3/2。 θ theta θ和 ω omega ω的计算公式分别为式(3)和式(4): θ = 0.5 × ( 1 − t N _ i t e r ) + 0.5 × f max , t − f i , t f max , t − f min , t (3) theta=0.5×left(1-frac{t}{N_iter}right)+0.5×frac{f_{max,t}-f_{i,t}}{f_{max,t}-f_{min,t}}tag{3} θ=0.5×(1−N_itert)+0.5×fmax,t−fmin,tfmax,t−fi,t(3) ω = 0.01 × ( 1 − exp ( − t N _ i t e r ) ) (4) omega=0.01×left(1-expleft(-frac{t}{N_iter}right)right)tag{4} ω=0.01×(1−exp(−N_itert))(4)其中, f min , t f_{min,t} fmin,t和 f max , t f_{max,t} fmax,t分别为第 t t t代种群中最小适应度值和最大适应度值, f i , t f_{i,t} fi,t为当前个体的适应度值, N _ i t e r N_iter N_iter为最大迭代次数, t t t为当前迭代次数。
依据上述式(4)可知,在算法的进化初期,变量 t t t的值较小,则惯性权重 ω omega ω的取值较小,对种群的扰动性较弱;当算法进入进化后期,变量 t t t的值越来越大,惯性权重 ω omega ω的值越来越大,对种群的扰动性较强,有利于增加种群的多样性,以增强算法的全局优化能力。式(4)中的系数0.01,是经过大量实验获得的经验值。
带惯性权重的新全局授粉方式,在保留Lévy飞行机制的同时利用了两组随机个体的差异矢量,增加了算法的扰动性和算法在多维空间的探索能力。在进化后期,全局授粉部分采用带惯性权重的搜索机制,增加种群个体的多样性,有效避免算法早熟,提高算法优化性能。
针对FPA算法局部搜索存在的问题,采用精英策略和信息共享机制对标准FPA算法的局部授粉方式进行改进,新的变异策略如下:
FPA/rand/1变异策略:
ν i , t = x r 1 + δ × ( x r 2 , t − x r 3 , t ) (5) nu_{i,t}=x_{r_1}+delta×(x_{r_2,t}-x_{r_3,t})tag{5} νi,t=xr1+δ×(xr2,t−xr3,t)(5)
FPA/best/2变异策略:
ν i , t = x best , t + α × ( x r 1 , t − x r 2 , t ) + β × ( x r 3 , t − x r 4 , t ) (6) nu_{i,t}=x_{text{best},t}+alpha×(x_{r_1,t}-x_{r_2,t})+beta×(x_{r_3,t}-x_{r_4,t})tag{6} νi,t=xbest,t+α×(xr1,t−xr2,t)+β×(xr3,t−xr4,t)(6)其中, i ∈ { 1 , 2 , ⋯ , N P } iin{1,2,cdots,NP} i∈{1,2,⋯,NP}为当前个体的下标, r 1 , r 2 , r 3 r_1,r_2,r_3 r1,r2,r3和 r 4 r_4 r4为4个不同的随机个体的下标, x best , t x_{text{best},t} xbest,t为第 t t t代种群中最优个体。 δ , α , β delta,alpha,beta δ,α,β是均值为0.5、标准偏差为0.1的高斯分布,通过缩放因子 δ delta δ、 α alpha α和 β beta β对算法的进化速度进行调节。
在新的局部搜索方法中,“FPA/rand/1”变异策略增加了算法种群个体的差异性,提高了算法优化能力,但算法的收敛速度在一定程度上降低了;“FPA/best/2”变异机制通过最优个体引导种群中其他个体的搜索方向,最优个体的有用信息有利于开发最优个体的搜索范围,提高算法的寻优效率,使其收敛速度与开发能力获得提升,但也容易导致算法陷入局部最优。因此,为了使其取长补短,更好提升算法的收敛能力,本文通过式(3)的非线性递减概率规则来融合这两种变异策略。依据 θ theta θ的表达式可知,在算法的进化初期,算法偏重于全局搜索;在进化后期,侧重于局部搜索,有利于提高算法的寻优性能。
另外,在FPA算法中个体之间缺乏信息交流,使其容易陷入局部极值,本文把信息共享机制融入到FPA的局部搜索中,即利用式(7)来进行个体间的学习,从而达到改善解的质量。 x new i = { x old i + s × ( x i − x j ) , f ( x j ) < f ( x i ) x old i + s × ( x j − x i ) , f ( x i ) < f ( x j ) (7) x_{text{new}}^i=begin{dcases}x_{text{old}}^i+s×(x^i-x^j),quad f(x^j)<f(x^i)x_{text{old}}^i+s×(x^j-x^i),quad f(x^i)<f(x^j)end{dcases}tag{7} xnewi={xoldi+s×(xi−xj),f(xj)<f(xi)xoldi+s×(xj−xi),f(xi)<f(xj)(7)其中, f ( x i ) f(x^i) f(xi)和 f ( x j ) f(x^j) f(xj)分别表示个体 x i x^i xi和 x j x^j xj的目标函数适应度值, s = r a n d s=rand s=rand为学习步长, x new i , x old i x_{text{new}}^i,x_{text{old}}^i xnewi,xoldi分别是第 i i i个个体的最新状态和原始状态。
基于上述思想,构建FPA具有信息共享机制的新局部授粉方式:
通过式(7)实现个体之间的信息交流; if rand≥θ then依据式(6)执行变异, 产生新的个体; else依据式(5)执行变异, 产生新的个体; end 123456 (4)基于变异的改进策略
改进策略定义如下:
(1)基于高斯变异的最优个体改进策略
x i new = x best + k × N ( 0 , 1 ) x best (8) x_i^{text{new}}=x_{text{best}}+k×N(0,1)x_{text{best}}tag{8} xinew=xbest+k×N(0,1)xbest(8) k = 1 − t / N _ i t e r (9) k=1-t/N_itertag{9} k=1−t/N_iter(9)其中, x best x_{text{best}} xbest为当前种群中最优个体; x i new x_i^{text{new}} xinew是第 i i i个个体的新状态; t t t为当前迭代次数, N _ i t e r N_iter N_iter为最大迭代次数; k ∈ [ 0 , 1 ) kin[0,1) k∈[0,1)为递减变量, N ( 0 , 1 ) N(0,1) N(0,1)为高斯变异随机向量。
(2)非均匀变异
变异是种群个体能够持续进化的关键操作,而非均匀变异是对原有个体进行不同幅度的变异而产生新的个体。定义如下: x i new = { x i old + Δ ( t , U b − x i old ) , r < 0.5 x i old − Δ ( t , x i old − L b ) , r ≥ 0.5 (10) x_i^{text{new}}=begin{dcases}x_i^{text{old}}+Delta(t,Ub-x_i^{text{old}}),quad r<0.5x_i^{text{old}}-Delta(t,x_i^{text{old}}-Lb),quad, r≥0.5end{dcases}tag{10} xinew={xiold+Δ(t,Ub−xiold),r<0.5xiold−Δ(t,xiold−Lb),r≥0.5(10) Δ ( t , y ) = y ( 1 − r ( 1 − t / N _ i t e r ) b ) (11) Delta(t,y)=y(1-r^{(1-t/N_iter)^b})tag{11} Δ(t,y)=y(1−r(1−t/N_iter)b)(11)其中, t t t是当前迭代次数, U b Ub Ub和 L b Lb Lb是解的上界和下界, r r r是 [ 0 , 1 ] [0,1] [0,1]之间的随机数, b b b是决定非均匀度的系统参数, N _ i t e r N_iter N_iter为最大迭代次数, x i old x_i^{text{old}} xiold是第 i i i个个体的原始状态, x i new x_i^{text{new}} xinew是第 i i i个个体的新状态。
根据上述描述的算法改进思想,提出NMFPA算法,算法的流程图如图1所示。
二、数值实验及分析
将NMFPA与基本花授粉算法(FPA)进行对比,以表1的8个测试函数为例。设置种群规模为50,最大迭代次数为500,每个算法独立运行30次。
表1 测试函数结果显示如下:
函数:F1 NMFPA:最差值: 0,最优值:0,平均值:0,标准差:0 FPA:最差值: 475.8341,最优值:167.9603,平均值:291.3194,标准差:61.7469 函数:F2 NMFPA:最差值: 1.9294e-210,最优值:3.6048e-219,平均值:8.5443e-212,标准差:0 FPA:最差值: 32.5153,最优值:13.9768,平均值:23.5797,标准差:4.6388 函数:F3 NMFPA:最差值: 0,最优值:0,平均值:0,标准差:0 FPA:最差值: 27711.5086,最优值:15198.8565,平均值:22286.3252,标准差:2840.3801 函数:F4 NMFPA:最差值: 1.371e-210,最优值:5.5347e-220,平均值:6.4307e-212,标准差:0 FPA:最差值: 21.9549,最优值:11.632,平均值:16.6133,标准差:2.1945 函数:F5 NMFPA:最差值: 0.0014033,最优值:8.9458e-07,平均值:0.00031745,标准差:0.00028316 FPA:最差值: 0.23448,最优值:0.04458,平均值:0.12735,标准差:0.043771 函数:F6 NMFPA:最差值: 0,最优值:0,平均值:0,标准差:0 FPA:最差值: 197.8818,最优值:155.7824,平均值:181.9345,标准差:10.3122 函数:F7 NMFPA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0 FPA:最差值: 16.8723,最优值:8.1754,平均值:12.8772,标准差:2.2863 函数:F8 NMFPA:最差值: 0,最优值:0,平均值:0,标准差:0 FPA:最差值: 5.1677,最优值:2.6836,平均值:3.4916,标准差:0.49125 123456789101112131415161718192021222324
实验结果表明,NMFPA在解的质量、收敛速度和稳定性上表现出更优,是一种富有竞争力的新算法。
三、参考文献
[1] 段艳明, 肖辉辉, 林芳. 新授粉方式的花授粉算法[J]. 计算机工程与应用, 2018, 54(23): 94-108.
相关知识
花授粉优化算法及代码实现
花朵授粉算法【记录】
CMOFPA:多目标花授粉算法
整数规划的花授粉算法
适应性花朵授粉算法研究
改进的花朵授粉算法:融合差分进化策略
改进的花朵授粉算法程序(Matlab)资源
基于花授粉算法优化实现SVM数据分类
南瓜花授粉的时间与方式(掌握授粉技巧)
向日葵授粉方式
网址: 新授粉方式的花授粉算法 https://www.huajiangbk.com/newsview816432.html
上一篇: 自适应神经网络:根据环境变化自动 |
下一篇: Perspectives and |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039