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

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


摘要: 针对哈里斯鹰优化算法收敛精度低、易陷入局部最优空间等局限性,提出一种混合策略改进的哈里斯鹰优化算法。采用精英混沌反向学习策略初始化种群,增加初始种群多样性和精英个体数量,提高算法收敛性能;利用引入动态自适应权重的逃逸能量非线性递减策略替代哈里斯鹰算法的线性递减机制,提高算法全局探索和局部开发行为的平衡能力;采用拉普拉斯交叉算子策略生成适应度更高的新个体,提高算法抗停滞能力。

1.哈里斯鹰优化算法

基础哈里斯鹰优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108528147

2.改进哈里斯鹰优化算法

2.1 初始化种群的改进

2.1.1 初始种群多样化

为增加算法初始种群的多样性, 利用具有较好 遍历均匀性的 Tent 混沌映射 [ 13 ] { }^{[13]} [13] 方法初始化哈里斯 鹰种群。由于 Tent 映射存在小周期和不稳定的周 期点, 因此在 Tent 映射函数中引人随机变量 rand ( 0 , 1 ) × 1 / N (0,1) \times 1 / N (0,1)×1/N, 改进后表达式如下:
y i + 1 = { 2 y i + rand ⁡ ( 0 , 1 ) × 1 N 0 ⩽ y i < 1 2 2 ( 1 − y i ) + rand ⁡ ( 0 , 1 ) × 1 N 1 2 < y i ⩽ 1 (8) y_{i+1}=\left\{\begin{array}{cc} 2 y_i+\operatorname{rand}(0,1) \times \frac{1}{N} & 0 \leqslant y_i<\frac{1}{2} \\ 2\left(1-y_i\right)+\operatorname{rand}(0,1) \times \frac{1}{N} & \frac{1}{2}<y_i \leqslant 1 \end{array}\right.\tag{8} yi+1={ 2yi+rand(0,1)×N12(1yi)+rand(0,1)×N10yi<2121<yi1(8)
式中: rand ⁡ ( 0 , 1 ) \operatorname{rand}(0,1) rand(0,1) 表示 ( 0 , 1 ) (0,1) (0,1) 之间的随机数; N N N 为 Tent 序列内粒子个数。
利用式 (9) 对 Tent 映射后均匀分布的混沌序列 进行逆映射得到种群个体,其表达式如下:
x i = y i ( u b − l b ) + l b (9) x_i=y_i(\mathrm{ub}-\mathrm{lb})+\mathrm{lb} \tag{9} xi=yi(ublb)+lb(9)
式中: y i y_i yi 为式 (8) 生成的混沌序列; x i x_i xi 为映射后的哈 里斯鹰个体; ub 和 lb 为搜索空间的上下界。

2.1.2 初始种群精英化

根据小孔成像反向学习方法可以增加算法 寻优位置的多样性和种群精英个体的数量, 帮助算 法扩大搜索区域, 从而提高选取更优解的概率。假 设 x j x_j xj x j ′ x_j^{\prime} xj 分别是当前哈里斯鹰最优解和小孔成像 后的反向最优解, a j a_j aj b j b_j bj 分别为第 j j j 维解的上下限, 根据小孔成像原理可得:
x j ′ = ( a j + b j ) 2 + ( a j + b j ) 2 n − x j n (10) x_j^{\prime}=\frac{\left(a_j+b_j\right)}{2}+\frac{\left(a_j+b_j\right)}{2 n}-\frac{x_j}{n} \tag{10} xj=2(aj+bj)+2n(aj+bj)nxj(10)
式中: n n n 为小孔成像调节因子。

2.2 逃逸能量递减机制的改进

猎物逃逸能量 E E E H H O \mathrm{HHO} HHO 平衡全局探索与局部 开发行为的重要参数。 H H O \mathrm{HHO} HHO 中对猎物逃逸能量 E E E 的描述是由最大值线性递减至最小值, 即探索阶段 和开发阶段逃逸能量变化量 Δ E \Delta E ΔE 相同,这种线性能 量递减策略导致算法的探索和发开平衡性较差, 且 无法准确表征实际情况下鹰与猎物多轮围捕逃逸过 程。为此, 在 H H O \mathrm{HHO} HHO 能量递减策略中引人动态自适 应权重 [ 15 ] { }^{[15]} [15], 提高猎物逃逸能量的非线性表达, 从而 平衡算法的探索和开发行为,表达式如下:
E = 2 E 0 ω ( 1 − t / T ) ( 11 ) ω = δ [ ω initial  − ( ω initial  − ω final  ) × 1 e − 1 × ( e t T − 1 ) ] ( 12 ) \begin{gathered} E=2 E_0 \omega(1-t / T) (11)\\ \omega=\delta\left[\omega_{\text {initial }}-\left(\omega_{\text {initial }}-\omega_{\text {final }}\right) \times \frac{1}{e-1} \times\left(\mathrm{e}^{\frac{t}{T}}-1\right)\right](12) \end{gathered} E=2E0ω(1t/T)(11)ω=δ[ωinitial (ωinitial ωfinal )×e11×(eTt1)](12)
式中: ω initial  \omega_{\text {initial }} ωinitial  为权重初值, ω final  \omega_{\text {final }} ωfinal  为权重终值; t t t 为当前迭 代次数; δ \delta δ [ 0 , 1 ] [0,1] [0,1] 之间的随机数; T T T 为最大迭代 次数。

2.4 拉普拉斯交叉算子策略

HHO 算法在迭代后期种群多样性降低且对最 优个体依赖性较大, 当最优个体陷人局部最优后种 群难以跳出局部极值空间。为此,采用拉普拉斯交 叉算子 [ 16 ] { }^{[16]} [16] 策略对迭代后期种群内部适应度最高的 两个个体进行交叉扰动, 然后对比交叉前后个体的 适应度值, 选择适应度值较高的个体进行下一次迭 代。拉普拉斯密度函数和交叉计算公式如下:
f ( x ) = 1 2 b e − ∣ x − a ∣ b ( 13 ) U 1 i = x 1 i + β ∣ x 1 i − x 2 i ∣ ( 14 ) U 2 i = x 2 i + β ∣ x 1 i − x 2 i ∣ ( 15 ) \begin{gathered} f(x)=\frac{1}{2 b} \mathrm{e}^{-\frac{|x-a|}{b}} \quad (13)\\ U_{1 i}=x_{1 i}+\beta\left|x_{1 i}-x_{2 i}\right| \quad (14)\\ U_{2 i}=x_{2 i}+\beta\left|x_{1 i}-x_{2 i}\right|\quad (15) \end{gathered} f(x)=2b1ebxa(13)U1i=x1i+βx1ix2i(14)U2i=x2i+βx1ix2i(15)
式中: U 1 i U_{1 i} U1i U 2 i U_{2 i} U2i 为拉普拉斯算子交叉后产生的子代 个体的位置; a ∈ R a \in R aR 为位置参数; b b b 为尺度参数; x 1 i x_{1 i} x1i x 2 i x_{2 i} x2i 分别为解空间中适应度最高的两个个体的位置; β \beta β 为分布随机数。

算法步骤:

Step 1: 初始化参数, 包括最大迭代次数 T T T 、种群 个体数 N N N 、目标函数的维数 D D D 、初始值上下界 l b 、 u b \mathrm{lb} 、 \mathrm{ub} lbub
Step 2: 利用精英混沌反向学习策略初始化种 群, 随机初始化生成个体数为 N N N 的哈里斯鹰种群 X = [ x i 1 , ⋯   , x i d ] , i = 1 , ⋯   , N , x i d \boldsymbol{X}=\left[x_{i 1}, \cdots, x_{i d}\right], i=1, \cdots, N, x_{i d} X=[xi1,,xid],i=1,,N,xid 表示第 i i i 只鹰在第 d d d 维的位置; 将种群 X \boldsymbol{X} X 代人式 (8), 对每一个个体在每 一维的位置进行迭代,生成均匀分布的混沌序列 Y Y Y; 将种群 X X X 代人式 (10) 得到小孔成像反向种群 Z Z Z, 根 据个体适应度对种群 Y Y Y Z Z Z 进行排序, 选择前 N N N 个 适应度较大的个体组成种群 P P P; 将哈里斯鹰种群 X \boldsymbol{X} X 和种群 P P P 按个体适应度从高到低进行排列, 选择前 N N N 个个体重新组成初始种群 X ′ \boldsymbol{X}^{\prime} X

Step 3 : 更新 E 0 E_0 E0 J J J 值,根据式 (11)计算猎物非线 性逃逸能量 E E E, 实现全局探索和局部搜索的转换。

Step 4: 当 ∣ E ∣ ⩾ 1 |E| \geqslant 1 E1 时,算法执行全局探索过程, 利用式 (1) 更新种群的位置。

Step 5 : 当 ∣ E ∣ < 1 |E|<1 E<1 时,算法执行局部开发过程,为 避免算法陷人局部极值空间,利用拉普拉斯交叉算 子策略对软围捕和硬围捕情况下种群最优和次优个 体的位置信息进行两种更新策略:

(1) 若 ∣ E ∣ ⩾ 0.5 |E| \geqslant 0.5 E0.5 r ⩾ 0.5 r \geqslant 0.5 r0.5 时, 算法执行软围捕策 略, 利用式 (3) 更新哈里斯鹰的位置; 若 ∣ E ∣ ⩾ 0.5 |E| \geqslant 0.5 E0.5 r < 0.5 r<0.5 r<0.5 时, 执行快速俯冲式软围捕, 利用式 (5) 和式 (6) 更新哈里斯鹰位置, 并采用式 (14)、式 (15) 对 两种策略下的解空间进行拉普拉斯算子交叉,更新 种群最优位置。
(2)若 ∣ E ∣ < 0.5 |E|<0.5 E<0.5 r ⩾ 0.5 r \geqslant 0.5 r0.5 时,算法执行硬围捕策 略, 利用式 (4) 更新哈里斯鹰的位置; 若 ∣ E ∣ < 0.5 |E|<0.5 E<0.5 r < 0.5 r<0.5 r<0.5 时, 执行快速俯冲式硬围捕, 利用式 ( 7) 对哈 里斯鹰位置进行更新, 并采用式 (14)、式 (15) 对两 种策略下的解空间进行拉普拉斯算子交叉,更新种 群最优位置。

Step 6: 比较整个搜索范围内所有个体的适应度 值, 不断更新当前全局最优解, 判断是否达到最大迭代次数 T T T, 若满足条件, 则转至步骤 7 , 否则转至步骤 2 。 Step 7:输出最优适应度和位置 X rabbit  X_{\text {rabbit }} Xrabbit 

3.实验结果

在这里插入图片描述

4.参考文献

[1]展广涵,王雨虹,刘昊.混合策略改进的哈里斯鹰优化算法及其应用[J].传感技术学报,2022,35(10):1394-1403.

5.Matlab代码

6.python代码

猜你喜欢

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