融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法
文章目录
摘要:针对蝴蝶优化算法求解精度不高、收敛速度较慢等问题,提出融合正弦余弦和无限折叠迭代混沌映射(ICMIC)的蝴蝶优化算法.首先,采用ICMIC映射对蝴蝶个体状态进行初始化,避免算法陷入局部最优.然后,在自身认知飞行部分引入正弦余弦算子,平衡算法的局部搜索能力与全局搜索能力.最后,通过改进依赖香味大小的幂指数调整吸收程度,获取更好的最优解。
1.蝴蝶优化算法
基础蝴蝶优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107855860
2. 改进蝴蝶优化算法
2.1 无限折叠迭代混沌映射的种群初始化
蝴蝶种群初始状态的微小变化可能将随后的模 拟引向完全不同的最终结果, 所以蝴蝶群体的初始 化对 BOA 的收敛速度和寻优精度至关重要. 蝴蝶群 体的初始状态由于无先验知识可用, 一般采用随机 生成.而混池
[
17
]
{ }^{[17]}
[17] 在数学上定义为简单确定性系统产 生的随机性, 使用混池变量进行优化搜索可将初始 种群均匀分布在搜索空间, 可能比使用随机变量进 行随机搜索更具优势
[
18
]
[18]
[18].
混池的遍历性和随机性可避免搜索过程陷入局 部极小, 通过这种方法, 使蝴蝶种群初始状态具有较 好的多样性, 防止 BOA 陷入局部解和过早收敛, 提 高全局收敛性和精度. 本文采用 ICMIC
[
14
]
{ }^{[14]}
[14] 映射初始 化蝴蝶优化算法的种群, 基本思想是通过映射关系 在
[
0
,
1
]
[0,1]
[0,1] 内产生混池序列, 再将混池序列转化至个 体的搜索空间.ICMIC 映射的数学表达如下:
x
n
+
1
=
sin
(
α
π
x
n
)
(2)
x_{n+1}=\sin \left(\frac{\alpha \pi}{x_{n}}\right) \tag{2}
xn+1=sin(xnαπ)(2)
其中,
α
∈
(
0
,
1
)
\alpha \in(0,1)
α∈(0,1) 为控制参数, 只有当
α
>
0.6
\alpha>0.6
α>0.6 时才 能获得良好的混池序列, 因此本文设定
α
=
0.7
\alpha=0.7
α=0.7.
ICMIC 映射对初始值的选取非常敏感, 选取
d
d
d 个具有微小差异的初始值, 可得到
d
d
d 个混池序列
y
h
i
y_{h}^{i}
yhi. 再将
d
d
d 个混池序列
y
h
i
y_{h}^{i}
yhi 逆映射至相应的个体搜索空 间,得到变量
x
h
i
=
l
b
i
+
y
h
i
(
u
b
i
−
l
b
i
)
,
x_{h}^{i}=l b_{i}+y_{h}^{i}\left(u b_{i}-l b_{i}\right),
xhi=lbi+yhi(ubi−lbi),
其中,
[
l
b
i
,
u
b
i
]
\left[l b_{i}, u b_{i}\right]
[lbi,ubi] 为
x
h
i
x_{h}^{i}
xhi 的搜索范围.
2.2 正弦余弦算子
在蝴蝶优化算法中,种群的花蜜源位置具有重要作用, 引导蝴蝶个体向最优解移动, 但若种群陷入 局部最优位置, 容易导致群体出现搜索停止的现象, 无法获得更优的全局最优解. 为了平衡
B
O
A
\mathrm{BOA}
BOA 的局部 搜索能力与全局搜索能力, 本文在算法的自身认知 飞行部分引入正弦余弦算子
[
19
]
{ }^{[19]}
[19], 核心思想是通过数 学函数的变化改变蝴蝶种群的个体状态, 使种群在 前期保持多样性, 进行全局搜索, 后期个体趋于局部 开发, 最终收敛于全局最优位置. 引入正弦余弦算子 后的位置更新公式如下:
x
i
t
=
{
x
i
t
r
4
sin
r
5
+
f
i
(
r
1
2
g
best
−
x
i
t
)
,
r
3
⩽
P
x
i
t
r
4
cos
r
5
+
f
i
(
r
2
2
x
j
t
−
x
k
t
)
,
r
3
>
P
(3)
x_{i}^{t}= \begin{cases}x_{i}^{t} r_{4} \sin r_{5}+f_{i}\left(r_{1}^{2} g_{\text {best }}-x_{i}^{t}\right), & r_{3} \leqslant P \\ x_{i}^{t} r_{4} \cos r_{5}+f_{i}\left(r_{2}^{2} x_{j}^{t}-x_{k}^{t}\right), & r_{3}>P\end{cases} \tag{3}
xit={xitr4sinr5+fi(r12gbest −xit),xitr4cosr5+fi(r22xjt−xkt),r3⩽Pr3>P(3)
其中:
r
3
r_{3}
r3 为
[
0
,
1
]
[0,1]
[0,1] 内的随机数;
P
P
P 为开关概率, 决定算 法更新公式的选择;
r
5
r_{5}
r5 为
[
0
,
2
π
]
[0,2 \pi]
[0,2π] 内的随机数, 定义 当前解应该靠近目标还是远离目标;
r
4
sin
r
5
r_{4} \sin r_{5}
r4sinr5 和
r
4
cos
r
5
r_{4} \cos r_{5}
r4cosr5 共同控制算法进行局部搜索和全局搜索, 在
r
4
sin
r
5
r_{4} \sin r_{5}
r4sinr5 和
r
4
cos
r
5
r_{4} \cos r_{5}
r4cosr5 的值大于 1 或小于
−
1
-1
−1 时, 开发不同的区 域进行全局搜索, 在
−
1
-1
−1 和 1 之间时, 开发期望的搜 索空间进行局部搜索,
r
4
r_{4}
r4 为控制参数, 决定下一次迭 代时第
i
i
i 只蝴蝶个体的位置区域,
r
4
=
δ
−
t
δ
T
,
r_{4}=\delta-t \frac{\delta}{T},
r4=δ−tTδ,
δ
\delta
δ 为常数
2
[
19
]
,
t
2^{[19]}, t
2[19],t 为当前迭代次数,
T
T
T 为最大迭代次数.
2.3参数 a 的改进
在 BOA 中, 根据刺激的物理强度表述香味大小
f
f
f, 决定整个算法的寻优能力.从 BOA 可知, 有时随着 刺激强度
I
I
I 的增强, 蝴蝶种群个体对刺激变化的敏 感度降低, 此时要求香味大小
f
f
f 随蝴蝶吸收程度的 变化而变化, 吸收程度是通过幂指数参数
a
a
a 实现. 当
a
=
1
a=1
a=1 时意味着没有香味被吸收, 即相当于香味是在 理想环境中传播, 可从搜索域的任何地方感觉蝴蝶 散发的香味, 容易取得全局最优值.
a
=
0
a=0
a=0 表示任何蝴 蝶发出的香味都无法被其它蝴蝶察觉. 因此,
a
a
a 控制 算法中蝴蝶个体的行为, 影响整个算法的收玫速度 和寻优精度. 在
B
O
A
\mathrm{BOA}
BOA 中
a
=
0.1
a=0.1
a=0.1, 通过验证, 依赖于香 味大小
f
f
f 的幂指数
a
a
a 采用如下更新公式, BOA能获得 更佳的寻优性能:
a
(
t
)
=
a
max
(
a
max
−
a
min
)
(
T
−
t
T
)
.
a(t)=a_{\max }\left(a_{\max }-a_{\min }\right)\left(\frac{T-t}{T}\right) .
a(t)=amax(amax−amin)(TT−t).
其中:
a
max
、
a
min
a_{\text {max }} 、 a_{\text {min }}
amax 、amin 分别表示幂指数系数
a
a
a 的最大值和最 小值, 根据
B
O
A
\mathrm{BOA}
BOA, 本文定义
a
max
=
0.3
,
a
min
=
0.01
,
a
a_{\text {max }}=0.3, a_{\text {min }}=0.01, a
amax =0.3,amin =0.01,a 值 从
0.3
0.3
0.3 线性递减到
0.01
0.01
0.01, 可有效调节蝴蝶对于香味的 吸收程度, 便于蝴蝶个体更好地进行局部搜索和全 局搜索, 提高收敛精度;
t
t
t 表示当前迭代次数;
T
T
T 表示 最大迭代次数.香味大小
f
f
f 的更新公式如下:
f
=
c
I
a
(
t
)
,
f=c I^{a(t)},
f=cIa(t),
其中,
I
I
I 为刺激强度, 与寻优适应度有关,
c
c
c 为感官因 子, 通常取值为
0.01
0.01
0.01.
3.实验结果
4.参考文献
[1]王依柔,张达敏.融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法[J].模式识别与人工智能,2020,33(07):660-669.