融合混沌对立和分组学习的海洋捕食者算法
文章目录
摘要:针对海洋捕食者算法存在收敛速度慢,不易逃出局部最优的缺点,提出了一种改进海洋捕食者算法。首先,将混沌映射与对立学习策略相结合,在保证遍历性和随机性的同时,生成高质量的初始猎物种群。其次,引入自适应t分布变异算子更新种群,增加种群多样性,避免陷入局部最优。对更新后的种群,按照适应度分为精英组和学习组,学习组向精英组猎物的平均维度进行学习,精英组内的猎物相互维度学习,进一步提高种群质量和搜索精度。
1.海洋捕食者算法
基础海洋捕食者算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/118468662
2.改进海洋捕食者算法
2.1 加入混沌对立学习策略
混沌映射是一种非线性理论, 具有非线性、普适 性、遍历性和随机性的特点, 可以按自身的特性在一 定范围内不重复地遍历所有状态, 在智能算法优化中 能帮助生成新的解, 增加种群多样性, 因而被广泛应 用
[
11
]
{ }^{[11]}
[11] 。 Tent 映射迭代速度快, 混沌序列在
[
0
,
1
]
[0,1]
[0,1] 之间均 匀分布,其表达式如下:
λ
t
+
1
=
{
λ
t
/
α
,
λ
t
∈
[
0
,
α
)
(
1
−
λ
t
)
/
(
1
−
α
)
,
λ
t
∈
[
α
,
1
]
t
=
0
,
1
,
2
,
⋯
,
T
(
13
)
\lambda_{t+1}=\left\{\begin{array}{c} \lambda_t / \alpha, \lambda_t \in[0, \alpha) \\ \left(1-\lambda_t\right) /(1-\alpha), \lambda_t \in[\alpha, 1] \end{array} \quad t=0,1,2, \cdots, T(13)\right.
λt+1={λt/α,λt∈[0,α)(1−λt)/(1−α),λt∈[α,1]t=0,1,2,⋯,T(13)
其中,
λ
t
\lambda_t
λt 是第
t
t
t 次迭代时产生的混沌数,
T
T
T 是最 大迭代次数,
α
\alpha
α 是介于
[
0
,
1
]
[0,1]
[0,1] 的常数, 本文选取
α
=
0.7
\alpha=0.7
α=0.7 。
在解决问题的时候, 考虑到无效解决方案的对立 侧可能存在更好的解决方案, Tizhoosh 等人提出了对 立学习策略(Opposition-based learning,OBL)
[
12
]
{ }^{[12]}
[12], 近年 来 OBL 已经有效地应用于各种群智能算法中。在群智 能算法初始化种群的过程中, 随机生成的部分个体往 往会分布在远离最优解的无效区域和边缘区域, 进而 降低了种群的搜索效率。采用 OBL 策略, 在种群初始 化中引人一个随机解及其对立解要比引人两个独立的 随机解更能提高初始种群的质量。假设某个
d
d
d 维个体 位置为:
Δ
=
{
x
1
,
x
2
,
…
,
x
d
}
(14)
\Delta=\left\{x_1, x_2, \ldots, x_d\right\} \tag{14}
Δ={x1,x2,…,xd}(14)
设其个体位置的下界和上界分别为
l
b
,
u
b
l b, u b
lb,ub, 则其 对立侧位置可以表示为:
Δ
ˉ
=
{
x
ˉ
1
,
x
ˉ
2
,
…
,
x
ˉ
d
}
(
15
)
x
ˉ
j
=
l
b
j
+
u
b
j
−
x
j
(
16
)
\begin{array}{r} \bar{\Delta}=\left\{\bar{x}_1, \bar{x}_2, \ldots, \bar{x}_d\right\}(15) \\ \bar{x}_j=l b_j+u b_j-x_j(16) \end{array}
Δˉ={xˉ1,xˉ2,…,xˉd}(15)xˉj=lbj+ubj−xj(16)
但是, 在目标函数上下界限对称的时候, 由公 式(16)可看出, 所生成的反向解为原来解的完全镜 像 (取负), 对部分具有偶函数特性的函数, 完全镜 像解与原解目标值一致, 不适合将两个种群做适应 度排序, 无法有效获得高质量种群。
本文将 Tent 混沌映射与
O
B
L
\mathrm{OBL}
OBL 相结合, 提出了一 种新的 TOBL ( Tentand Opposition-based learning ) 机 制。 TOBL 的数学模型如下:
X
ˉ
i
,
j
=
l
b
j
+
u
b
j
−
λ
i
⊗
X
i
,
j
i
=
1
,
…
,
n
(
17
)
\bar{X}_{i, j}=l b_j+u b_j-\lambda_i \otimes X_{i, j} i=1, \ldots, n(17)
Xˉi,j=lbj+ubj−λi⊗Xi,ji=1,…,n(17)
其中,
X
ˉ
i
,
j
\bar{X}_{i, j}
Xˉi,j 为第
i
i
i 个猎物对立位置的第
j
j
j 维分量。 TOBL 策略相当于以目标函数上下界限的和为中 心, 利用 Tent 的均匀变化, 来动态压缩原初始种群的 分布范围, 并在压缩的同时尽量让种群均匀。
2.2 加入自适应 t 分布
基本 MPA 中, 猎物更新完位置以后, 需要检测 和更新顶级捕食者的位置, 并进行一次海洋记忆存储, 接下来再考虑 FADs 的影响, 对猎物的位置做进一步 更新。
为了保证此次记忆存储更加有效, 引人自适应
t
\mathrm{t}
t 分布算子, 在模拟 FADs 的影响之前, 对猎物的位置 进行变异, 如果变异后的位置更佳, 则代替原来的位 置。数学模型如下:
X
i
′
=
X
i
+
X
i
⋅
t
(
Iter
)
(18)
X_i^{\prime}=X_i+X_i \cdot t(\text { Iter }) \tag{18}
Xi′=Xi+Xi⋅t( Iter )(18)
其中,
X
i
′
X_i^{\prime}
Xi′ 为第
i
i
i 个猎物变异后的位置,
t
(
t(
t( Iter
)
)
) 为 以当前迭代次数为自由度的
t
\mathrm{t}
t 分布。在迭代初期, 迭 代次数较少,
t
\mathrm{t}
t 分布近似于柯西分布, 分布的更加平滑。 此时,
t
\mathrm{t}
t 分布算子在大概率上取到较大值, 位置变异所 采取的步长较大, 算法具有良好的全局探索能力, 与 MPA 第一阶段的全局搜索特性形成正反馈; 在迭代中 期, 一半的捕食者用于全局探索,另一半的捕食者用 于局部开发, 而此时
t
\mathrm{t}
t 分布介于柯西分布和正态分布 之间,
t
\mathrm{t}
t 分布算子在大概率上取值相对折中, 同时兼顾 了 MPA 第二阶段的全局搜索和局部开发, 使捕食者 更容易返回到猎物丰富的地区并成功受食, 进而对算 法性能形成正反馈; 在迭代后期,
t
\mathrm{t}
t 分布近似于标准正 态分布, 分布的更加集中,
t
\mathrm{t}
t 分布算子在大概率上取较 小值, 置变异所采取的步长较小, 兼顾了 MPA 第三 阶段的局部开发特性。
2.3 加入分组维度学习策略
在算法迭代过程中, 有些猎物位置的某些维度实 际上可能早已达到了最优维度, 由于其中个别维度的 影响, 使得这些猎物位置的适应度变差 [ 14 ] { }^{[14]} [14] 。为了能在 海洋里生存下去, 位置差的猎物(捕食者)需要向位 置好的猎物 (捕食者)学习捕食本领, 基于这个思想, 提出了一种分组维度学习的策略。将 FADs 影响后的 猎物按照适应度排序平均分成两组, 适应度好的一组 称为精英组, 适应度差的一组称为学习组 [ 15 ] { }^{[15]} [15] 。
学习组维度交叉策略
由于精英组的维度各有优劣, 所以将精英组的位 置维度取平均值, 学习组的每一个猎物都向精英组平 均维度进行学习。该策略将学习组每个猎物的每一维 度同精英组平均维度值做差, 按照绝对差异大的优先 交叉原则, 取绝对差异大的前
H
1
H_1
H1 个对应维度逐一交叉, 如果交叉后猎物的适应度更好, 则交叉对应维度, 反 之则不交叉。该策略的数学模型为:
Δ
X
L
,
i
k
=
∣
X
L
,
i
k
−
X
J
A
V
G
k
∣
(
19
)
X
L
,
i
=
{
X
L
,
i
k
,
crass
,
f
(
X
L
,
i
k
,
crass
)
is better than
f
(
X
L
,
i
)
X
L
,
i
,
otherwise
(
20
)
\begin{gathered} \Delta X_{L, i}^k=\left|X_{L, i}{ }^k-X_{J A V G}^k\right|(19) \\ X_{L, i}= \begin{cases}X_{L, i}^{k, \text { crass }}, & f\left(X_{L, i}^{k, \text { crass }}\right) \text { is better than } f\left(X_{L, i}\right) \\ X_{L, i}, & \text { otherwise }\end{cases}(20) \end{gathered}
ΔXL,ik=∣
∣XL,ik−XJAVGk∣
∣(19)XL,i={XL,ik, crass ,XL,i,f(XL,ik, crass ) is better than f(XL,i) otherwise (20)
其中,
X
L
,
i
X_{L, i}
XL,i 表示学习组第
i
i
i 个猎物位置,
X
L
,
i
k
,
c
r
a
s
s
X_{L, i}^{k, c r a s s}
XL,ik,crass 表示和精英组平均维度值第
k
k
k 维交叉后的第
i
i
i 个猎物 位置,
Δ
X
L
,
i
k
\Delta X_{L, i}{ }^k
ΔXL,ik 表示学习组第
i
i
i 个猎物第
k
k
k 维和精英组平均维度第
k
k
k 维的绝对差异,
X
J
A
V
G
k
X_{J A V G}^k
XJAVGk 表示精英组平均值的 第
k
k
k 维。
精英组维度交叉策略
精英组整体离全局最优点相对较近, 所以不适合 全部维度的扰动变异, 这样会导致精英在最优解附近徘 徊, 影响收玫精度。所以, 令精英组的猎物相互之间取长补短, 在保留自己优势维度的前提下, 向相邻的 猎物进行学习。该策略交叉原则和学习组猎物交叉原 则相同, 只是将交叉对像, 由精英组平均维度值更换 为与该猎物相邻的前一个猎物, 设精英组每个猎物取 绝对差异大的前
H
2
H_2
H2 个相邻对应维度逐一交叉。
MSIMPA 算法实现步骤
步骤 1 由公式(14)-(17)对猎物的位置进行 混沌对立初始化, 并设置相关参数:种群规模、 最大迭代次数、FADs 等。
步骤 2 计算每个猎物适应度值, 并将适应 度值进行比较、替换, 由最佳猎物构成顶级捕 食者矩阵, 并进行海洋记忆存储。
步骤 3 由公式(3)-(11)更新猎物位置和移 动步长。
步骤 4 由公式(18)的
t
\mathrm{t}
t 分布变异算子进行 位置扰动更新, 并保留最佳位置。
步骤 5 重新计算每个猎物适应度值, 并将 适应度值进行比较、替换,由最佳猎物构成顶级捕 食者矩阵, 并进行海洋记忆存储。
步骤 6 考虑 FADs 和漩浴的影响, 由公式(12) 进一步更新位置, 并保留最佳位置。
步骤 7 将更新后的种群按照适应度优劣均分 成学习组和精英组, 由公式(19)-(20)进行维度交叉, 交叉后适应度变好则交叉对应维度,反之则不 交叉。
步骤 8 判断算法是否满足迭代条件, 若满足, 则算法终止, 否则转至步骤 2 。
3.实验结果
4.参考文献
[1]马驰,曾国辉,黄勃,刘瑾.融合混沌对立和分组学习的海洋捕食者算法[J/OL].计算机工程与应用:1-14[2021-11-02].http://kns.cnki.net/kcms/detail/11.2127.TP.20210730.1554.011.html.