赞
踩
基础蜻蜓算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107783363
在群智能算法中, 初始化策略的选择决定了初代种群在解空间的分布情况, 而 DA 算法对于初始化策 略的构造方法比较敏感
[
13
]
{ }^{[13]}
[13], 因此不同的解空间分布情况将影响算法的搜索能力和收敛效率. 在标准 DA 算法中, 对于种群初始化采用了随机生成的方式, 虽然这种方法简单易实现, 但随机生成的点具有一定的 斍目性, 使得有的较好的点不能被䨱盖, 将会减慢算法的求解性能. 为了改善这个问题, 本文采用基于精 英反向学习的策略对种群进行初始化, 在初始化阶段, 同时搜索当前解与其动态反向学习的解, 将较优的 解作为初始解, 去除斍目性, 在解空间内并行搜索; 扩大了种群的多样性, 使算法的搜索效率得到提升. 初 始化步骤如下:
(1) 在搜索空间随机生成
N
N
N 个蜻娗个体初始位置
x
i
,
j
x_{i, j}
xi,j, 其中,
i
=
1
,
2
,
⋯
,
N
;
j
=
1
,
2
,
⋯
,
D
,
N
i=1,2, \cdots, N ; j=1,2, \cdots, D, N
i=1,2,⋯,N;j=1,2,⋯,D,N 为种群规 模,
D
D
D 为每个种群的维度;
(2) 生成动态反向种群
x
i
,
j
′
x_{i, j}^{\prime}
xi,j′, 其中
x
i
,
j
′
=
k
(
a
j
+
b
j
)
−
x
i
,
j
,
x
i
,
j
∈
[
a
i
j
,
b
j
]
x_{i, j}^{\prime}=k\left(a_j+b_j\right)-x_{i, j}, x_{i, j} \in\left[a_{i j}, b_j\right]
xi,j′=k(aj+bj)−xi,j,xi,j∈[aij,bj];
(3) 比较初始化种群与其动态反向学习之后的种群, 选择
N
N
N 个适应度较好的蜻娗个体组成初始化 种群.
在标准 DA 算法中,采用的是全维度更新再评价策略,即更新所有维度信息之后,再根据目标函数值评价更新后的解,这种方法在一定程度上会掩盖进化维度的信息,浪费了解的评价次数,恶化解的收敛效率[14] ;同时,这样的更新方式造成了维度与维度之间的相互干扰,从而影响算法的收敛速度和寻优精度.改进的基于贪婪保留的逐维更新策略的蜻蜓算法,能够考虑每一维度的信息更新. 该策略的思想是:某一维度的值经过更新后与其他维度的值组成新的解;再根据目标函数适应度评价该新解;如果能够改善当前解的质量,则保留该维度对于解的更新结果;反之,则放弃对于当前维度值的更新,保留未更新之前的维度信息,并进行下一维度的更新,采用这种贪婪保留的方式,直到各维度更新完毕.
标准 DA算法中, 当蜻蜓个体至少具有一个相邻个体时, 通过式 (6) 更新步长因子, 从而按照式 (7) 更 新下一代蜻蜓个体的位置,这样的机制没有保留历史较优的个体作为下一次迭代的参考值, 并且只依赖于 5 种行为和步长来更新下一次迭代的位置,使得算法需要耗棃更多的迭代次数来寻找最优解. 因此, 为了 进一步增强个体间的信息传递,提高算法的寻优能力,可在式(7)中加入历史最优解和当前解的信息, 通 过差分结果来进一步引导解的收敛, 当前解的信息得到充分利用, 增强了解的寻优能力;同时,
r
r
r 作为方向 控制因子, 可取
(
−
1
,
1
)
(-1,1)
(−1,1) 之间均匀分布的随机数, 能够控制拍索方向, 达到双向搜索, 提高解的收敛效率和 昌优能力,因此本文改进的算法把式 (7) 改进成如下公式:
X
t
+
1
,
i
=
X
t
,
i
+
Δ
X
t
+
1
,
i
+
r
(
x
Food
−
x
t
,
i
)
(14)
X_{t+1, i}=X_{t, i}+\Delta X_{t+1, i}+r\left(x_{\text {Food }}-x_{t, i}\right)\tag{14}
Xt+1,i=Xt,i+ΔXt+1,i+r(xFood −xt,i)(14)
式中,
r
r
r 是
(
−
1
,
1
)
(-1,1)
(−1,1) 之间的随机数,服从均肑分布,
x
Foxd
x_{\text {Foxd }}
xFoxd 表示当前食物源的位置, 即历史最优解,
x
r
,
i
x_{r, i}
xr,i 为当前解 的位置,
t
t
t 为当前迭代次数.
[1]何庆,黄闽茗,王旭.基于精英反向学习的逐维改进蜻蜓算法[J].南京师大学报(自然科学版),2019,42(03):65-72.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。