融合互利共生和透镜成像学习的哈里斯鹰优化算法-附代码

融合互利共生和透镜成像学习的HHO优化算法


摘要: 针对哈里斯鹰优化算法收敛速度慢、易陷入局部最优的问题,提出一种融合互利共生和透镜成像学习的哈里斯鹰优化算法(Improved Harris Hawk Optimization,IHHO)。首先,利用Tent混沌映射初始化种群,增加种群多样性,提高算法寻优性能;其次,在探索阶段融入一种互利共生思想,并引入非线性惯性因子,以增强种群信息交流,加快算法收敛速度;然后,提出一种透镜成像反向学习策略,对哈里斯鹰位置以一定概率进行扰动变异,提高算法跳出局部最优的能力。

1.哈里斯鹰优化算法

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

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

2.1 Tent 混沌初始化种群

为了使初始哈里斯鹰种群均匀分布在搜索空间 中, 考虑到 Tent 映射具有良好的遍历性, 利用 Tent 映射初始化种群。Tent 映射公式如下:
Z k + 1 = { Z k / a , 0 ≤ Z k < a ( 1 − Z k ) / ( 1 − a ) , a ≤ Z k ≤ 1 (13) Z_{k+1}=\left\{\begin{array}{c} Z_k / a, 0 \leq Z_k<a \\ \left(1-Z_k\right) /(1-a), a \leq Z_k \leq 1 \end{array}\right. \tag{13} Zk+1={ Zk/a,0Zk<a(1Zk)/(1a),aZk1(13)
式中: a a a 一般取 0.4 0.4 0.4 。将产生的混沌序列映射到解的搜 索空间内:
x i d = x L + ( x U − x L ) ⋅ z i d  (14)  x_{i d}=x_{\mathrm{L}}+\left(x_{\mathrm{U}}-x_{\mathrm{L}}\right) \cdot z_{i d} \text { (14) } xid=xL+(xUxL)zid (14) 
式中: x i d x_{i d} xid 为第 i i i 只哈里斯鹰在第 d d d 维的位置, x U x_{\mathrm{U}} xU x L x_{\mathrm{L}} xL 分 别为搜索空间的上下限, z i d z_{i d} zid 为式(13)产生的混沌序列。

2.2 融合互利共生思想

H H O \mathrm{HHO} HHO 算法在探索阶段会移动到随机选择的哈里 斯鹰位置附近, 种群位置的更新受随机性影响较大, 个体间缺乏信息交流,容易导致盲目搜索,造成算法 收敛速度下降, 寻优精度降低 [ 16 ] { }^{[16]} [16]
共生生物搜索算法(Symbiotic Organisms Search, S O S ) \mathrm{SOS}) SOS) 是 Cheng 等[17]于 2014 提出的一种基于生物学中 共生现象的启发式搜索算法。SOS 算法主要分为互利 阶段、共栖阶段和寄生阶段。在互利阶段, 两只个体 X i X_i Xi X j X_j Xj 保持着交互关系, 交互后的位置更新公式分别 由式(15)和式(16)表示。
X i new  = X i + rand ⁡ ( 0 , 1 ) × ( X best  − R M V × b f 1 ) ( 15 ) X_i^{\text {new }}=X_i+\operatorname{rand}(0,1) \times\left(X_{\text {best }}-R_{M V} \times b f_1\right)(15) Xinew =Xi+rand(0,1)×(Xbest RMV×bf1)(15)
X j n e w = X j + rand ⁡ ( 0 , 1 ) × ( X b e s t − R M V × b f 2 ) ( 16 ) R M V = ( X i + X j ) / 2 ( 17 ) \begin{array}{r} X_j^{n e w}=X_j+\operatorname{rand}(0,1) \times\left(X_{b e s t}-R_{M V} \times b f_2\right)(16) \\ R_{M V}=\left(X_i+X_j\right) / 2(17) \end{array} Xjnew=Xj+rand(0,1)×(XbestRMV×bf2)(16)RMV=(Xi+Xj)/2(17)
式中: X b e s t X_{b e s t} Xbest 为最优个体位置; b f 1 b f_1 bf1 b f 2 b f_2 bf2 为利益因子,
随机选择为 1 或 2 , 表示可能得到部分受益或完全受
益; R M V R_{M V} RMV 表示 X i X_i Xi X j X_j Xj 的交互关系。
考虑到 S O S \mathrm{SOS} SOS 在互利阶段, 两只个体间具有较强的 信息交流, 本文将当前个体与随机选择个体进行交互, 并加人最优哈里斯鹰进行引导搜索。在此基础上, 引 人惯性权重, 提出一种改进的探索阶段搜索策略, 公 式如下:
X ( t + 1 ) = { X ( t ) − w ⋅ r 1 ( X rabbit  ( t ) − R M V × b f ) , q ≥ 0.5 ( X rabbit  ( t ) − X m ( t ) ) − r 3 ( l b + r 4 ( u b − l b ) ) , q < 0.5 (18) X(t+1)=\left\{\begin{array}{c} X(t)-w \cdot r_1\left(X_{\text {rabbit }}(t)-R_{M V} \times b f\right), q \geq 0.5 \\ \left(X_{\text {rabbit }}(t)-X_m(t)\right)-r_3\left(l b+r_4(u b-l b)\right), q<0.5 \end{array}\right.\tag{18} X(t+1)={ X(t)wr1(Xrabbit (t)RMV×bf),q0.5(Xrabbit (t)Xm(t))r3(lb+r4(ublb)),q<0.5(18)
R M V = ( X ( t ) + X rand  ( t ) ) / 2 (19) R_{M V}=\left(X(t)+X_{\text {rand }}(t)\right) / 2 \tag{19} RMV=(X(t)+Xrand (t))/2(19)

式中: X rand  ( t ) X_{\text {rand }}(t) Xrand (t) 为随机选取的哈里斯鹰位置; r 1 r_1 r1 为 0 到 1 的随机数; b f b f bf 为利益因子; w w w 为惯性权重, 公式如下:
w = w min ⁡ + ( w max ⁡ − w min ⁡ ) ⋅ exp ⁡ ( − ( 2 t T ) 3 ) ( 20 ) w=w_{\min }+\left(w_{\max }-w_{\min }\right) \cdot \exp \left(-\left(\frac{2 t}{T}\right)^3\right)(20) w=wmin+(wmaxwmin)exp((T2t)3)(20)
其中, w max  w_{\text {max }} wmax  w min  w_{\text {min }} wmin  分别为惯性权重初值与终值。经大 量仿真测试, 当取 w max  = 1.2 , w min  = 0.4 w_{\text {max }}=1.2, w_{\text {min }}=0.4 wmax =1.2,wmin =0.4 时测试效果最佳。 式(18)中, R M V R_{M V} RMV 为当前个体与随机选择个体的交互 关系, 改进后哈里斯鹰会以最优位置 X r a b b i t ( t ) X_{r a b b i t}(t) Xrabbit(t) 和交互 关系 R M V R_{M V} RMV 为导向移动到当前位置附近。通过交互关系 与最优哈里斯鹰的引导, 当前个体与其它个体间的信 息交流更加丰富, 哈里斯鹰在探索阶段会根据收集到 的信息向全局最优位置探索, 避免了随机选择导致的 盲目搜索。非线性递减的惯性因子使得算法在探索前 期能够大范围搜索, 在探索后期缩小搜索范围, 同时 加快收敛速度。

2.3 透镜成像反向学习策略

基于透镜 成像原理的反向学习公式如下:
x j ∗ = a j + b j 2 + a j + b j 2 k − x j k (25) x_j^*=\frac{a_j+b_j}{2}+\frac{a_j+b_j}{2 k}-\frac{x_j}{k} \tag{25} xj=2aj+bj+2kaj+bjkxj(25)
式中: a j a_j aj b j b_j bj 分别为搜索空间中第 j j j 维的最小值与最 大值。 x j x_j xj 为当前个体在第 j j j 维的分量, x j ∗ x_j^* xj x j x_j xj 的透镜 反向解。

HHO 算法在迭代后期种群多样性降低,哈里斯鹰群体聚集在最优个体位置附近,当最优个体陷入局部最优时难以跳出局部极值空间区域,导致算法早熟,寻优精度下降。本文采用透镜成像学习策略对哈里斯鹰群体进行扰动, 以增强种群多样性, 提高算法跳出 局部最优的可能性。
调节因子 k k k 是影响透镜成像学习性能的一个重要 参数。考虑到较小的 k k k 值生成的反向解范围更大, 而 较大的 k k k 值能产生小范围内反向解, 结合 H H O \mathrm{HHO} HHO 算法 迭代前期大范围探索及迭代后期局部精细搜索的特点, 本文提出一种随迭代次数变化的调节因子:
k = ( 1 + ( t T ) 1 2 ) 10 (26) k=\left(1+\left(\frac{t}{T}\right)^{\frac{1}{2}}\right)^{10} \tag{26} k=(1+(Tt)21)10(26)
其中, t t t 为当前迭代次数, T T T 为最大迭代次数。由于式 (25)中 k k k 作为分母调节反向解, 随着迭代次数增加, k k k 值变大, 透镜成像反向学习的反向解范围越来越小, 这 种调节方式增强了算法迭代后期局部位置的精细搜索。
每次迭代都对哈里斯鹰群体进行扰动会增加算法 的运行成本。因此, 本文嵌人一种基于迭代次数和最 优适应度值的观测算子, 来观测算法是否陷人局部最 优,表达式如下:
β = f best  t + lg ⁡ ( t T ) 3 (27) \beta=f_{\text {best }}^t+\lg \left(\frac{t}{T}\right)^3 \tag{27} β=fbest t+lg(Tt)3(27)
其中, f best  t f_{\text {best }}^t fbest t 为第 t t t 次迭代最优适应度值。若随机数 rand ⁡ ( 0 , 1 ) < β \operatorname{rand}(0,1)<\beta rand(0,1)<β, 则认为算法已陷人局部最优, 此时对哈 里斯鹰群体进行透镜成像反向学习扰动; 否则不进行 透镜成像学习操作。式(27)中, 若 f best  t f_{\text {best }}^t fbest t 在迭代多次后末发生改变, 则认 为算法很大程度上陷人局部最优; 此时, 随着迭代次 数增加观测值 β \beta β 变大, 进行透镜成像反向学习扰动的 概率增加。若 f best  t f_{\text {best }}^t fbest t 随着迭代减小的速率小于 lg ⁡ ( t T ) 3 \lg \left(\frac{t}{T}\right)^3 lg(Tt)3 增 加的速率, 则认为算法有可能陷人局部最优, 相应的 β \beta β 也会缓慢增大, 有概率进行扰动; 反之, 若 f best  t f_{\text {best }}^t fbest t 减 小的速率大于 lg ⁡ ( t T ) 3 \lg \left(\frac{t}{T}\right)^3 lg(Tt)3 增加的速率, 则认为算法陷人局 部最优的可能性较小, 此时 β \beta β 的值变小, 降低了扰动 概率。
通过透镜成像反向学习产生的反向解, 不一定优 于原始解。因此, 引人贪婪选择策略, 选择是否将原 始解用反向解替代; 即只有当反向解的适应度值更优 时, 才进行替换。公式如下:
X ( t ) ′ = { X ( t ) ∗ , f ( X ( t ) ∗ ) < f ( X ( t ) ) X ( t ) , f ( X ( t ) ∗ ) ≥ f ( X ( t ) ) (27) X(t)^{\prime}=\left\{\begin{array}{c} X(t)^*, f\left(X(t)^*\right)<f(X(t)) \\ X(t), f\left(X(t)^*\right) \geq f(X(t)) \end{array}\right. \tag{27} X(t)={ X(t),f(X(t))<f(X(t))X(t),f(X(t))f(X(t))(27)
其中, X ( t ) ∗ X(t)^* X(t) 为反向解, X ( t ) ′ X(t)^{\prime} X(t) 为贪婪选择后的哈里斯鹰位置。
当算法陷人局部最优时, 通过观测触发算法产生 透镜成像学习反向解, 利用贪婪策略选择原始解与反 向解中适应度更优的个体, 从而生成位置更佳的哈里 斯鹰群体, 有效避免了迭代后期种群多样性下降, 算 法易早熟收玫的问题。

融合互利共生和透镜成像学习的哈里斯鹰优化算法描述如下:

输人: 搜索空间和目标函数
输出:最优解
01 )参数初始化(种群规模 N N N, 迭代次数 t t t 等)
02)根据式(13)和式(14)生成初始种群
03) while ( t < T ) (t<T) (t<T)
04)计算个体适应度值并排序, 找到最优个体
05 ) 05) 05) 根据式(26)计算 k k k 值, 根据式(27)计算 β \beta β
06) if rand < β <\beta <β
07) for i = 1 i=1 i=1 to N N N
08)根据式(25)计算第 i i i 只个体反向解 x ∗ x^* x
09 ) 09) 09) if f ( x ∗ ) < f ( x ) f\left(x^*\right)<f(x) f(x)<f(x)
10) x = x ∗ \quad x=x^* x=x 11) \quad end if
12) end for
13) 计算个体适应度值并排序, 找到最优个体
14)endif
15)根据式(3)计覚 E E E, 根据式(20)计算 w w w
16)for i = 1 i=1 i=1 to N N N
17) if abs ⁡ ( E ) ≥ 1 \operatorname{abs}(E) \geq 1 abs(E)1
18)根据式(18)更新种群位置
19) else
20) \quad if ( abs ⁡ ( E ) ≥ 0.5 ) & & ( r ≥ 0.5 ) (\operatorname{abs}(E) \geq 0.5) \& \&(r \geq 0.5) (abs(E)0.5)&&(r0.5)
21) 根据式 (4)更新种群位置
22) end if
23) if ( abs ⁡ ( E ) < 0.5 ) & & ( r ≥ 0.5 ) (\operatorname{abs}(E)<0.5) \& \&(r \geq 0.5) (abs(E)<0.5)&&(r0.5)
24) 根据式(6)更新种群位置
25) end if
26) if ( abs ⁡ ( E ) ≥ 0.5 ) & & ( r < 0.5 ) (\operatorname{abs}(E) \geq 0.5) \& \&(r<0.5) (abs(E)0.5)&&(r<0.5)
27) 根据式(7) (9)更新种群位置
28) end if
29) if ( abs ⁡ ( E ) < 0.5 ) & & ( r < 0.5 ) (\operatorname{abs}(E)<0.5) \& \&(r<0.5) (abs(E)<0.5)&&(r<0.5)
30) 根据式 ( 10 ) ∼ ( 12 ) (10) \sim(12) (10)(12) 更新种群位置
31) end if
33) end if
34) end for
36) end while

3.实验结果

请添加图片描述

4.参考文献

[1]陈功,曾国辉,黄勃,刘瑾.融合互利共生和透镜成像学习的HHO优化算法[J/OL].计算机工程与应用:1-14[2021-10-26].http://kns.cnki.net/kcms/detail/11.2127.TP.20210910.1049.010.html.

5.Matlab代码

6.python代码

猜你喜欢

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