基于混合策略的改进哈里斯鹰优化算法
文章目录
- 基于混合策略的改进哈里斯鹰优化算法
- 1.哈里斯鹰优化算法
- 2.改进哈里斯鹰优化算法
- 2.1 Sobol 序列初始化种群
- 2.2 limit 阈值执行全局搜索阶段
- 2.4 动态反向学习
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.python代码
摘要:针对原始哈里斯鹰优化算法(HHO)存在的收敛精度低、收敛速度慢、易陷入局部最优等不足,提出了一种基于混合策略的改进哈里斯鹰优化算法(HSHHO).首先,在种群初始化阶段引入Sobol序列,生成均匀分布的种群,提高种群的多样性,有利于提高算法的收敛速度;其次,引入limit阈值,令算法在一定迭代次数没有获得更优值后执行全局探索操作,提高算法跳出局部最优解的能力,改善HHO在迭代后期只执行开发阶段而易陷入局部最优的缺陷;最后,提出一种动态的反向学习机制,提高算法的收敛精度以及跳出局部最优的能力.
1.哈里斯鹰优化算法
基础哈里斯鹰优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108528147
2.改进哈里斯鹰优化算法
2.1 Sobol 序列初始化种群
种群初始状态的分布极大地影响着算法的收敛速 度和收敛精度. 在原始的 HHO 算法中, 种群采用随 机化的方式产生. 然而, 这种伪随机方式产生的种群个 体分不均匀, 使得算法难以对整个搜索空间进行搜索, 影响了算法的收玫速度和精度. 相比之下, Sobol 序列 是一种用确定性拟随机数产生的低差异化序列, 它能 尽可能地将点均匀分布在搜索空间中. 用 Sobol 序列生成种群的表达式如下:
X
i
=
L
B
+
S
n
×
(
U
B
−
L
B
)
(15)
X_i=L B+S_n \times(U B-L B)\tag{15}
Xi=LB+Sn×(UB−LB)(15)
其中,
L
B
L B
LB 和
U
B
U B
UB 为搜索空间的下界和上界,
S
n
∈
[
0
,
1
]
S_n \in[0,1]
Sn∈[0,1] 是 Sobol 序列所产生的随机数.
2.2 limit 阈值执行全局搜索阶段
受人工蜂群算法 (artificial bee colony algorithm, A B C ) [ 24 ] \mathrm{ABC})^{[24]} ABC)[24] 中引入 limit 阈值观察解的停滞次数而舍弃食 物源的启示, 将 limit 阈值机制引入 HHO 算法中. limit 阈值机制是指预先设定好一个限制次数 (limit), 观察在 这个限制次数内最优解是否停滞, 如果算法在 limit 阈 值的迭代次数内没有获得更好的最优解, 则进行一定 操作. 通过分析, HHO 算法在迭代的后期只执行局部 开发阶段, 不执行全局搜索阶段而容易陷入局部最优. 因此加入 limit 阈值机制, 在一定迭代次数后, 算法仍 无法获得更好的解, 则使用式 (1) 对个体执行全局搜索 操作生成新个体, 如果新个体的适应度比原个体好, 就 用新个体取代原个体, 帮助算法跳出局部最优. 本文的 limit 取值为 5 .
2.4 动态反向学习
反向学习是 Tizhoosh
[
25
]
{ }^{[25]}
[25] 于 2005 年提出的, 其基本 思想是为当前解产生一个基于反向学习的解, 同时考 虑当前解以及其反向解, 扩大搜索范围.在该解的位置 上和其相反位置上同时进行搜索, 能提高获得更优解 的可能性. 假设搜索空间为
D
D
D 维, 那么个体
X
i
X_i
Xi 在第
j
j
j 维的反向解定义为:
X
~
i
j
=
L
B
j
+
U
B
j
−
X
i
j
(16)
\tilde{X}_{i j}=L B_j+U B_j-X_{i j} \tag{16}
X~ij=LBj+UBj−Xij(16)
其中,
X
i
j
∈
(
L
B
j
,
U
B
j
)
,
j
∈
1
,
2
,
⋯
,
D
,
U
B
j
X_{i j} \in\left(L B_j, U B_j\right), j \in 1,2, \cdots, D, U B_j
Xij∈(LBj,UBj),j∈1,2,⋯,D,UBj 和
L
B
j
L B_j
LBj 是第
j
j
j 维的上下限. 反向学习能够利用自身位置信息生成反 向解, 在当前解的反方向上进行探索, 使候选解更有可 能获得高质量的解.
但是, 基础的反向学习也有一定局限性. 考虑到在 迭代前期自身位置信息的不可靠, 参考价值不大, 因此 利用自身位置信息生成的反向解质量也不高. 随着迭 代次数的增加, 自身位置信息越来越好, 那么生成的反 向解也越来越能够达到真正的反向效果.
因此, 本文提出一种动态的反向学习机制, 给自身 位置信息加入动态因子以更好地引导反向解的产生, 表达式如下:
X
~
i
j
=
L
B
j
+
U
B
j
−
r
×
X
i
j
(
17
)
r
=
sin
(
t
T
)
(
18
)
\begin{gathered} \tilde{X}_{i j}=L B_j+U B_j-r \times X_{i j} \quad (17)\\ r=\sin \left(\frac{t}{T}\right)\quad (18) \end{gathered}
X~ij=LBj+UBj−r×Xij(17)r=sin(Tt)(18)
随着迭代次数
t
t
t 的增加, 动态系数
r
r
r 的值也非线性 地越来越大, 代表着个体自身位置随着迭代次数的增 加越来越有参考价值. 相比原始的反向学习, 本文所提 出的动态反向学习能够生成更好的反向解.
3.实验结果
4.参考文献
[1]张海林,陈泯融.基于混合策略的改进哈里斯鹰优化算法[J].计算机系统应用,2023,32(01):166-178.DOI:10.15888/j.cnki.csa.008911.