一、理论基础
1、布谷鸟搜索算法
请参考这里。
2、DA-DOCS算法
(1)逐维反向学习策略
文提出的逐维反向学习策略,不仅能够有效避免各维度之间相互干扰的现象,而且能扩大种群搜索范围,开采新的搜索空间,增强种群的多样性。在每一代的演化中,它类似于独立每一个维度的进化,并在每个维度同时搜索两个对称区域,提高了算法的收敛效率和全局寻优能力。
在逐维反向学习策略中,设种群规模为
N
N
N,维度为
D
D
D,迭代过程选择更新位置时的位置矩阵为
n
e
s
t
N
×
D
i
\boldsymbol{nest}_{N×D_i}
nestN×Di。每个维度的上、下限分别为
u
p
N
×
D
i
\boldsymbol{up}_{N×D_i}
upN×Di、
l
o
w
N
×
D
i
\boldsymbol{low}_{N×D_i}
lowN×Di,则解的每维的基于反向学习的位置矩阵为
n
e
s
t
N
×
D
i
′
=
K
⋅
(
l
o
w
N
×
D
i
+
u
p
N
×
D
i
)
−
n
e
s
t
N
×
D
i
(1)
\boldsymbol{nest}'_{N×D_i}=K\cdot(\boldsymbol{low}_{N×D_i}+\boldsymbol{up}_{N×D_i})-\boldsymbol{nest}_{N×D_i}\tag{1}
nestN×Di′=K⋅(lowN×Di+upN×Di)−nestN×Di(1)其中,
K
K
K为
(
0
,
1
)
(0,1)
(0,1)的随机数。
逐维反向学习策略在进行算法的迭代过程中,当被淘汰的蛋被重新构造代替后,与没有被淘汰的蛋汇集,不再使用CS算法中的整体更新再评价方式评价,而是对更新后的解的每维进行反向学习,将更新的各维度的值映射到它的反向学习数进行空间搜索,淘汰退化维度信息,不但减少各维度间的干扰,而且增加解空间的搜索范围,从而提高搜索效率和寻优能力。逐维进化学习策略考虑了各维度的更新信息,某一维度的值经过反向学习之后与其他维的值组成新的解,根据目标函数适应度评价该新解,如果能够改善当前解的质量,则保留该维度进行反向学习的更新结果;反之,则放弃对于当前维的更新,保留反向学习之前的维度信息,利用这种精英保留的方式将进行下一维的反向学习更新,直到各维度更新完毕。基于逐维反向学习策略,强化了进化维度的信息,减少了标准CS算法随机更新所消耗的评价次数,提高算法的收敛速度和寻优能力;采用精英保留方式,提高了算法的效率。
(2)动态适应
为了提高算法性能,可将发现更新公式中的缩放因子的取值随迭代次数的动态变化作出适应性调节, r r r的取值呈递减趋势,能够在搜索前期跳出局部最优,避免早熟现象;在搜索后期增强算法的局部寻优能力。缩放因子充分利用了当前解的信息动态适应,动态引导解的收敛,有利于提高算法的搜索活力。因此,DA-DOCS算法将其改进成如下公式 { x t + 1 , i = x t , i + r ( x t , i − x t , k ) r = 1 t c (2) \begin{dcases}x_{t+1,i}=x_{t,i}+r(x_{t,i}-x_{t,k})\\r=\frac1{t_c}\end{dcases}\tag{2} ⎩⎨⎧xt+1,i=xt,i+r(xt,i−xt,k)r=tc1(2)其中, x t , k x_{t,k} xt,k表示 t t t代的随机解; t c t_c tc表示当前迭代次数。
(3)DA-DOCS算法流程
改进算法流程如图1所示。
二、实验与结果分析
为了观察分析DA-DOCS算法的收敛速度,本文设定种群规模 N = 30 N=30 N=30,被发现概率为0.25,莱维飞行的步长缩放因子分别为0.01和1.5。通过选取的8个测试函数对DA-DOCS算法和标准CS算法进行30次独立实验。测试函数如表1所示,以F1、F3为例。
结果显示如下:
函数:F1
CS:最差值: 5.3974e-16,最优值:2.9485e-17,平均值:1.5635e-16,标准差:1.158e-16
DA-DOCS:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F3
CS:最差值: 74.734,最优值:1.0825,平均值:15.0328,标准差:14.7811
DA-DOCS:最差值: 14.8957,最优值:0.33553,平均值:2.4878,标准差:2.8814
结果表明,本文提出的DA-DOCS算法采用逐维方向学习和动态适应的方式,减少维间干扰,扩大搜索范围,动态适应控制缩放因子,有效地提高了CS算法的收敛速度、求解精度和搜索活力。
三、参考文献
[1] 黄闽茗, 何庆, 文熙. 基于逐维反向学习的动态适应布谷鸟算法[J]. 计算机应用研究, 2020, 37(4):1015-1019.