一、理论基础
1、蝴蝶优化算法
请参考这里。
2、改进策略
(1)收敛因子
为进一步提高BOA算法的探索能力和收敛精度,受灰狼优化算法和樽海鞘群算法的启发,分别将其收敛因子
A
A
A和
c
1
c_1
c1引入BOA的全局搜索和局部搜索公式中,则改进后的全局计算公式为:
x
i
t
+
1
=
A
×
x
i
t
+
(
r
2
×
g
∗
−
x
i
t
)
×
f
i
(1)
x_i^{t+1}=A×x_i^t+(r^2×g^*-x_i^t)×f_i\tag{1}
xit+1=A×xit+(r2×g∗−xit)×fi(1)在迭代初期
A
A
A值变化范围较大以增强全局搜索,在迭代后期
A
A
A值变化范围较小以增强局部搜索,
A
A
A值变化范围如图1所示,其计算公式如下:
d
=
2
−
2
×
t
/
N
g
e
n
(2)
d=2-2\times t/Ngen\tag{2}
d=2−2×t/Ngen(2)
A
=
2
×
d
×
r
−
d
(3)
A=2×d×r-d\tag{3}
A=2×d×r−d(3)同理将非线性收敛因子
c
1
c_1
c1引入局部位置更新处,当
c
1
>
1
c_1>1
c1>1时,算法进行全局搜索,否则进行局部勘探,
c
1
c_1
c1随着迭代次数增加变化曲线如图2所示。则改进后的局部计算公式为:
x
1
=
x
i
t
+
c
1
×
(
r
2
×
x
j
t
−
x
k
t
)
×
f
i
(4)
x_1=x_i^t+c_1\times (r^2×x_j^t-x_k^t)\times f_i\tag{4}
x1=xit+c1×(r2×xjt−xkt)×fi(4)其中,
c
1
c_1
c1的计算公式如下:
c
1
=
2
×
exp
(
−
(
4
×
t
/
N
g
e
n
)
2
)
(5)
c_1=2\times\exp(-(4×t/Ngen)^2)\tag{5}
c1=2×exp(−(4×t/Ngen)2)(5)
(2)融合樽海鞘群领导者策略
鉴于樽海鞘群中领导者策略能较好地平衡全局搜索和局部勘探,领导者以食物源为目标不断搜索前进,于是考虑在局部搜索过程中融合其领导者策略来平衡算法的全局搜索和局部勘探,领导者计算公式如下:
x
2
=
{
g
j
∗
+
c
1
(
(
u
b
j
−
l
b
j
)
r
+
l
b
j
)
c
3
<
0.5
g
j
∗
−
c
1
(
(
u
b
j
−
l
b
j
)
r
+
l
b
j
)
c
3
≥
0.5
(6)
x_2=\begin{dcases}g_j^*+c_1((ub_j-lb_j)r+lb_j)\quad c_3<0.5\\g_j^*-c_1((ub_j-lb_j)r+lb_j)\quad c_3≥0.5\end{dcases}\tag{6}
x2={gj∗+c1((ubj−lbj)r+lbj)c3<0.5gj∗−c1((ubj−lbj)r+lbj)c3≥0.5(6)其中,
g
j
∗
g_j^*
gj∗表示食物源第
j
j
j维位置;
c
3
∈
[
0
,
1
]
c_3\in[0,1]
c3∈[0,1];
l
b
j
lb_j
lbj和
u
b
j
ub_j
ubj分别为变量范围第
j
j
j维的上下界。
于是在局部搜索过程中,BOA算法的局部算子与樽海鞘群中领导者机制同时探索,分别按式(4)和式(6)计算
x
1
x_1
x1和
x
2
x_2
x2,再按式(7)计算更新后的蝴蝶位置。
x
i
t
+
1
=
(
x
1
+
x
2
)
/
2
(7)
x_i^{t+1}=(x_1+x_2)/2\tag{7}
xit+1=(x1+x2)/2(7)
(3)CFSSBOA实施步骤
经过上述分析,CFSSBOA的实施过程如下:
步骤1 设置
a
,
b
,
c
a,b,c
a,b,c初值及种群规模、最大迭代次数、转换概率和获取相关函数等参数。
步骤2 在边界范围内随机初始化蝴蝶种群,求解目标函数值,并计算当前种群最优位置和最优解。
步骤3 判断算法是否终止,如果是,输出最优位置和最优解,否则进入步骤4。
步骤4 按式(2)和式(5)分别计算
d
d
d和收敛因子
c
1
c_1
c1,然后按原始算法计算每只蝴蝶的香味浓度
f
i
f_i
fi,按式(3)计算每只蝴蝶的收敛因子
A
A
A,若随机数小于转换概率,则按式(1)进行全局搜索;否则按式(4)和式(6)进行局部搜索。再进行越界处理和计算此时函数值,若较之前的优越,则替换种群、最优位置和最优解。
步骤5 更新感知形态
c
c
c。
步骤6 迭代次数加1,跳转至步骤3。
二、仿真实验与分析
为了检验CFSSBOA算法的性能,将其与BOA、SSA进行比较,以文献[1]中表1的f1、f2(单峰函数)、f8、f9(多峰函数)、f14、f15(固定维多峰函数)为例,其中非固定维函数维度为30。为了公平比较,所有算法的参数设置:种群规模为30,最大迭代次数为500,其余参数设置与原始论文相同。每种算法独立运行30次。
结果显示如下:
函数:F1
SSA:最优值: 2.6392e-08,最差值:4.0806e-07,平均值:1.0961e-07,标准差:8.9115e-08
BOA:最优值: 1.125e-11,最差值:1.4371e-11,平均值:1.2668e-11,标准差:8.072e-13
CFSSBOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F2
SSA:最优值: 0.03537,最差值:7.1554,平均值:2.157,标准差:1.911
BOA:最优值: 1.5043e-09,最差值:5.7807e-09,平均值:4.5023e-09,标准差:1.417e-09
CFSSBOA:最优值: 1.0799e-283,最差值:3.1792e-256,平均值:1.1989e-257,标准差:0
函数:F8
SSA:最优值: 0.0031022,最差值:3.1332,平均值:0.57101,标准差:0.61468
BOA:最优值: 9.3734e-12,最差值:1.26e-11,平均值:1.133e-11,标准差:8.1828e-13
CFSSBOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F9
SSA:最优值: 33.8286,最差值:102.4806,平均值:59.9959,标准差:17.4676
BOA:最优值: 0,最差值:202.3897,平均值:18.8317,标准差:57.192
CFSSBOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F14
SSA:最优值: 0.998,最差值:3.9683,平均值:1.5268,标准差:0.9645
BOA:最优值: 0.99801,最差值:2.2985,平均值:1.2001,标准差:0.40772
CFSSBOA:最优值: 0.998,最差值:3.9683,平均值:1.693,标准差:0.78778
函数:F15
SSA:最优值: 0.00030942,最差值:0.020363,平均值:0.0025573,标准差:0.0052802
BOA:最优值: 0.00031001,最差值:0.00093543,平均值:0.00040334,标准差:0.00012368
CFSSBOA:最优值: 0.00030752,最差值:0.00050373,平均值:0.00033773,标准差:5.055e-05
实验结果表明:采用综合改进策略的蝴蝶优化算法在收敛速度、寻优精度和鲁棒性方面具有一定优势。
三、参考文献
[1] 郑洪清, 彭石燕, 周永权. 融合收敛因子和樽海鞘群的蝴蝶优化算法[J]. 微电子学与计算机, 2021, 38(10): 28-34.