基于混合策略的改进哈里斯鹰优化算法-附代码

基于混合策略的改进哈里斯鹰优化算法


摘要:针对原始哈里斯鹰优化算法(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×(UBLB)(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+UBjXij(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),j1,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+UBjr×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.

5.Matlab代码

6.python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/131365757
今日推荐