算术优化算法(Arithmetic Optimization Algorithm,AOA)

一、算法灵感

  算术优化算法(Arithmetic Optimization Algorithm, AOA)是由学者 Laith Abualigah 等人于2021年提出的一种新型元启发式优化算法,其灵感来源于算术中的四则混合运算。算法通过数学函数加速器选择优化策略,将整个过程分为探索和开发,即利用乘除运算进行全局探索,利用加减运算进行局部开发。

二、算法介绍

2. 1 初始化

  首先,AOA会生成一个均匀分布的随机种群。初始种群可由以下公式求得
X ( i , j ) = R a n d × ( U b − L b ) + L b (1) X\left( {i,j} \right) = Rand \times \left( {Ub - Lb} \right) + Lb \tag{1} X(i,j)=Rand×(UbLb)+Lb(1)其中, U b Ub Ub 为上界, L b Lb Lb 为下界, R a n d Rand Rand [ 0 , 1 ] [0,1] [0,1] 之间的随机数, X ( i , j ) X(i,j) X(ij) 是第 i i i 个解在第 j j j 维空间的位置。

2. 2 数学函数加速器MOA

  根据MOA的值判断进行全局探索还是局部开发:
M O A ( t ) = M i n + t × ( M a x − M i n ) T (2) MOA\left( t \right) = Min + t \times { {\left( {Max - Min} \right)} \over T} \tag{2} MOA(t)=Min+t×T(MaxMin)(2)其中, r 1 r_{1} r1 [ 0 , 1 ] [0,1] [0,1] 之间的随机数, M O A ( t ) MOA(t) MOA(t) 为当前的加速函数值, M i n Min Min 为加速函数的最小值, M a x Max Max 为加速函数最大值, T T T 为最大迭代次数, t t t 为当前迭代次数;当 r 1 < M O A ( t ) r_{1}<MOA(t) r1<MOA(t) 时,函数将进入全局探索阶段,反之则进入局部开发阶段。

2. 3 探索阶段

  根据随机数 r 2 r_{2} r2 决定采用乘法或除法策略,两种策略离散度高,有利于粒子在算法空间内探索,计算公式如下:
