基础灰狼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107716390
反向学习策略是近年来计算智能领域出现的新概念
[
20
]
{ }^{[20]}
[20], 该策略可以增加种群的多样性, 从而 避免早熟现象, 其主要思想是对一个问题的可行解, 求其反向解, 并对原解和反向解进行评估, 从中选出较优的解作为下一代个体。
反向解:
假设当前种群的一个可行解为
X
=
(
x
1
,
x
2
,
⋯
,
x
d
)
,
(
d
X=\left(x_{1}, x_{2}, \cdots, x_{d}\right), \quad\left(d\right.
X=(x1,x2,⋯,xd),(d 维搜索空间;
x
i
∈
[
a
i
,
b
i
]
x_{i} \in\left[a_{i}, b_{i}\right]
xi∈[ai,bi] ), 则其反向 解为
X
ˉ
=
(
x
1
‾
,
x
2
‾
,
⋯
,
x
d
‾
)
\bar{X}=\left(\overline{x_{1}}, \overline{x_{2}}, \cdots, \overline{x_{d}}\right)
Xˉ=(x1,x2,⋯,xd) ,式中
x
j
‾
=
ω
(
a
j
+
b
j
)
−
x
j
,
ω
\overline{x_{j}}=\omega\left(a_{j}+b_{j}\right)-x_{j} , \omega
xj=ω(aj+bj)−xj,ω 为在
[
0
,
1
]
[0,1]
[0,1] 上均匀分布的系数。
精英反向学习(elite opposition-based learning, EOBL) 是通过当前问题的可行解构造其反向解, 以此来增加种群的多样性, 并从当前解和反向解中选取最优解作为新一代个体。
精英反向解:
(
i
=
1
,
2
,
3
,
⋯
,
s
;
j
=
1
,
2
,
⋯
,
d
)
(i=1,2,3, \cdots, s ; j=1,2, \cdots, d)
(i=1,2,3,⋯,s;j=1,2,⋯,d), 其反向解
X
i
,
j
e
‾
=
(
X
i
,
1
e
‾
,
X
i
,
2
e
‾
,
⋯
,
X
i
,
d
e
‾
)
\overline{X_{i, j}^{e}}=\left(\overline{X_{i, 1}^{e}}, \overline{X_{i, 2}^{e}}, \cdots, \overline{X_{i, d}^{e}}\right)
Xi,je=(Xi,1e,Xi,2e,⋯,Xi,de) 可以定义为:
X
i
,
j
e
‾
=
K
⋅
(
α
j
+
β
j
)
−
X
i
,
j
e
(12)
\overline{X_{i, j}^{e}}=K \cdot\left(\alpha_{j}+\beta_{j}\right)-X_{i, j}^{e} \tag{12}
Xi,je=K⋅(αj+βj)−Xi,je(12)
式中:
K
K
K 为
(
0
,
1
)
(0,1)
(0,1) 上的动态系数;
X
i
,
j
e
∈
[
α
j
,
β
j
]
,
α
j
=
min
(
X
i
,
j
)
,
α
i
X_{i, j}^{e} \in\left[\alpha_{j}, \beta_{j}\right], \alpha_{j}=\min \left(X_{i, j}\right), \alpha_{i}
Xi,je∈[αj,βj],αj=min(Xi,j),αi 、
β
j
\beta_{j}
βj 为动态边界, 动态边界 克服了固定边界难以保存搜索经验的缺点, 使精英反向解可以在狭窄的空间中进行搜索, 不易陷 于局部最优。若动态边界操作使
X
i
,
j
e
X_{i, j}^{e}
Xi,je 越过边界成为非可行解, 可以利用随机生成的方法重置, 重 置方式如下:
X
i
,
j
e
‾
=
rand
(
α
j
,
β
j
)
(13)
\overline{X_{i, j}^{e}}=\operatorname{rand}\left(\alpha_{j}, \beta_{j}\right)\tag{13}
Xi,je=rand(αj,βj)(13)
由 GWO 算法的搜索机制知道, 当
A
≥
1
A \geq 1
A≥1 时, 狼群不断扩大包围范围, 此时算法在进行全局搜 索; 而当
A
<
1
A<1
A<1 时, 狼群将缩小包围范围, 对猎物展开攻击, 说明算法进行局部精确搜索。系数
A
A
A 调节 GWO 算法的寻优能力, 换句换说 GWO算法的全局搜索和局部寻优取决于收敛因子
a
a
a 的变化, 由于算法搜索过程复杂, 收敛因子
a
a
a 随迭代次数增加线性递减, 该更新方法很难适应实际搜索情 况, 并不能完全说明实际收敛寻优过程, 在全局搜索和局部寻优之间得不到有力协调。因此, 本文采用非线性调整的策略即:
a
=
a
initial
−
(
a
initial
−
a
final
)
⋅
exp
(
t
/
t
max
−
1
)
(14)
a=a_{\text {initial }}-\left(a_{\text {initial }}-a_{\text {final }}\right) \cdot \exp \left(t / t_{\text {max }}-1\right) \tag{14}
a=ainitial −(ainitial −afinal )⋅exp(t/tmax −1)(14)
a
a
a 随着迭代次数不断增加呈现非线性动态变化, 相比较线性变化有效地平衡算法的全局搜索能 力和局部寻优能力, 进而提高算法的寻优性能。
由公式(11)可以看出, GWO 算法后期对灰狼位置进行更新时朝着历史最优位置移动, 从而 缺失种群多样性, 即使该更新原则具有较好的开发能力, 但是搜索能力有待提高, 容易陷入局部 最优。为进一步平衡 GWO 算法的全局搜索能力和局部寻优能力, 受差分进化算法的启发, 再结 合
G
W
O
\mathrm{GWO}
GWO 算法的更新原则, 本文设计出一种新的位置更新公式为
X
(
t
+
1
)
=
r
1
(
X
1
−
X
t
)
+
r
2
(
X
2
−
X
t
)
+
r
3
(
X
3
−
X
t
)
3
(15)
X(t+1)=\frac{r_{1}\left(X_{1}-X_{t}\right)+r_{2}\left(X_{2}-X_{t}\right)+r_{3}\left(X_{3}-X_{t}\right)}{3}\tag{15}
X(t+1)=3r1(X1−Xt)+r2(X2−Xt)+r3(X3−Xt)(15)
式中:
r
1
,
r
2
∈
[
0
,
1
]
r_{1}, r_{2} \in[0,1]
r1,r2∈[0,1] 的随机数;
X
1
、
X
2
、
X
3
X_{1} 、 X_{2} 、 X_{3}
X1、X2、X3 分别表示
α
、
β
、
δ
\alpha 、 \beta 、 \delta
α、β、δ 狼所经历的最佳位置。
X
t
X_{t}
Xt 为群体中 任一个体, 采用式(15)的更新方法产生新个体, 该方法有效帮助算法降低陷入局部最优的可能 性, 防止早熟现象的发生。
为了改善算法的搜索精度低, 收敛速度慢的缺陷, 本文结合精英反向学习策略达到增加种群 的多样性的目的, 使灰狼个体可以更广泛的分布于搜索空间的各个位置, 从而使算法的全局搜索 能力得到明显提高, 对参数
a
a
a 进行非线性变化, 以及改造位置更新公式, 提高算法的局部寻优能力。 因此, 改进的灰狼优化算法有效的平衡算法的全局搜索能力和局部寻优能力。具体算法描述如下: Step 1:设置相关参数
A
、
a
、
C
A 、 a 、 C
A、a、C; 种群规模
N
N
N; 最大迭代次数
T
max
T_{\max }
Tmax; 搜索维度
D
D
D; 搜索范围
[
l
b
,
u
b
]
\left[l_{\mathrm{b}}, u_{\mathrm{b}}\right]
[lb,ub]
Step 2:根据
2.1
2.1
2.1 节描述的精英反向学习策略进行种群个体的初始化。
Step 3: 计算灰狼个体的适应度值, 保存适应度值最好的前三匹狼记为
α
、
β
、
δ
\alpha 、 \beta 、 \delta
α、β、δ 。
Step 4:根据公式(3)、(4)、(14)依次对参数
C
、
A
、
a
C 、 A 、 a
C、A、a 进行更新。
Step 5:根据公式 (5) (7) 计算种群中灰狼个体与最优的前三匹狼
α
、
β
、
δ
\alpha 、 \beta 、 \delta
α、β、δ 的距离, 根据 公式(8) (10)更新当前灰狼位置, 根据公式(15)更新猎物位置。
Step 6:判断是否满足最大迭代次数, 若满足输出结果, 即为最优灰狼位置, 否则返回步骤 Step3。
[1]逯苗,何登旭,曲良东.非线性参数的精英学习灰狼优化算法[J/OL].广西师范大学学报(自然科学版):1-12[2021-07-25].https://doi.org/10.16088/j.issn.1001-6600.2020093002.