文章目录
一、理论基础
1、基本花授粉算法
请参考这里。
2、基于动态全局搜索和柯西变异的花授粉算法
(1)混沌映射
本文首先将花粉种群的初始解映射到 ( 0 , 1 ) (0,1) (0,1)的区间上,映射公式如(1)所示,其中 x max x_{\max} xmax和 x min x_{\min} xmin分别表示花粉种群中花粉位置的最大值和最小值。 x c i = x i − x min x max − x min (1) x_{ci}=\frac{x_i-x_{\min}}{x_{\max}-x_{\min}}\tag{1} xci=xmax−xminxi−xmin(1)然后将归一化后的初始解利用 L o g i s t i c Logistic Logistic映射产生混沌值,并以此更新初始花粉种群,本文使用的 L o g i s t i c Logistic Logistic映射迭代如公式(2)所示: x c i + 1 = μ x c i ( 1 − x c i ) , i = 0 , 1 , 2 , ⋯ , μ ∈ [ 0 , 4 ] , x c i ∈ ( 0 , 1 ) (2) x_{ci+1}=\mu x_{ci}(1-x_{ci}),i=0,1,2,\cdots,\mu\in[0,4],x_{ci}\in(0,1)\tag{2} xci+1=μxci(1−xci),i=0,1,2,⋯,μ∈[0,4],xci∈(0,1)(2) x c i ′ = x min + x c i ( x max − x min ) (3) x_{ci}'=x_{\min}+x_{ci}(x_{\max}-x_{\min})\tag{3} xci′=xmin+xci(xmax−xmin)(3)其中, μ \mu μ是控制参数, x c i + 1 x_{ci+1} xci+1表示花粉经过混沌映射后在解空间的位置, x c i + 1 x_{ci+1} xci+1的取值与 μ \mu μ有关,随着 μ \mu μ的增大,序列的取值范围逐渐变大,其分布也越来越均匀,当 μ \mu μ为4时, L o g i s t i c Logistic Logistic映射的分布最均匀。使用公式(3)将公式(2)生成的混沌值映射到花粉种群的变量空间中,并将其作为FPA算法的初始解。
(2)动态全局搜索方法
本文在全局授粉阶段,构造动态全局搜索方法,该方法在原有算法的基础上增加了一个服从莱维分布的差分向量,此向量以平均最优位置为基向量,能够使解在前期朝着最优方向进行搜索的同时考虑更为全面的种群信息。全局搜索过程的更新策略如公式(4) 所示:
x
i
t
+
1
=
W
x
i
t
+
L
(
g
∗
−
x
i
t
)
+
L
(
m
_
g
∗
−
x
i
t
)
(4)
x_i^{t+1}=Wx_i^t+L(g_*-x_i^t)+L(m\_g_*-x_i^t)\tag{4}
xit+1=Wxit+L(g∗−xit)+L(m_g∗−xit)(4)其中,
W
W
W是动态权值因子,
t
t
t表示当前的迭代次数,
m
_
g
∗
m\_g_*
m_g∗表示前
t
t
t次迭代中最优解的均值,即平均最优花粉位置。 本文增加了平均最优花粉位置,引导算法在搜索前期综合考虑更为广泛的全局信息,不至于使算法过早地进行局部搜索而陷入局部最优。
为了平衡进化过程中对最优解搜索的针对性,引入动态权值递减策略,在进化前期种群分布较为广泛的大样本环境下,增强算法对种群中原始花粉个体信息的学习程度,目的是更为广泛地在目标问题的搜索空间中获取先验知识。 权重设置如公式(5)所示:
W
=
(
w
max
−
w
min
)
×
(
M
a
x
I
t
e
r
−
t
)
M
a
x
I
t
e
r
+
w
min
(5)
W=(w_{\max}-w_{\min})×\frac{(MaxIter-t)}{MaxIter}+w_{\min}\tag{5}
W=(wmax−wmin)×MaxIter(MaxIter−t)+wmin(5)其中,
w
max
w_{\max}
wmax和
w
min
w_{\min}
wmin分别表示权重的最大值和最小值,
M
a
x
I
t
e
r
MaxIter
MaxIter表示最大迭代次数,
t
t
t表示当前的迭代次数。随着迭代次数的增加,权重逐渐降低,权重的降低即加强对种群中全局最优位置与种群平均位置的学习程度,有助于在进化后期加快种群的收敛速度。
(3)基于柯西变异的优化方法
为了解决FPA易陷入局部最优这一缺点,引入Cauchy变异算子增加种群的多样性,帮助算法在后期跳出局部最优。一维标准Cauchy分布的概率密度函数如公式(6)所示: f ( x ) = 1 π ⋅ 1 1 + x 2 , − ∞ < x < + ∞ (6) f(x)=\frac1\pi\cdot\frac{1}{1+x^2},-\infin<x<+\infin\tag{6} f(x)=π1⋅1+x21,−∞<x<+∞(6)其密度函数曲线是一个由峰值到两端缓慢变化的钟形,无限接近于 x x x轴而不与坐标轴相交。该特征能够产生与原点相距较远的随机数,这意味着经过Cauchy变异后的花粉个体具备了能够迅速逃离局部极值的特点。另外,Cauchy分布的峰值较低,该特点能够缩短变异后的花粉个体在邻域周围搜索的时间。因此,在求得当前最优解后,本文使用公式(7)所示的更新公式对当前最优解进行变异处理: x newbest = x best + x best ⋅ C a u c h y ( 0 , 1 ) (7) x_{\text{newbest}}=x_{\text{best}}+x_{\text{best}}\cdot Cauchy(0,1)\tag{7} xnewbest=xbest+xbest⋅Cauchy(0,1)(7)该公式引入一个服从Cauchy分布的随机向量实现变异。对得到的新解的适应度值进行判断,如果新解比当前的最优解更好,则用它代替当前的全局最优解;否则不变。
(4)DCFPA的实现流程图
二、实验仿真与结果分析
为了验证本文提出的DCFPA算法的有效性,选取了6个测试函数用于评估DCFPA的性能。表1列出了6个函数的空间维度、搜索范围、最优解及峰值信息。为了降低算法随机性对实验性能的影响,以20次独立实验的平均值作为评估算法寻优性能和收敛性能的最终结果。实验设置FPA算法的转换概率 P = 0.8 P=0.8 P=0.8, λ = 1.5 \lambda=1.5 λ=1.5, N = 30 N=30 N=30, M a x I t e r = 500 MaxIter=500 MaxIter=500;DCFPA算法的转换概率 P = 0.8 P=0.8 P=0.8, λ = 1.5 \lambda=1.5 λ=1.5, μ = 4 \mu=4 μ=4, w max = 0.95 w_{\max}=0.95 wmax=0.95, w min = 0.4 w_{\min}=0.4 wmin=0.4, N = 30 N=30 N=30, M a x I t e r = 500 MaxIter=500 MaxIter=500。
各个函数收敛曲线及结果显示如下:
函数:F1
FPA:最差值: 125.3658,最优值:29.5214,平均值:70.5445,标准差:22.5522
DCFPA:最差值: 7.8663e-129,最优值:5.9952e-161,平均值:4.2004e-130,标准差:1.7567e-129
函数:F2
FPA:最差值: 2.333,最优值:1.2899,平均值:1.7004,标准差:0.29441
DCFPA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F3
FPA:最差值: 15.165,最优值:4.6126,平均值:9.7895,标准差:3.5921
DCFPA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F4
FPA:最差值: 0.00047553,最优值:5.0237e-07,平均值:0.00010105,标准差:0.00012188
DCFPA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F5
FPA:最差值: 189.4974,最优值:147.8722,平均值:172.169,标准差:8.8985
DCFPA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F6
FPA:最差值: 10920.9396,最优值:1138.4799,平均值:4112.3394,标准差:2807.0159
DCFPA:最差值: 27.8256,最优值:26.7954,平均值:27.2814,标准差:0.28132
仿真实验表明,DCFPA算法比FPA具有更好的全局优化能力,提升了算法的收敛速度与求解精度。
三、参考文献
[1] 贺智明, 李文静. 基于动态全局搜索和柯西变异的花授粉算法[J]. 计算机工程与应用, 2019, 55(19): 74-80.