基于向量加权平均算法的函数寻优和工程优化

一、理论基础

1、向量加权平均算法

向量加权平均算法(Weighted mean of vectors algorithm, INFO)是一种基于群体的优化算法,用于计算搜索空间中一组向量的加权平均值。INFO使用三种算子来更新每一代中向量的位置,分别为:

  • 第一阶段:更新规则
  • 第二阶段:向量合并
  • 第三阶段:局部搜索

(1)更新规则阶段

INFO使用基于均值的规则(MeanRule)更新向量的位置,这是从一组随机向量的加权均值中提取的。此外,为了提高全局搜索能力,在更新规则算子中加入了收敛加速部分(CA)。更新规则的主要公式定义为: z 1 l g = { x l g + σ × M e a n R u l e s + r a n d n × x b s − x a 1 g f ( x b s ) − f ( x a 1 g ) + 1 , r a n d < 0.5 x b s + σ × M e a n R u l e s + r a n d n × x a 2 g − x a 3 g f ( x a 2 g ) − f ( x a 3 g ) + 1 ,      r a n d ≥ 0.5 z 2 l g = { x b s + σ × M e a n R u l e + r a n d n × x a 1 g − x b g f ( x a 1 g ) − f ( x a 2 g ) + 1 , r a n d < 0.5 x b t + σ × M e a n R u l e + r a n d n × x a 1 g − x a 2 g f ( x a 1 g ) − f ( x a 2 g ) + 1 ,   r a n d ≥ 0.5 (1) \begin{aligned}z1_l^g=\begin{dcases}x_l^g+\sigma\times MeanRules+randn\times\frac{x_{bs}-x_{a1}^g}{f(x_{bs})-f(x_{a1}^g)+1},\quad rand<0.5\\[2ex]x_{bs}+\sigma\times MeanRules+randn\times\frac{x_{a2}^g-x_{a3}^g}{f(x_{a2}^g)-f(x_{a3}^g)+1},\,\,\,\, rand\geq0.5\end{dcases}\\[2ex]z2_l^g=\begin{dcases}x_{bs}+\sigma\times MeanRule+randn\times\frac{x_{a1}^g-x_b^g}{f(x_{a1}^g)-f(x_{a2}^g)+1},\quad rand<0.5\\[2ex]x_{bt}+\sigma\times MeanRule+randn\times\frac{x_{a1}^g-x_{a2}^g}{f(x_{a1}^g)-f(x_{a2}^g)+1},\quad\, rand\geq0.5\end{dcases}\end{aligned}\tag{1} z1lg=xlg+σ×MeanRules+randn×f(xbs)f(xa1g)+1xbsxa1g,rand<0.5xbs+σ×MeanRules+randn×f(xa2g)f(xa3g)+1xa2gxa3g,rand0.5z2lg=xbs+σ×MeanRule+randn×f(xa1g)f(xa2g)+1xa1gxbg,rand<0.5xbt+σ×MeanRule+randn×f(xa1g)f(xa2g)+1xa1gxa2g,rand0.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\exp\left(-4\cdot\frac{g}{Maxg}\right)\tag{2.1} α=2×exp(4Maxgg)(2.1)式(1)中的 M e a n R u l e MeanRule MeanRule定义如下: M e a n R u l e = r × W M 1 l g + ( 1 − r ) × W M 2 l g ,    l = 1 , 2 , ⋯   , N P (3) MeanRule=r\times WM1_l^g+(1-r)\times WM2_l^g,\,\,l=1,2,\cdots,NP\tag{3} MeanRule=r×WM1lg+(1r)×WM2lg,l=1,2,,NP(3)其中, r r r [ 0 , 0.5 ] [0,0.5] [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 + ε + ε × r a n d ,    l = 1 , 2 , ⋯   , N P (3.1) WM1_l^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,\,\,l=1,2,\cdots,NP\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((f(x_{a1})-f(x_{a2}))+\pi)\times\exp\left(-\frac{f(x_{a1})-f(x_{a2})}{\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((f(x_{a1})-f(x_{a3}))+\pi)\times\exp\left(-\frac{f(x_{a1})-f(x_{a3})}{\omega}\right)\tag{3.3} w2=cos((f(xa1)f(xa3))+π)×exp(ωf(xa1)f(xa3))(3.3) w 1 = cos ⁡ ( ( f ( x a 2 ) − f ( x a 3 ) ) + π ) × exp ⁡ ( − f ( x a 2 ) − f ( x a 3 ) ω ) (3.4) w_1=\cos((f(x_{a2})-f(x_{a3}))+\pi)\times\exp\left(-\frac{f(x_{a2})-f(x_{a3})}{\omega}\right)\tag{3.4} w1=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(x_{a1}),f(x_{a2}),f(x_{a3})\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 + ε + ε × r a n d ,    l = 1 , 2 , ⋯   , N P (3.6) WM2_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,\,\,l=1,2,\cdots,NP\tag{3.6} WM2lg=δ×w1+w2+w3+εw1(xbsxbt)+w2(xbsxws)+w3(xbtxws)+ε×rand,l=1,2,,NP(3.6)其中, w 1 = cos ⁡ ( ( f ( x b s ) − f ( x b t ) ) + π ) × exp ⁡ ( − f ( x b s ) − f ( x b t ) ω ) (3.7) w_1=\cos((f(x_{bs})-f(x_{bt}))+\pi)\times\exp\left(-\frac{f(x_{bs})-f(x_{bt})}{\omega}\right)\tag{3.7} w1=cos((f(xbs)f(xbt))+π)×exp(ωf(xbs)f(xbt))(3.7) w 2 = cos ⁡ ( ( f ( x b s ) − f ( x w s ) ) + π ) × exp ⁡ ( − f ( x b s ) − f ( x w s ) ω ) (3.8) w_2=\cos((f(x_{bs})-f(x_{ws}))+\pi)\times\exp\left(-\frac{f(x_{bs})-f(x_{ws})}{\omega}\right)\tag{3.8} w2=cos((f(xbs)f(xws))+π)×exp(ωf(xbs)f(xws))(3.8) w 1 = cos ⁡ ( ( f ( x b t ) − f ( x w s ) ) + π ) × exp ⁡ ( − f ( x b t ) − f ( x w s ) ω ) (3.9) w_1=\cos((f(x_{bt})-f(x_{ws}))+\pi)\times\exp\left(-\frac{f(x_{bt})-f(x_{ws})}{\omega}\right)\tag{3.9} w1=cos((f(xbt)f(xws))+π)×exp(ωf(xbt)f(xws))(3.9) ω = f ( x w s ) (3.10) \omega=f(x_{ws})\tag{3.10} ω=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\exp\left(-4\cdot\frac{g}{Maxg}\right)\tag{3.12} β=α=2×exp(4Maxgg)(3.12)其中, w 1 w_1 w1 w 2 w_2 w2 w 3 w_3 w3是三个加权函数,用于计算向量的加权平均值,有利于算法在解空间中全局搜索; x b s x_{bs} xbs x b t x_{bt} xbt x w s x_{ws} xws分别是第 g g g代种群中最优、次优和最差的解向量。事实上,这些解向量是在每次迭代时对种群向量进行排序后确定的。

(2)向量合并阶段

根据式(5),INFO将前一阶段中计算的两个向量( z 1 l g z1_l^g z1lg z 2 l g z2_l^g 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 1 2 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{dcases}\begin{dcases}z1_l^g+\mu\cdot|z1_l^g-z2_l^g|,\quad rand1<0.5\,\,\&\&\,\,rand2<0.5\\[2ex]z1_2^g+\mu\cdot|z1_l^g-z2_l^g|,\quad rand1<0.5\,\,\&\&\,\,rand2\geq0.5\end{dcases}\\[2ex]x_l^g,\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\, rand1<0.5\end{dcases}\tag{4} ulg=z1lg+μz1lgz2lg,rand1<0.5&&rand2<0.5z12g+μ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

(3)局部搜索阶段

INFO使用局部搜索阶段来防止陷入局部最优解。根据该算子,如果 r a n d < 0.5 rand<0.5 rand<0.5,则可以围绕 x b e s t g x_{best}^g xbestg生成一个新的向量,其中 r a n d rand rand [ 0 , 1 ] [0,1] [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{dcases}x_{bs}+randn\times(MeanRule+randn\times(x_{bs}^g-x_{a1}^g)),\quad\quad\quad\quad\quad\,\,\,\,\,\,\, rand1<0.5\,\,\&\&\,\,rand2<0.5\\[2ex]x_{rnd}+randn\times(MeanRule+randn\times(v_1\times x_{bs}-v_2\times x_{rnd})),\quad\, rand1<0.5\,\,\&\&\,\,rand2\geq0.5\end{dcases}\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}=\phi\times x_{avg}+(1-\phi)\times(\phi\times x_{bt}+(1-\phi)\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 ) (0,1) (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{dcases}2\times rand,\quad p>0.5\\[2ex]1,\quad\quad\quad \quad \,\,p\leq0.5\end{dcases}\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{dcases}rand,\quad p>0.5\\[2ex]1,\quad\quad\,\, \,\,p\leq0.5\end{dcases}\tag{5.4} v2=rand,p>0.51,p0.5(5.4)

2、INFO算法伪代码

INFO算法伪代码如下图所示:
在这里插入图片描述

二、仿真实验与分析

1、函数优化

将INFO与GWO、PSO、GSA和SCA进行对比,实验设置种群规模为30,最大迭代次数为500,每个算法独立运行30次,以常用23个测试函数中的F1、F2(单峰函数/30维)、F9、F10(多峰函数/30维)、F19、F20(固定维度多峰函数/3维、6维)为例,结果显示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数:F1
INFO:最差值: 2.3422e-53, 最优值: 7.1539e-55, 平均值: 1.1926e-53, 标准差: 5.4729e-54
GWO:最差值: 2.6176e-26, 最优值: 6.5289e-29, 平均值: 1.895e-27, 标准差: 4.7854e-27
PSO:最差值: 2259.6662, 最优值: 399.8414, 平均值: 918.8633, 标准差: 431.5798
GSA:最差值: 2.0023e-15, 最优值: 7.374e-17, 平均值: 3.104e-16, 标准差: 3.526e-16
SCA:最差值: 188.4359, 最优值: 0.0019342, 平均值: 19.27, 标准差: 48.7161
函数:F2
INFO:最差值: 1.8478e-26, 最优值: 2.0142e-27, 平均值: 1.0554e-26, 标准差: 3.987e-27
GWO:最差值: 5.2265e-16, 最优值: 1.9346e-17, 平均值: 1.227e-16, 标准差: 1.0494e-16
PSO:最差值: 48.4197, 最优值: 12.2406, 平均值: 24.0964, 标准差: 6.3957
GSA:最差值: 4.5816, 最优值: 4.4118e-08, 平均值: 0.60953, 标准差: 1.1784
SCA:最差值: 0.090451, 最优值: 0.00049259, 平均值: 0.013491, 标准差: 0.018659
函数:F9
INFO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
GWO:最差值: 18.1697, 最优值: 5.6843e-14, 平均值: 2.7476, 标准差: 4.0081
PSO:最差值: 196.1084, 最优值: 103.5017, 平均值: 145.7569, 标准差: 21.2074
GSA:最差值: 68.6519, 最优值: 14.9244, 平均值: 38.5048, 标准差: 12.3502
SCA:最差值: 142.4635, 最优值: 0.087441, 平均值: 41.9357, 标准差: 40.3866
函数:F10
INFO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0
GWO:最差值: 1.3589e-13, 最优值: 6.4837e-14, 平均值: 1.0167e-13, 标准差: 1.5e-14
PSO:最差值: 10.2138, 最优值: 4.855, 平均值: 8.3517, 标准差: 1.0071
GSA:最差值: 0.033144, 最优值: 6.3015e-09, 平均值: 0.0011048, 标准差: 0.0060512
SCA:最差值: 20.3404, 最优值: 0.046423, 平均值: 10.7943, 标准差: 9.6337
函数:F19
INFO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.6684e-15
GWO:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.8612, 标准差: 0.0028408
PSO:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.8623, 标准差: 0.0019996
GSA:最差值: -2.5813, 最优值: -3.7641, 平均值: -3.3389, 标准差: 0.3381
SCA:最差值: -3.8503, 最优值: -3.862, 平均值: -3.8545, 标准差: 0.0027743
函数:F20
INFO:最差值: -3.2031, 最优值: -3.322, 平均值: -3.2586, 标准差: 0.060328
GWO:最差值: -3.0867, 最优值: -3.322, 平均值: -3.2668, 标准差: 0.082672
PSO:最差值: -2.8968, 最优值: -3.322, 平均值: -3.2076, 标准差: 0.12944
GSA:最差值: -0.876, 最优值: -2.4729, 平均值: -1.5901, 标准差: 0.49619
SCA:最差值: -2.0328, 最优值: -3.1254, 平均值: -2.8795, 标准差: 0.28563

实验结果表明了INFO算法在开发、探索、避免局部最优和收敛速度方面的有效性。

2、工程优化

以压缩弹簧设计、三杆桁架设计、工字梁设计优化问题为例,具体问题模型请参考这里。各参数设置和上节相同,结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

F1: 压缩弹簧设计问题
INFO:最差值: 0.014103, 最优值: 0.012665, 平均值: 0.012886, 标准差: 0.00033218
GWO:最差值: 0.013363, 最优值: 0.012678, 平均值: 0.012789, 标准差: 0.00015308
PSO:最差值: 0.030455, 最优值: 0.012665, 平均值: 0.013612, 标准差: 0.0033528
GSA:最差值: 0.48936, 最优值: 0.012725, 平均值: 0.045476, 标准差: 0.093792
SCA:最差值: 0.014848, 最优值: 0.012861, 平均值: 0.013277, 标准差: 0.00046328
F2: 三杆桁架设计问题
INFO:最差值: 263.8958, 最优值: 263.8958, 平均值: 263.8958, 标准差: 1.0119e-08
GWO:最差值: 263.8978, 最优值: 263.896, 平均值: 263.8964, 标准差: 0.00040629
PSO:最差值: 263.8958, 最优值: 263.8958, 平均值: 263.8958, 标准差: 3.8059e-14
GSA:最差值: 278.5883, 最优值: 264.2763, 平均值: 267.8222, 标准差: 3.6488
SCA:最差值: 263.9562, 最优值: 263.9012, 平均值: 263.9199, 标准差: 0.014704
F3: 工字梁设计问题
INFO:最差值: 0.013074, 最优值: 0.013074, 平均值: 0.013074, 标准差: 3.8786e-14
GWO:最差值: 0.013078, 最优值: 0.013074, 平均值: 0.013075, 标准差: 7.4514e-07
PSO:最差值: 0.014654, 最优值: 0.013074, 平均值: 0.013161, 标准差: 0.00029141
GSA:最差值: 0.21933, 最优值: 0.015665, 平均值: 0.10293, 标准差: 0.050627
SCA:最差值: 0.013327, 最优值: 0.013076, 平均值: 0.013145, 标准差: 7.251e-05

实验结果表明:INFO算法对复杂未知搜索领域的实际问题具有很强的优化能力。

三、参考文献

[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.

猜你喜欢

转载自blog.csdn.net/weixin_43821559/article/details/123439948