文章目录
一、理论基础
1、正余弦优化算法
请参考这里。
2、天牛须搜索算法
请参考这里。
3、融合改进天牛须和正余弦的优化算法
(1)引入自适应权重
受蚁群优化算法的启发,在正余弦优化算法的位置更新公式中引入动态自适应权重
w
w
w。随着正余弦优化算法迭代次数
t
t
t改变的自适应惯性权重如式(1)所示:
w
(
t
)
=
0.2
cos
(
π
2
⋅
(
1
−
t
T
)
)
(1)
w(t)=0.2\cos\left(\frac\pi2\cdot(1-\frac tT)\right)\tag{1}
w(t)=0.2cos(2π⋅(1−Tt))(1)其中,
T
T
T为最大迭代次数,
t
t
t为当前迭代次数。在正余弦中
引入自适应惯性权重之后,随着迭代次数的改变,每个位置上对下个寻优位置的影响将不再是固定的,而是由一种非线性的规律变化,对该函数分析可以看出,前期在寻找最优值中,权重较低,对下次更新位置影响较小,但是随着迭代次数的增加,权重会逐渐变大,这样之后的迭代位置变化范围就会逐渐变小,能够最大限度保证算法的收敛性。
(2)递减参数 r 1 r_1 r1的改变
为了进一步加强迭代后期局部搜索能力,用更加灵活的搜索方式寻找,引入动态变化的思想,将线性递减函数
r
1
r_1
r1变成指数型递减函数,同时引入余弦函数,提出了一种新的转换参数模型,表达式如下:
r
1
=
α
e
cos
(
π
⋅
t
T
+
t
)
(2)
r_1=\alpha e^{\cos(\pi\cdot\frac{t}{T+t})}\tag{2}
r1=αecos(π⋅T+tt)(2)其中,
α
\alpha
α为常数,本文取0.05。
引入自适应权重和指数型递减函数之后,正余弦算法位置更新公式如式(3):
X
i
t
+
1
=
{
w
(
t
)
⋅
X
i
t
+
r
1
×
sin
(
r
2
)
×
∣
r
3
P
i
t
−
X
i
t
∣
,
r
4
<
0.5
w
(
t
)
⋅
X
i
t
+
r
1
×
cos
(
r
2
)
×
∣
r
3
P
i
t
−
X
i
t
∣
,
r
4
≥
0.5
(3)
X_i^{t+1}=\begin{dcases}w(t)\cdot X_i^t+r_1×\sin(r_2)×|r_3P_i^t-X_i^t|,\, r_4<0.5\\w(t)\cdot X_i^t+r_1×\cos(r_2)×|r_3P_i^t-X_i^t|,\, r_4≥0.5\end{dcases}\tag{3}
Xit+1={w(t)⋅Xit+r1×sin(r2)×∣r3Pit−Xit∣,r4<0.5w(t)⋅Xit+r1×cos(r2)×∣r3Pit−Xit∣,r4≥0.5(3)
(3)变步长搜索机制
为了使天牛须搜索能够更好的在正余弦上寻优,结合动态变化思想,将其搜索的固定步长改为变步长搜索,变化步长为公式(4):
δ
t
=
s
1
×
(
s
0
s
1
)
T
T
+
10
t
(4)
\delta^t=s_1×\left(\frac{s_0}{s_1}\right)^{\frac{T}{T+10t}}\tag{4}
δt=s1×(s1s0)T+10tT(4)其中,
T
T
T为最大迭代次数,
s
0
s_0
s0和
s
1
s_1
s1为常数,本文取0.9和0.4,
t
t
t为当前迭代次数。经过天牛须的二次搜索得到的值为
X
∗
t
+
1
X_*^{t+1}
X∗t+1。
改进的天牛须算法对改进正余弦优化算法搜索出的最佳位置进行二次寻优,再在计算适应度值的基础上用贪婪策略判断两次位置最优情况,得到更新的位置。
根据贪婪策略来对搜索的值进行判断,具体公式如式(5)所示:
X
t
+
1
~
=
{
X
i
t
+
1
,
f
(
X
i
t
+
1
)
<
f
(
X
∗
t
+
1
)
X
∗
t
+
1
,
f
(
X
∗
t
+
1
)
<
f
(
X
i
t
+
1
)
(5)
\widetilde{X^{t+1}}=\begin{dcases}X_i^{t+1},f(X_i^{t+1})<f(X_*^{t+1})\\X_*^{t+1},f(X_*^{t+1})<f(X_i^{t+1})\end{dcases}\tag{5}
Xt+1
={Xit+1,f(Xit+1)<f(X∗t+1)X∗t+1,f(X∗t+1)<f(Xit+1)(5)其中,
f
(
X
)
f(X)
f(X)为在位置
X
X
X处求得的适应度函数,比较原正余弦位置和天牛须二次搜索位置的适应度值,若二次搜索更优则替换原位置,反之则不替换。
(4)算法流程图
二、仿真实验与分析
本文选取改进算法(BAS-SCA)与标准SCA、粒子群算法(PSO)、改进的抛物线函数正余弦算法(PSCA)和改进的指数正余弦算法(ESCA)作为比较对象进行实验。几种算法的参数设置相同:种群规模设置为30,最大迭代次数为500,每种算法都独立运行50次,函数维度为30。以文献[1]中的f1~f5为例。
结果显示如下:
函数:F1
SCA:最优值: 0.0015173,最差值:107.1038,平均值:16.4455,标准差:26.2158
PSO:最优值: 0.045929,最差值:0.3233,平均值:0.11933,标准差:0.060985
BAS-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
PSCA:最优值: 0.14138,最差值:521.7467,平均值:71.5145,标准差:110.2236
ESCA:最优值: 6.6098e-05,最差值:3.1276,平均值:0.43403,标准差:0.78649
函数:F2
SCA:最优值: 0.00026852,最差值:0.43915,平均值:0.023406,标准差:0.062639
PSO:最优值: 1.3672,最差值:7.2764,平均值:3.2122,标准差:1.3477
BAS-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
PSCA:最优值: 0.0033107,最差值:0.50267,平均值:0.11746,标准差:0.11901
ESCA:最优值: 1.5551e-06,最差值:0.0034327,平均值:0.00051028,标准差:0.00083077
函数:F3
SCA:最优值: 245.3718,最差值:20865.3343,平均值:8141.1753,标准差:4888.6753
PSO:最优值: 9.7541,最差值:63.5944,平均值:26.305,标准差:12.2649
BAS-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
PSCA:最优值: 781.5141,最差值:25654.2985,平均值:9949.071,标准差:6333.9848
ESCA:最优值: 177.3687,最差值:39844.1789,平均值:12117.2578,标准差:9543.3642
函数:F4
SCA:最优值: 5.5645,最差值:59.5933,平均值:35.3357,标准差:12.723
PSO:最优值: 0.87302,最差值:6.2476,平均值:3.0341,标准差:1.3389
BAS-SCA:最优值: 0,最差值:0,平均值:0,标准差:0
PSCA:最优值: 11.043,最差值:58.4541,平均值:36.121,标准差:10.9069
ESCA:最优值: 3.2674,最差值:86.2684,平均值:37.5128,标准差:18.1281
函数:F5
SCA:最优值: 121.5999,最差值:48208710.2849,平均值:5646772.1591,标准差:11617875.9485
PSO:最优值: 40.7983,最差值:4791.523,平均值:367.4966,标准差:741.8107
BAS-SCA:最优值: 28.8561,最差值:28.9922,平均值:28.9711,标准差:0.024156
PSCA:最优值: 12572.3135,最差值:463000496.9565,平均值:21160115.0306,标准差:72751412.6805
ESCA:最优值: 31.0039,最差值:66473656.0298,平均值:1810294.4613,标准差:9537173.7326
仿真结果表明,所提双重搜索优化算法BAS-SCA相较于其它现有优化算法,具有更高的寻优精度和更快的收敛速度。
三、参考文献
[1] 姚信威, 王佐响, 姚远, 等. 融合改进天牛须和正余弦的双重搜索优化算法[J]. 小型微型计算机系统, 2022, 43(8): 1644-1652.