1.背景
2022年,I Ahmadianfar受到基于向量加权平均方法启发,提出了加权平均向量优化算法(weIghted meaN oF vectOrs, INFO)。
2.算法原理
2.1算法思想
INFO 是一种修改过的加权平均方法,采用加权平均的思想来构建稳固的结构,并通过三个核心程序更新向量的位置:更新规则、向量组合和局部搜索。更新规则阶段基于基于平均的法则和加速收敛生成新向量,向量组合阶段结合获得的向量和更新规则以达到有希望的解决方案,局部搜索阶段帮助该算法逃离低精度的解决方案,并提高利用率和收敛性。
2.2算法过程
更新规则阶段
在INFO算法中,更新规则算子增加了种群在搜索过程中的多样性。这个算子使用向量的加权平均值来创建新的向量。基于平均的规则被应用于MeanRule:
M
e
a
n
R
u
l
e
=
r
×
W
M
1
l
g
+
(
1
−
r
)
×
W
M
2
l
g
(1)
MeanRule=r\times WM1_l^g+(1-r)\times WM2_l^g\tag{1}
MeanRule=r×WM1lg+(1−r)×WM2lg(1)
其中各参数为:
W
M
1
i
g
=
δ
×
w
1
(
x
a
1
−
x
a
2
)
+
w
2
(
x
a
1
−
x
a
3
)
+
w
3
(
x
a
2
−
x
a
3
)
w
1
+
w
2
+
w
3
+
ε
+
ε
×
r
a
n
d
(2)
WM 1_{i}^{g}=\delta\times\frac{w_{_1}(x_{_{a1}}-x_{_{a2}})+w_{_2}(x_{_{a1}}-x_{_{a3}})+w_{_3}(x_{_{a2}}-x_{_{a3}})}{w_{_1}+w_{_2}+w_{_3}+\varepsilon}+\varepsilon\times rand\tag{2}
WM1ig=δ×w1+w2+w3+εw1(xa1−xa2)+w2(xa1−xa3)+w3(xa2−xa3)+ε×rand(2)
W
M
2
l
g
=
δ
×
w
1
(
x
b
s
−
x
b
t
)
+
w
2
(
x
b
s
−
x
w
s
)
+
w
3
(
x
b
t
−
x
w
s
)
w
1
+
w
2
+
w
3
+
ε
+
ε
×
r
a
n
d
(3)
WM 2_{l}^{g} = \delta\times\frac{w_{ 1}(x_{ bs} - x_{ bt} )+w_{ 2}(x_{ bs} - x_{ ws} )+w_{ 3}(x_{ bt} - x_{ ws} )}{w_{ 1} + w_{ 2} + w_{ 3} + \varepsilon}+\varepsilon\times rand\tag{3}
WM2lg=δ×w1+w2+w3+εw1(xbs−xbt)+w2(xbs−xws)+w3(xbt−xws)+ε×rand(3)
根据小波理论,WFs(波形函数)被用来根据两个原因调整MeanRule空间:(1)通过在优化过程中创建有效的振荡,帮助算法更有效地探索搜索空间并实现更好的解决方案;(2)通过控制引入WFs的扩张参数来生成微调,该参数用于调整WF的振幅。其中,δ是缩放因子,而β可以基于定义的指数函数进行变化:
δ
=
2
β
×
r
a
n
d
−
β
β
=
2
exp
(
−
4
×
g
M
a
x
g
)
(4)
\begin{aligned}&\delta=2\beta\times rand-\beta\\&\beta=2\exp(-4\times\frac{g}{Maxg})\end{aligned}\tag{4}
δ=2β×rand−ββ=2exp(−4×Maxgg)(4)
在更新规则操作中,还增加了收敛加速部分(CA),使用最佳向量在搜索空间中移动当前向量以提升全局搜索能力。在INFO算法中,假设最佳解决方案是最接近全局最优的解决方案。实际上,CA帮助向量朝更好的方向移动:
C
A
=
r
a
n
d
n
×
(
x
b
s
−
x
a
1
)
(
f
(
x
b
s
)
−
f
(
x
a
1
)
+
ε
)
(5)
CA=randn\times\frac{\left(x_{bs}-x_{a1}\right)}{\left(f\left(x_{bs}\right)-f\left(x_{a1}\right)+\varepsilon\right)}\tag{5}
CA=randn×(f(xbs)−f(xa1)+ε)(xbs−xa1)(5)
计算新向量:
z
l
g
=
x
l
g
+
σ
×
M
e
a
n
R
u
l
e
+
C
A
(6)
z_{ l}^{ g}=x_{ l}^{ g}+\sigma\times MeanRule+CA\tag{6}
zlg=xlg+σ×MeanRule+CA(6)
以rand<0.5进行切换:
α 可以根据方程中定义的指数函数进行改变:
σ
=
2
α
×
r
a
n
d
−
α
α
=
c
exp
(
−
d
×
g
M
a
x
g
)
(7)
\begin{aligned}&\sigma=2\alpha\times rand-\alpha\\&\alpha=c\exp(-d\times\frac{g}{Maxg})\end{aligned}\tag{7}
σ=2α×rand−αα=cexp(−d×Maxgg)(7)
矢量组合阶段
为了增强INFO中种群的多样性,生成新向量:
局部搜索阶段
有效的局部搜索能力可以防止INFO算法被欺骗和陷入局部最优解,以进一步促进开发、搜索和收敛到全局最优解:
伪代码
3.结果展示
4.参考文献
[1] Ahmadianfar I, Heidari A A, Noshadian S, et al. INFO: An efficient optimization algorithm based on weighted mean of vectors[J]. Expert Systems with Applications, 2022, 195: 116516.