智能优化算法:向量加权平均算法-附代码

智能优化算法:向量加权平均算法


摘要:向量加权平均算法(Weighted mean of vectors algorithm, INFO),是于2022年提出的一种新型智能优化算法。该算法通过向量的不同加权平均规则,来达到寻优目的。具有寻优能力强,收敛速度快等特点。

1.算法原理

1.1初始化

与其他优化算法一样,种群个体在搜索空间内随机初始化。

1.2更新规则阶段

INFO使用基于均值的规则(MeanRule)更新向量的位置,这是从一组随机向量的加权均值中提取的。此外,为了提高全局搜索能力,在更新规则算子中加入了收敛加速部分(CA)。更新规则的主要公式定义为:
z 1 l g = { x l g + σ ×  MeanRules  +  randn  × x b s − x a 1 g f ( x b s ) − f ( x a 1 g ) + 1 ,  rand  < 0.5 x b s + σ ×  MeanRules  + randn ⁡ × x a 2 g − x a 3 g f ( x a 2 g ) − f ( x a 3 g ) + 1 ,  rand  ≥ 0.5 z 2 l g = { x b s + σ ×  MeanRule  + randn ⁡ × x a 1 g − x b g f ( x a 1 g ) − f ( x a 2 g ) + 1 ,  rand  < 0.5 x b t + σ ×  MeanRule  + randn ⁡ × x a 1 g − x a 2 g f ( x a 1 g ) − f ( x a 2 g ) + 1 ,  rand  ≥ 0.5 (1) \begin{array}{l} z 1_{l}^{g}=\left\{\begin{array}{ll} x_{l}^{g}+\sigma \times \text { MeanRules }+\text { randn } \times \frac{x_{b s}-x_{a 1}^{g}}{f\left(x_{b s}\right)-f\left(x_{a 1}^{g}\right)+1}, & \text { rand }<0.5 \\ x_{b s}+\sigma \times \text { MeanRules }+\operatorname{randn} \times \frac{x_{a 2}^{g}-x_{a 3}^{g}}{f\left(x_{a 2}^{g}\right)-f\left(x_{a 3}^{g}\right)+1}, & \text { rand } \geq 0.5 \end{array}\right. \\ z 2_{l}^{g}=\left\{\begin{array}{ll} x_{b s}+\sigma \times \text { MeanRule }+\operatorname{randn} \times \frac{x_{a 1}^{g}-x_{b}^{g}}{f\left(x_{a 1}^{g}\right)-f\left(x_{a 2}^{g}\right)+1}, & \text { rand }<0.5 \\ x_{b t}+\sigma \times \text { MeanRule }+\operatorname{randn} \times \frac{x_{a 1}^{g}-x_{a 2}^{g}}{f\left(x_{a 1}^{g}\right)-f\left(x_{a 2}^{g}\right)+1}, & \text { rand } \geq 0.5 \end{array}\right. \end{array} \tag{1} z1lg=xlg+σ× MeanRules + randn ×f(xbs)f(xa1g)+1xbsxa1g,xbs+σ× MeanRules +randn×f(xa2g)f(xa3g)+1xa2gxa3g, rand <0.5 rand 0.5z2lg=xbs+σ× MeanRule +randn×f(xa1g)f(xa2g)+1xa1gxbg,xbt+σ× MeanRule +randn×f(xa1g)f(xa2g)+1xa1gxa2g, rand <0.5 rand 0.5(1)
其中, z 1 l g z1_l^g z1lg z 2 l g z2_l^g z2lg为第 g g g次迭代的新位置向量; σ \sigma σ为向量缩放率,通过式(2)计算所得; a 1 ≠ a 2 ≠ a 3 ≠ l a1\neq a2\neq a3\neq l a1=a2=a3=l是从 [ 1 , N P ] [1,NP] [1,NP]中随机选择的不同整数; r a n d n randn randn是一个标准正态分布随机值。应注意的是,在式(2)中, α \alpha α可以根据式(2.1)中定义的指数函数进行更新。
σ = 2 α × r a n d − α (2) \sigma = 2\alpha\times rand-\alpha \tag{2} σ=2α×randα(2)

α = 2 × exp ( − 4 g M a x g ) (2.1) \alpha=2\times \text{exp}(-4\frac{g}{Maxg})\tag{2.1} α=2×exp(4Maxgg)(2.1)

M e a n R u l e MeanRule MeanRule定义如下:
 MeanRule  = r × W M 1 l g + ( 1 − r ) × W M 2 l g , l = 1 , 2 , ⋯   , N P (3) \text { MeanRule }=r \times W M 1_{l}^{g}+(1-r) \times W M 2_{l}^{g}, l=1,2, \cdots, N P \tag{3}  MeanRule =r×WM1lg+(1r)×WM2lg,l=1,2,,NP(3)
其中, r r r是 [0,0.5]之间的随机数; W M 1 l g WM1_l^g WM1lg W M 2 l g WM2_l^g WM2lg定义如下:
W M 1 l 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 + ε + ε × rand ⁡ , l = 1 , 2 , ⋯   , N P (3.1) W M 1_{l}^{g}=\delta \times \frac{w_{1}\left(x_{a 1}-x_{a 2}\right)+w_{2}\left(x_{a 1}-x_{a 3}\right)+w_{3}\left(x_{a 2}-x_{a 3}\right)}{w_{1}+w_{2}+w_{3}+\varepsilon}+\varepsilon \times \operatorname{rand}, l=1,2, \cdots, N P \tag{3.1} WM1lg=δ×w1+w2+w3+εw1(xa1xa2)+w2(xa1xa3)+w3(xa2xa3)+ε×rand,l=1,2,,NP(3.1)
其中:
w 1 = cos ⁡ ( ( f ( x a 1 ) − f ( x a 2 ) ) + π ) × exp ⁡ ( − f ( x a 1 ) − f ( x a 2 ) ω ) (3.2) w_{1}=\cos \left(\left(f\left(x_{a 1}\right)-f\left(x_{a 2}\right)\right)+\pi\right) \times \exp \left(-\frac{f\left(x_{a 1}\right)-f\left(x_{a 2}\right)}{\omega}\right) \tag{3.2} w1=cos((f(xa1)f(xa2))+π)×exp(ωf(xa1)f(xa2))(3.2)

w 2 = cos ⁡ ( ( f ( x a 1 ) − f ( x a 3 ) ) + π ) × exp ⁡ ( − f ( x a 1 ) − f ( x a 3 ) ω ) (3.3) w_{2}=\cos \left(\left(f\left(x_{a 1}\right)-f\left(x_{a 3}\right)\right)+\pi\right) \times \exp \left(-\frac{f\left(x_{a 1}\right)-f\left(x_{a 3}\right)}{\omega}\right) \tag{3.3} w2=cos((f(xa1)f(xa3))+π)×exp(ωf(xa1)f(xa3))(3.3)

w 3 = cos ⁡ ( ( f ( x a 2 ) − f ( x a 3 ) ) + π ) × exp ⁡ ( − f ( x a 2 ) − f ( x a 3 ) ω ) (3.4) w_{3}=\cos \left(\left(f\left(x_{a 2}\right)-f\left(x_{a 3}\right)\right)+\pi\right) \times \exp \left(-\frac{f\left(x_{a 2}\right)-f\left(x_{a 3}\right)}{\omega}\right) \tag{3.4} w3=cos((f(xa2)f(xa3))+π)×exp(ωf(xa2)f(xa3))(3.4)

ω = max ⁡ ( f ( x a 1 ) , f ( x a 2 ) , f ( x a 3 ) ) (3.5) \omega=\max \left(f\left(x_{a 1}\right), f\left(x_{a 2}\right), f\left(x_{a 3}\right)\right) \tag{3.5} ω=max(f(xa1),f(xa2),f(xa3))(3.5)

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 + ε + ε × rand ⁡ , l = 1 , 2 , ⋯   , N P (3.6) W M 2_{l}^{g}=\delta \times \frac{w_{1}\left(x_{b s}-x_{b t}\right)+w_{2}\left(x_{b s}-x_{w s}\right)+w_{3}\left(x_{b t}-x_{w s}\right)}{w_{1}+w_{2}+w_{3}+\varepsilon}+\varepsilon \times \operatorname{rand}, l=1,2, \cdots, N P \tag{3.6} WM2lg=δ×w1+w2+w3+εw1(xbsxbt)+w2(xbsxws)+w3(xbtxws)+ε×rand,l=1,2,,NP(3.6)

其中:
w 1 = c o s ( ( f ( x b s ) − f ( x b t ) ) + π ) × exp ( − f ( x b s ) − f ( x b t ) w ) (3.7) w_1=cos((f(x_{bs})-f(x_{bt}))+\pi)\times \text{exp}(-\frac{f(x_{bs})-f(x_{bt})}{w})\tag{3.7} w1=cos((f(xbs)f(xbt))+π)×exp(wf(xbs)f(xbt))(3.7)

w 2 = c o s ( ( f ( x b s ) − f ( x w s ) ) + π ) × exp ( − f ( x b s ) − f ( x w s ) w ) (3.8) w_2=cos((f(x_{bs})-f(x_{ws}))+\pi)\times \text{exp}(-\frac{f(x_{bs})-f(x_{ws})}{w})\tag{3.8} w2=cos((f(xbs)f(xws))+π)×exp(wf(xbs)f(xws))(3.8)

w 3 = c o s ( ( f ( x b t ) − f ( x w s ) ) + π ) × exp ( − f ( x b t ) − f ( x w s ) w ) (3.9) w_3=cos((f(x_{bt})-f(x_{ws}))+\pi)\times \text{exp}(-\frac{f(x_{bt})-f(x_{ws})}{w})\tag{3.9} w3=cos((f(xbt)f(xws))+π)×exp(wf(xbt)f(xws))(3.9)

w = f ( x w s ) (3.10) w=f(x_{ws}) \tag{3.10} w=f(xws)(3.10)

δ = 2 β × r a n d − β (3.11) \delta =2\beta\times rand-\beta \tag{3.11} δ=2β×randβ(3.11)

β = α = 2 × exp ( − 4 g M a x g ) (3.12) \beta=\alpha=2\times\text{exp}(-4\frac{g}{Maxg})\tag{3.12} β=α=2×exp(4Maxgg)(3.12)

其中, w 1 , w 2 , w 3 w_1,w_2,w_3 w1,w2,w3是三个加权函数,用于计算向量的加权平均值,有利于算法在解空间中全局搜索; x b s , x b t , x w s x_{bs},x_{bt},x_{ws} xbs,xbt,xws 分别是第 g g g代种群中最优、次优和最差的解向量。事实上,这些解向量是在每次迭代时对种群向量进行排序后确定的。

1.3 向量合并阶段

根据式(5),INFO将前一阶段中计算的两个向量 ( z 1 l g , z 2 l g ) (z1_l^g,z2_l^g) (z1lg,z2lg)与条件 r a n d < 0.5 rand<0.5 rand<0.5的向量 ( u l g ) (u_l^g) (ulg)相结合,生成新向量。事实上,该算子用于提升局部搜索能力,以提供一个新的更好的向量。
u l g = { { z 1 l g + μ ∣ z 1 l g − z 2 l g ∣ , r a n d 1 < 0.5 & & r a n d 2 < 0.5 z 2 l g + μ ∣ z 1 l g − z 2 l g ∣ , r a n d 1 < 0.5 & & r a n d 2 ≥ 0.5 x l g , r a n d 1 < 0.5 (4) u_l^g=\begin{cases} \begin{cases} z1_l^g+\mu|z1_l^g-z2_l^g|,rand1<0.5\&\&rand2<0.5\\ z2_l^g+\mu|z1_l^g-z2_l^g|,rand1<0.5\&\&rand2 \geq0.5 \end{cases}\\ x_l^g,rand1<0.5 \end{cases}\tag{4} ulg={z1lg+μz1lgz2lg,rand1<0.5&&rand2<0.5z2lg+μz1lgz2lg,rand1<0.5&&rand20.5xlg,rand1<0.5(4)
其中, u l g u_l^g ulg是第 g g g代中的向量合并得到的新向量; μ = 0.05 × r a n d n \mu =0.05\times randn μ=0.05×randn

1.4 局部搜索阶段

INFO使用局部搜索阶段来防止陷入局部最优解。根据该算子,如果 r a n d < 0.5 rand<0.5 rand<0.5,则可以围绕生成一个新的向量,其中是[0,1]中的随机值。
u l g = { x b s + r a n d n × ( M e a n R u l e + r a n d n × ( x b s g − x a 1 g ) ) , r a n d 1 < 0.5 & & r a n d 2 < 0.5 x r n d + r a n d n × ( M e a n R u l e + r a n d n × ( v 1 × x b s − v 2 × x r n d ) ) , r a n d 1 < 0.5 & & r a n d 2 ≥ 0.5 (5) u_l^g=\begin{cases} x_{bs}+randn\times(MeanRule+randn\times(x_{bs}^g-x_{a1}^g)),rand1<0.5\&\& rand2<0.5\\ x_{rnd}+randn\times(MeanRule+randn\times(v_1\times x_{bs}-v_2\times x_{rnd})),rand1<0.5\&\& rand2\geq 0.5 \end{cases}\tag{5} ulg={xbs+randn×(MeanRule+randn×(xbsgxa1g)),rand1<0.5&&rand2<0.5xrnd+randn×(MeanRule+randn×(v1×xbsv2×xrnd)),rand1<0.5&&rand20.5(5)
其中:
x r n d = ϕ × x a v g + ( 1 − ϕ ) × ( ϕ × x b t + ( 1 − ϕ ) × x b s ) (5.1) x_{rnd}=ϕ\times x_{avg}+(1-ϕ)\times(ϕ\times x_{bt}+(1-ϕ)\times x_{bs})\tag{5.1} xrnd=ϕ×xavg+(1ϕ)×(ϕ×xbt+(1ϕ)×xbs)(5.1)

x a v g = x a + x b + x c 3 (5.2) x_{avg}=\frac{x_a+x_b+x_c}{3} \tag{5.2} xavg=3xa+xb+xc(5.2)

其中, ϕ \phi ϕ表示(0,1)的随机数; x r n g x_{rng} xrng是由 x a v g x_{avg} xavg , x b t x_{bt} xbt x b s x_{bs} xbs组成的新解,这增加了所提出算法的随机性,以更好地在解空间中搜索; v 1 v_1 v1 v 2 v_2 v2是两个随机数,定义如下:
v 1 = { 2 × r a n d , p > 0.5 1 , p ≤ 0.5 (5.3) v_1=\begin{cases} 2\times rand,p>0.5\\ 1,p\leq 0.5 \end{cases} \tag{5.3} v1={2×rand,p>0.51,p0.5(5.3)

v 2 = { r a n d , p > 0.5 1 , p ≤ 0.5 (5.4) v_2=\begin{cases} rand,p>0.5 \\ 1,p\leq0.5 \end{cases} \tag{5.4} v2={rand,p>0.51,p0.5(5.4)

算法流程图如下:

请添加图片描述

2.实验结果

请添加图片描述

3.参考文献

[1] Iman Ahmadianfar, Ali Asghar Heidari, Saeed Noshadian. INFO: An efficient optimization algorithm based on weighted mean of vectors[J]. Expert Systems With Applications, 2022, 195: 116516.

4.Matlab代码

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值