文章目录
一、理论基础
1、多元宇宙优化算法
请参考这里。
2、改进的多元宇宙优化算法
为进一步提高算法性能,在保证提高算法收敛速度以及收敛精度的情况下,改善MVO算法勘探与开发过程不平衡即全局优化能力弱的缺陷,并降低改进算法使用多策略框架的复杂性,最大限度将每种学习策略发挥其最大性能,在保证所有参数与传统算法一致的情况下,本文从种群初始化、局部与全局优化三方面进行阐述,具体内容如下:
2.1 拉丁超立方种群初始化策略
请参考这里。
2.2 黄金分割协作机制(SGF)
针对多元宇宙算法迭代前后期螺旋机制特点,提出三种学习策略适用于算法前、中、后期搜索的分工框架,分别为正余弦修正因子(SC-MVO)、 高斯位移(GD-MVO)、分级反向学习(FOL-MVO),通过自适应参数调整三种策略的分工协作,降低改进算法使用多策略的复杂度。
2.2.1 正余弦修正因子
为增强算法前期局部优化能力,避免算法早熟,提出在宇宙位置更新引入适合算法早期搜索阶段的正余弦算子修正因子,其原理通过数学思想的曲线变化修正新宇宙轨迹,扩展算法前期种群活动范围保持多样性,进行全局勘探。使用正余弦算子后的位置更新公式如式(1): x i j = { { R 1 sin ( R 2 ) ⋅ ( x j + T D R ⋅ w j ) , r 3 < 0.5 R 1 cos ( R 2 ) ⋅ ( x j + T D R ⋅ w j ) , r 3 ≥ 0.5 r 2 < W E P x i j r 2 ≥ W E P (1) x_i^j=\begin{dcases}\begin{dcases}R_1\sin(R_2)\cdot(x_j+TDR\cdot w_j),\quad r_3<0.5\\R_1\cos(R_2)\cdot(x_j+TDR\cdot w_j),\quad r_3≥0.5\end{dcases}\quad r_2<WEP\\x_i^j\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\, r_2≥WEP\end{dcases}\tag{1} xij=⎩⎪⎨⎪⎧{R1sin(R2)⋅(xj+TDR⋅wj),r3<0.5R1cos(R2)⋅(xj+TDR⋅wj),r3≥0.5r2<WEPxijr2≥WEP(1)其中, r 2 r_2 r2为范围 [ 0 , 1 ] [0,1] [0,1]内的随机数, T D R TDR TDR与 W E P WEP WEP为算法模型的两大控制参数, W E P WEP WEP即虫洞存在可能性表示宇宙种群中虫洞存在比例,与迭代次数成正比关系; T D R TDR TDR即旅程距离速率表示当前宇宙绕当前最优宇宙的旅行距离比例,与迭代次数为反比关系; R 2 R_2 R2为 [ 0 , 2 π ] [0,2\pi] [0,2π]范围的随机数, R 1 R_1 R1为控制参数,决定着下一代宇宙个体的位置区域,为算法平衡前后期勘探和开发,对 R 1 R_1 R1做自适应改变,通过非线性曲线动态调整种群在算法前期的活动范围,改进内容具体如下: R 1 = exp ( 1 − sinh ( c ⋅ t T ) ) (2) R_1=\exp\left(1-\sinh\left(c\cdot\frac tT\right)\right)\tag{2} R1=exp(1−sinh(c⋅Tt))(2) c = W E P ⋅ T (3) c=WEP\cdot T\tag{3} c=WEP⋅T(3)改进后的 R 1 R_1 R1为非线性递减函数,前期下降迅速可以弥补传统MVO算法前期新宇宙个体易陷入局部最优缺陷,增大候选解移动步长,使新宇宙个体可以快速对空间进行搜索,加快收敛速度。
2.2.2 高斯位移
在当前最优宇宙个体的附近范围可以通过微尺度的位移偏差来进行搜索,提出高斯位移因子作为算法中期的主要搜索机制,更深入利用位置信息来更新最优宇宙个体位置进而提高算法收敛精度。 高斯位移因子搜索方案如下: ∂ = exp ( − t / T ) 2 (4) \partial=\exp(-t/T)^2\tag{4} ∂=exp(−t/T)2(4) x i j = g a u s s i a n ( x j , ∂ ) × ( a ⋅ x j − b ⋅ x i ) (5) x_i^j=gaussian(x_j,\partial)×(a\cdot x_j-b\cdot x_i)\tag{5} xij=gaussian(xj,∂)×(a⋅xj−b⋅xi)(5)其中, t t t和 T T T分别表示当前迭代与最大迭代次数, a a a、 b b b为服从均匀分布的随机数, g a u s s i a n gaussian gaussian表示高斯分布函数, x j x_j xj为当前最佳宇宙位置,通过高斯位移因子实现新个体不同尺度的遍历,提高算法搜索能力。
2.2.3 分级反向学习
在标准反向学习基础上,提出一种分级反向学习策略,针对产生的候选解的位置选择合适的反向学习,加快算法收敛速度。数学表示如下:
b
=
max
(
x
(
t
)
)
(6)
b=\max(x(t))\tag{6}
b=max(x(t))(6)
a
=
min
(
x
(
t
)
)
(7)
a=\min(x(t))\tag{7}
a=min(x(t))(7)
x
∗
(
t
)
=
r
a
n
d
×
(
(
b
−
a
)
/
t
−
x
(
t
)
)
(8)
x^*(t)=rand×((b-a)/t-x(t))\tag{8}
x∗(t)=rand×((b−a)/t−x(t))(8)其中,
t
t
t为当前迭代次数,
x
∗
(
t
)
x^*(t)
x∗(t)为
t
t
t代候选解的反向解,通过使用
分级反向学习,产生新的一组反向候选解,从而扩展了算法候选解的可选择范围,因此算法可以在更宽裕的搜索范围寻找更优质的新解决方案以在算法迭代后期提高算法收敛能力。
2.3 偏好游走莱维飞行
莱维飞行是一种源于混沌理论的非高斯步行模型,其主要原理模拟了自然界中昆虫的飞行行为,其飞行过程包括短距离开发和长距离勘探,其活动的多样性有效防止算法过早收敛,数学模型请参考这里。
本文对步长因子
α
\alpha
α进行自适应调整,使得步长因子随迭代次数进行自适应调整,变异后的莱维飞行以及步长因子,其数学描述如下:
α
(
t
)
=
exp
(
1
−
w
⋅
t
T
)
(9)
\alpha(t)=\exp\left(1-\frac{w\cdot t}{T}\right)\tag{9}
α(t)=exp(1−Tw⋅t)(9)
x
i
(
t
+
1
)
=
x
i
(
t
)
+
α
(
t
)
μ
×
σ
∣
v
∣
1
β
(
x
i
(
t
)
−
x
b
e
s
t
)
(10)
x_i(t+1)=x_i(t)+\alpha(t)\frac{\mu×\sigma}{|v|^{\frac1\beta}}(x_i(t)-x_{best})\tag{10}
xi(t+1)=xi(t)+α(t)∣v∣β1μ×σ(xi(t)−xbest)(10)其中,调节因子
w
w
w经多次实验取值20算法性能最佳,变异步长因子将莱维飞行距离根据迭代次数自适应调整,标准莱维飞行由于全局勘探能力强但局部开发能力稍显逊色,因此为平衡算法全局勘探与局部开发,选择斜率由大变小的非线性曲线,随着变化率变小的过程中,候选解在保留上代最佳宇宙个体信息的基础上,新候选解更偏好在上代最佳个体周围游走,进行小范围移动进行局部开发,加快个体收敛速度,提高算法寻优效率。
虽然改进后的莱维飞行强化了算法局部开发,但若在算法前期就使用莱维飞行策略很容易导致算法早熟,由此在改进莱维飞行机制的基础上添加高斯扰动,使得种群个体均匀分布在最佳宇宙个体周围,减少个体集中情况的发生。数学描述如下:
G
=
g
a
u
s
s
i
a
n
(
0
,
θ
)
(11)
G=gaussian(0,\theta)\tag{11}
G=gaussian(0,θ)(11)
θ
=
tanh
(
t
/
T
)
(12)
\theta=\tanh(t/T)\tag{12}
θ=tanh(t/T)(12)其中,
θ
\theta
θ为自调整扰动因子,高斯扰动的尺度变化如图1所示,即使算法使用变异步长的莱维飞行陷入局部最优,由于引入了高斯扰动,在迭代后期高斯高变化率也能帮助算法跳出局部最优。
最终引入偏好游走莱维飞行机制的最终位置数学模型描述如下: x i t = G ( x i t + α ( t ) μ × σ ∣ v ∣ 1 β ( x i t − x b e s t ) ) (13) x_i^t=G\left(x_i^t+\alpha(t)\frac{\mu×\sigma}{|v|^{\frac1\beta}}(x_i^t-x_{best})\right)\tag{13} xit=G(xit+α(t)∣v∣β1μ×σ(xit−xbest))(13)相比标准莱维飞行,偏好游走莱维飞行对于搜索空间的位置信息有更充分的利用,改进机制提高了算法全局优化能力。
2.4 参数调整
本文提出一种设计参数自适应动态调整每种改进策略被选择概率,为算法不同搜索阶段最大化利用改进策略性能,其参数自适应将在以下内容描述。
a)参数
W
E
P
WEP
WEP改进:
标准MVO算法中
W
E
P
WEP
WEP呈线性变化,
W
E
P
WEP
WEP在位置更新中担任着重要参数的作用,为最大化利用改进学习策略性能,
W
E
P
WEP
WEP计算公式改进为:
W
E
P
=
W
E
P
_
min
(
W
E
P
_
max
−
W
E
P
_
min
)
T
−
t
⋅
T
(14)
WEP=\frac{WEP\_\min(WEP\_\max-WEP\_\min)}{T-t}\cdot T\tag{14}
WEP=T−tWEP_min(WEP_max−WEP_min)⋅T(14)
b)阈值以及开关值设计:
参数
τ
\tau
τ作为算法作为局部开发与全局勘探的切换阈值,结合种群规模根据迭代次数改变对使用何种策略进行动态调整,其设置如下:
τ
=
N
/
t
(15)
\tau=N/t\tag{15}
τ=N/t(15)参数
S
W
SW
SW作为切换局部优化和全局优化的指标,决定是否使用分割协议机制下的三种学习策略。
c)黄金分割协作机制:
针对算法不同搜索阶段特点,提出三种学习机制作为串行框架,并将参数
S
W
SW
SW作为是否使用串行策略,学习机制的使用环境如下:
x
S
G
F
t
=
{
S
C
(
1
)
t
∈
[
1
,
W
E
P
⋅
T
]
G
D
(
5
)
t
∈
(
W
E
P
⋅
T
,
(
1
−
W
E
P
)
⋅
T
]
F
O
L
(
8
)
e
l
s
e
(16)
x_{SGF}^t=\begin{dcases}SC(1)\quad\quad t\in[1,WEP\cdot T]\\GD(5)\quad\,\,\,\,\, t\in(WEP\cdot T,(1-WEP)\cdot T]\\FOL(8)\quad\, else\end{dcases}\tag{16}
xSGFt=⎩⎪⎨⎪⎧SC(1)t∈[1,WEP⋅T]GD(5)t∈(WEP⋅T,(1−WEP)⋅T]FOL(8)else(16)
S
W
SW
SW参数说明:参数
S
W
SW
SW初始值设置为1,算法初期达到使用串行框架条件,再由其迭代值所属区间决定使用何种学习机制进行算法优化,每执行一次策略,并将其适应值与最优宇宙个体适应值进行竞争对比,若学习机制未对算法进行局部优化,则
S
W
SW
SW值加1,直到局部开发已不能再对算法进行优化,则使用全局勘探能力较强的游走偏好莱维飞行机制对算法进行优化处理。换句话说,
S
W
SW
SW增加幅度用于记录串行框架局部开发未优化记录,是评判局部开发与全局开发平衡的指标,当指标达到阈值
τ
\tau
τ,局部开发能力达到优化阈值,则需要全局优化能力较强的策略帮助算法跳出局部最优局面。
2.5 G-MVO实现流程
a)初始化算法参数,例如宇宙规模
N
N
N、搜索空间的上下边界
l
b
lb
lb、
u
b
ub
ub以及最大迭代次数等;
b)使用拉丁超立方抽样方法进行种群初始化,并计算宇宙固个体适应度并排序,并归一化宇宙适应度保存最优个体位置和最佳适应度;
c)根据迭代次数更新系数
T
D
R
TDR
TDR、
W
E
P
WEP
WEP以及
τ
\tau
τ值;
d)根据
S
W
SW
SW值与
τ
\tau
τ值比较决定使用串行框架还是全局莱维飞行策略,若
S
W
SW
SW大于
τ
\tau
τ值则使用改进型莱维飞行机制;否则,则使用串行框架;
e)计算宇宙新解适应度并更新全局最优宇宙位置与最佳适应度值;
f)更新
S
W
SW
SW值;
g)判断算法是否达到最大迭代次数,若否,重复步骤步骤c)~f),若是,则输出全局最优位置与最佳适应度值。
二、仿真实验对比与分析
为验证G-MVO在函数寻优应用上的有效性以及稳定性,将改进算法G-MVO与SSA、SCA、WOA以及标准MVO进行对比,以文献[1]中表1列出的8个测试函数为例。实验设置公共参数种群规模
N
=
30
N=30
N=30,最大迭代次数为500,为验证算法有效性,各测试函数独立运行30次。结果显示如下:
函数:F1
MVO:最差值: 2.4066,最优值:0.76435,平均值:1.3191,标准差:0.3824,秩和检验:1.2118e-12
SSA:最差值: 1.5223e-06,最优值:2.6001e-08,平均值:2.1937e-07,标准差:2.8845e-07,秩和检验:1.2118e-12
SCA:最差值: 54.7788,最优值:0.021638,平均值:7.5329,标准差:12.0216,秩和检验:1.2118e-12
WOA:最差值: 1.4446e-70,最优值:2.0156e-87,平均值:5.0245e-72,标准差:2.6358e-71,秩和检验:1.2118e-12
G-MVO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F2
MVO:最差值: 2236.9942,最优值:2.5294,平均值:249.9508,标准差:446.3987,秩和检验:1.2118e-12
SSA:最差值: 16.4296,最优值:3.4132,平均值:9.4907,标准差:3.463,秩和检验:1.2118e-12
SCA:最差值: 2.8039,最优值:0.020897,平均值:0.40781,标准差:0.52867,秩和检验:1.2118e-12
WOA:最差值: 8.1892e-50,最优值:2.9625e-57,平均值:4.5468e-51,标准差:1.55e-50,秩和检验:1.2118e-12
G-MVO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F3
MVO:最差值: 376039.5693,最优值:286407.4684,平均值:324516.6126,标准差:22236.9424,秩和检验:1.2118e-12
SSA:最差值: 387995.8213,最优值:94453.6544,平均值:224849.382,标准差:86322.5604,秩和检验:1.2118e-12
SCA:最差值: 1921120.1801,最优值:643371.8344,平均值:1112214.9134,标准差:304178.1045,秩和检验:1.2118e-12
WOA:最差值: 8148836.8668,最优值:1950248.6701,平均值:4677184.8843,标准差:1235791.5023,秩和检验:1.2118e-12
G-MVO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F4
MVO:最差值: 0.20062,最优值:0.029541,平均值:0.093604,标准差:0.037518,秩和检验:1.2118e-12
SSA:最差值: 7.8676e-05,最优值:9.978e-06,平均值:2.3647e-05,标准差:1.234e-05,秩和检验:1.2118e-12
SCA:最差值: 0.040838,最优值:1.0462e-05,平均值:0.0038946,标准差:0.0099416,秩和检验:1.2118e-12
WOA:最差值: 34.9192,最优值:1.8752e-05,平均值:3.1508,标准差:7.318,秩和检验:1.2118e-12
G-MVO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F5
MVO:最差值: 0.053026,最优值:0.012596,平均值:0.034369,标准差:0.0097334,秩和检验:3.0199e-11
SSA:最差值: 0.42556,最优值:0.059913,平均值:0.16666,标准差:0.075395,秩和检验:3.0199e-11
SCA:最差值: 0.54499,最优值:0.0074762,平均值:0.08589,标准差:0.10461,秩和检验:3.0199e-11
WOA:最差值: 0.019473,最优值:0.00012511,平均值:0.0042923,标准差:0.0049615,秩和检验:1.3289e-10
G-MVO:最差值: 0.00039005,最优值:6.1014e-07,平均值:6.9821e-05,标准差:9.7038e-05,秩和检验:1
函数:F6
MVO:最差值: 26.8714,最优值:2.9892,平均值:14.0361,标准差:6.5552,秩和检验:1.2118e-12
SSA:最差值: 51.7377,最优值:3.9798,平均值:17.9092,标准差:9.8183,秩和检验:1.2118e-12
SCA:最差值: 18.6753,最优值:0,平均值:2.3197,标准差:5.1508,秩和检验:5.772e-11
WOA:最差值: 36.1418,最优值:0,平均值:2.2756,标准差:8.6762,秩和检验:0.1608
G-MVO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F7
MVO:最差值: 20.3962,最优值:4.4633,平均值:7.4057,标准差:5.1086,秩和检验:1.2118e-12
SSA:最差值: 12.2506,最优值:8.6794,平均值:10.0213,标准差:0.88167,秩和检验:1.2118e-12
SCA:最差值: 20.7033,最优值:5.0873,平均值:18.1013,标准差:5.2063,秩和检验:1.2118e-12
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:3.8488e-15,标准差:2.3012e-15,秩和检验:2.8987e-08
G-MVO:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN
函数:F8
MVO:最差值: 0.57327,最优值:0.14698,平均值:0.33069,标准差:0.10889,秩和检验:1.2118e-12
SSA:最差值: 0.57582,最优值:0.049242,平均值:0.2167,标准差:0.12676,秩和检验:1.2118e-12
SCA:最差值: 0.61878,最优值:0,平均值:0.060164,标准差:0.12351,秩和检验:4.5736e-12
WOA:最差值: 0.46538,最优值:0,平均值:0.069035,标准差:0.12792,秩和检验:0.00031349
G-MVO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
实验结果表明,该算法表现更佳的求解精度以及收敛速度。
三、参考文献
[1] 杨文珍, 何庆. 动态串行机制多元宇宙优化算法[J]. 计算机应用研究, 2021, 38(12): 3623-3628+3633.