X ( t + 1 ) = { X b ( t ) ÷ ( M O P + ε ) × ( ( U b − L b ) × μ + L b )    , r 2 < 0.5 , X b ( t ) × M O P × ( ( U b − L b ) × μ + L b ) , o t h e r w i s e . (3) {X_{\left( {t + 1} \right)}} = \left\{ { { \begin{aligned} & { {X_b}\left( t \right) \div \left( {MOP + \varepsilon } \right) \times \left( {\left( {Ub - Lb} \right) \times \mu + Lb} \right)\ \ ,} { {r_2} < 0.5,} \cr &{ {X_b}\left( t \right) \times MOP \times \left( {\left( {Ub - Lb} \right) \times \mu + Lb} \right)\quad\quad\quad,} {otherwise.} \cr \end{aligned} } } \right. \tag{3} X(t+1)={ Xb(t)÷(MOP+ε)×((UbLb)×μ+Lb)  ,r2<0.5,Xb(t)×MOP×((UbLb)×μ+Lb),otherwise.(3)其中, r 2 r_{2} r2 [ 0 , 1 ] [0,1] [0,1] 的随机数, X ( t + 1 ) X(t+1) X(t+1) 为下一代粒子的位置, X b ( t ) X_{b}(t) Xb(t) 为当前适应度最佳粒子的位置, μ μ μ 为搜索过程控制系数(值为0.499), ε ε ε 为极小值, M O P MOP MOP 为数学优化器概率,其计算公式如下:
M O P ( t ) = 1 − ( t T ) 1 α (4) MOP\left( t \right) = 1 - {\left( { {t \over T}} \right)^{1 \over \alpha} } \tag{4} MOP(t)=1(Tt)α1(4)式中, M O P ( t ) MOP(t) MOP(t) 为当前数学优化器概率, α α α 为迭代敏感系数, α α α 值越高迭代次数对 M O P ( t ) MOP(t) MOP(t) 影响越大。

2. 4 开发阶段

  算术优化算法通过加法策略和减法策略进行局部开发,两种策略均具有显著的低分散性,可以容易地接近目标,有利于算法更快寻找最优解。其计算公式如下:
X ( t + 1 ) = { X b ( t ) − M O P × ( ( U b − L b ) × μ + L b ) , r 3 < 0.5 , X b ( t ) + M O P × ( ( U b − L b ) × μ + L b ) , o t h e r w i s e . (5) {X_{\left( {t + 1} \right)}} = \left\{ {\begin{aligned} { {X_b}\left( t \right) - MOP \times \left( {\left( {Ub - Lb} \right) \times \mu + Lb} \right),} & { {r_3} < 0.5,} \cr { {X_b}\left( t \right) + MOP \times \left( {\left( {Ub - Lb} \right) \times \mu + Lb} \right),} & {otherwise.} \cr \end{aligned} } \right. \tag{5} X(t+1)={ Xb(t)MOP×((UbLb)×μ+Lb),Xb(t)+MOP×((UbLb)×μ+Lb),r3<0.5,otherwise.(5)其中, r 3 r_{3} r3 0 0 0 1 1 1 之间的随机数。

2. 5 算法伪代码

  1. 初始化算术优化算法参数 α α α µ µ µ
  2. 随机初始化解决方案的位置 X i ( i = 1 , 2 , . . . , N ) X_{i}(i=1, 2, ..., N) Xi(i=1,2,...,N)
  3. While t < T t < T t<T do
  4.   计算每个解的适应度值
  5.   找到适应度值最小的解(最佳解)
  6.   利用公式(2)更新 M O A MOA MOA
  7.   利用公式(4)更新 M O P MOP MOP 值。
  8.   For i = 1 i=1 i=1 to N N N do
  9.     For j = 1 j=1 j=1 to D i m Dim Dim do
  10.       生成 [ 0 , 1 ] [0,1] [01] 之间的随机值( r 1 r_{1} r1 r 2 r_{2} r2 r 3 r_{3} r3)
  11.       If r 1 > M O A r_{1}>MOA r1>MOA then
  12.         If r 2 < 0.5 r_{2}<0.5 r2<0.5 then
  13.           使用等式(3)中的第一条公式应用除法运算符更新第 i i i 个解的位置
  14.         Else
  15.           使用等式(3)中的第二条公式应用乘法运算符更新第 i i i 个解的位置
  16.         End If
  17.       Else
  18.         If r 3 < 0.5 r_{3}<0.5 r3<0.5 then
  19.           使用等式(5)中的第一条公式应用减法运算符更新第 i i i 个解的位置
  20.         Else
  21.           使用等式(5)中的第二条公式应用加法运算符更新第 i i i 个解的位置
  22.         End If
  23.       End If
  24.     End For
  25.   End For
  26.    t = t + 1 t = t + 1 t=t+1
  27. End While
  28. 返回最优解

三、实验结果

AOA在23个经典测试函数(设置维度 d i m = 30 dim=30 dim=30)的F4、F6、F8中的收敛曲线,测试函数公式如下:

函数 公式 理论值
F4 F 4 ( x ) = max ⁡ { ∣ x i ∣ , 1 ≤ i ≤ d } {F_4}(x) = \max \{ \left| { {x_i}} \right|,1 \le i \le d\} F4(x)=max{ xi,1id} 0.00 0.00 0.00
F6 F 6 ( x ) = ∑ i = 1 n ( x i + 5 ) 2 {F_6}(x) = {\sum\nolimits_{i = 1}^n {({x_i} + 5)} ^2} F6(x)=i=1n(xi+5)2 0.00 0.00 0.00
F8 F 8 ( x ) = ∑ i = 1 d − x i sin ⁡ ( ∣ x i ∣ ) {F_8}(x) = \sum\nolimits_{i = 1}^d { - {x_i}\sin (\sqrt {|{x_i}|} )} F8(x)=i=1dxisin(xi ) − 418.9829 × d i m -418.9829×dim 418.9829×dim

3. 1 F4收敛曲线

\end{aligned}

3. 2 F6收敛曲线

在这里插入图片描述

3. 3 F8收敛曲线

在这里插入图片描述

四、参考文献

[1] Abualigah L, Diabat A, Mirjalili S, et al. The Arithmetic Optimization Algorithm[J]. Computer Methods in Applied Mechanics and Engineering, 2021, 376, 113609.

猜你喜欢

转载自blog.csdn.net/jiaheming1983/article/details/129345893
今日推荐