融合互利共生和透镜成像学习的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,0≤Zk<a(1−Zk)/(1−a),a≤Zk≤1(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+(xU−xL)⋅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)×(Xbest−RMV×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)−w⋅r1(Xrabbit (t)−RMV×bf),q≥0.5(Xrabbit (t)−Xm(t))−r3(lb+r4(ub−lb)),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+(wmax−wmin)⋅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+bj−kxj(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)&&(r≥0.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)&&(r≥0.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.