融合互利共生和透镜成像学习的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.