基于自适应反馈调节因子的阿基米德优化算法(IAOA)-附代码

基于自适应反馈调节因子的阿基米德优化算法(IAOA)


摘要:针对基础阿基米德优化算法收敛速度慢、容易陷入局部最优的问题,文中提出了一种基于自适应反馈调节因子的阿基米德优化算法。首先,通过佳点集初始化种群,增强初始种群的遍历性,提高初始解的质量;其次,提出自适应反馈调节因子,平衡算法的全局探索与局部开发能力;最后,提出了莱维旋转变换策略,增加种群的多样性,以防止算法陷入局部最优。

1.阿基米德优化算法

基础阿基米德优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/119999874

2. 改进阿基米德优化算法

2.1 佳点集种群初始化

初始种群在解空间中的细微不同都可能影响算法的进化方向,最后产生完全不同的最终结果。在初始化阶段, AOA容易受到随机的干扰,发生聚集现象。本文通过引入佳点集初始化方法,来拟提高算法在解空间上的遍历能力。

2.2 自适应反馈调节因子

在 AOA 迭代后期进行局部开发时, 根据位置更新式可知, 个体收敛于当前最优解的方式是直接跳跃到当前最优 位置附近, 而不是像粒子群优化算法那样向最优位置移动。 这是一种盲目跟进的行为, 导致 A O A \mathrm{AOA} AOA 极容易陷入局部最优。 又根据密度因子式 (7) 可知, 随着迭代次数的增加, 密度因子 会呈现从 1 到0线性递减的趋势。密度因子过小会导致个体 信息的缺失, 从而导致了种群多样性的减少。因此, 本文提出 了自适应反馆调节因子对算法进行改进。本文将种群进化成 功率 [ 23 ] { }^{[23]} [23] 以及个体归一化后的适应度作为反馈调节参数对密 度因子进行改进, 使得个体根据种群所处的实际环境以及自身的适应度动态调节, 具体操作如下。
以最小值问题为例, 个体 i i i 在第 t t t 次迭代中的成功值 S ( i , t ) S(i, t) S(i,t) 定义 为 :
S ( i , t ) = { 1 ,  fit  ( pbest ⁡ i ( t ) ) < f i t (  pbest  i ( t − 1 ) ) 0 ,  fit  ( pbest ⁡ i ( t ) ) =  fit  ( p  pbest  i ( t − 1 ) ) (10) S(i, t)= \begin{cases}1, & \text { fit }\left(\operatorname{pbest}^i(t)\right)<f i t\left(\text { pbest }^i(t-1)\right) \\ 0, & \text { fit }\left(\operatorname{pbest}^i(t)\right)=\text { fit }\left(p \text { pbest }^i(t-1)\right)\end{cases}\tag{10} S(i,t)={ 1,0, fit (pbesti(t))<fit( pbest i(t1)) fit (pbesti(t))= fit (p pbest i(t1))(10)
其中, phest i ( t ) { }^i(t) i(t) 表示迭代至第 t t t 次时, 个体 i i i 的历史最优位置; f i t f i t fit ( 火) 为适应度函数; 根据个体 i i i 的成功值 S ( i , t ) S(i, t) S(i,t), 种群的成 功率 ( P s ) \left(P_s\right) (Ps) 定义为个体历史最优位置对应的进化成功个体数占 种群大小的比例, 计算式如下:
P s ( t ) = 1 N ∑ i = 1 N S ( i , t ) (11) P_s(t)=\frac{1}{N} \sum_{i=1}^N S(i, t)\tag{11} Ps(t)=N1i=1NS(i,t)(11)
其中, N N N 为种群的大小。

在迭代初期, 个体广泛分布在解空间中, 进化成功的个体 相对较多, 种群进化成功率较高, 侧面说明最优个体的引领方 向正确。在迭代后期, 种群个体逐渐聚集, 若进化成功率降 低,则应该保留更多的个体信息来保证算法的局部开发能力。 将种群进化成功率 P s P_s Ps 和密度因子 d d d 结合, 动态反馈算法的进 化状态, 以此来平衡算法的全局开发能力。自适应反馈调节 因子如下:
d i t + 1 = 2 ∗ exp ⁡ ( t max ⁡ − t t max ⁡ ) − ( t t max ⁡ ) ∗ ( α ∗ P s ( t ) + β ∗ F i ) (12) d_i^{t+1}=2 * \exp \left(\frac{t_{\max }-t}{t_{\max }}\right)-\left(\frac{t}{t_{\max }}\right) *\left(\alpha * P_s(t)+\beta * F_i\right)\tag{12} dit+1=2exp(tmaxtmaxt)(tmaxt)(αPs(t)+βFi)(12)
其中, 参数 α \alpha α 表示种群进化成功率重要性系数, F i F_i Fi 定义为:
F i = λ − ( f ( X i ) − f min ⁡ + ε ) / ( f max ⁡ − f min ⁡ + ε ) (13) F_i=\lambda^{-\left(f\left(X_i\right)-f_{\min }+\varepsilon\right) /\left(f_{\max }-f_{\min }+\varepsilon\right)}\tag{13} Fi=λ(f(Xi)fmin+ε)/(fmaxfmin+ε)(13)
其中, F i F_i Fi 表示第 i i i 个个体归一化后的适应度系数; β \beta β 为该系数 的重要性系数; λ \lambda λ 为衰减因子; ε \varepsilon ε 为一个非常小的有理数, 以防 止分母为 0 的情况。自适应反馈调节因子会根据适应度的变 化情况动态调整大小, 若当前个体适应度接近最优适应度, 自 适应反馈调节因子会保持原来的密度因子的性质, 加快算法 的收敛速度。而适应度较差的个体, 其自适应调节因子接近 最大值, 保留了自身更多信息, 保证了算法的局部开发能力。

2.3 莱维旋转变换策略

在保持 A O A \mathrm{AOA} AOA 的种群多样性基础上, 为了提高个体的探 索能力, 避免在迭代后期出现种群陷入局部最优的现象, 本文 提出了莱维旋转变换策略。以莱维步长 [ 24 ] { }^{[24]} [24] 为半径、最优个体 为中心对个体进行旋转变换操作, 以提高种群的多样性和收 敛速度, 其中莱维旋转变换算子为:
x i t = x best  + s ∗ 1 n ∥ x i t ∥ 2 R r x i t (14) \boldsymbol{x}_i^t=\boldsymbol{x}_{\text {best }}+s * \frac{1}{n\left\|\boldsymbol{x}_i^t\right\|_2} \boldsymbol{R}_r \boldsymbol{x}_i^t \tag{14} xit=xbest +snxit21Rrxit(14)
其中, R r ∈ R n ∗ n \boldsymbol{R}_r \in \boldsymbol{R}_{n * n} RrRnn 是一个元素取值在 [ − 1 , 1 ] [-1,1] [1,1] 之间均匀分布的随 机矩阵; ∥ \| - ∥ \| 为向量 2 -范数; s s s 为结合莱维的旋转因子; 理 论上 [ 25 ] { }^{[25]} [25] 能将位置旋转到以 s s s 为半径的任何位置, 可用于控制 解的搜索范围, 其表达式为:
s = 0.01 ∗ μ ∣ ν ∣ 1 / β ( x i t − x best  ) (15) s=0.01 * \frac{\mu}{|\nu|^{1 / \beta}}\left(\boldsymbol{x}_i^t-\boldsymbol{x}_{\text {best }}\right)\tag{15} s=0.01ν1/βμ(xitxbest )(15)
σ μ = { Γ ( 1 + β ) ⋅ sin ⁡ ( π β 2 ) Γ [ ( 1 + β ) 2 ] β ⋅ 2 ( β − 1 ) 2 } 1 / β (16) \sigma_\mu=\left\{\frac{\Gamma(1+\beta) \cdot \sin \left(\frac{\pi \beta}{2}\right)}{\Gamma\left[\frac{(1+\beta)}{2}\right] \beta \cdot 2^{\frac{(\beta-1)}{2}}}\right\}^{1 / \beta}\tag{16} σμ= Γ[2(1+β)]β22(β1)Γ(1+β)sin(2πβ) 1/β(16)
其中, β \beta β 的取值会影响搜索半径的大小, β \beta β 的取值越大, 其局部 开放能力就越强 。

莱维旋转变换算子可以对个体以一定的角度进行旋转, 以最大限度地避免生成重复个体; 并且其结合莱维步长的短 距离步长和长距离步长相间的特点, 扩大群体的搜寻范围, 协 助算法在必要时跳出局部最优, 以提高算法的搜索性能。最 后, 为了兼顾种群搜索领域的广度与深度, 本文根据个体的适 应度值, 计算个体的进化概率, 如式 (17) 所示。个体的可行解 质量越差, 则该个体被选择进行莱维旋转变换操作的概率就 越大, 同时本文还采用贪婪选择更新解, 在保留优势个体的同 时兼顾个体的探索能力。
p i = f i t i ∑ i = 1 N f i t i (17) p_i=\frac{f i t_i}{\sum_{i=1}^N f i t_i}\tag{17} pi=i=1Nfitifiti(17)
其中, p i p_i pi 是选择概率; f i t i f i t_i fiti 的表达式为:
 fit  i = { 1 1 + f i , f i ⩾ 0 1 + ∣ f i ∣ , f i < 0 (18) \text { fit }_i= \begin{cases}\frac{1}{1+f_i}, & f_i \geqslant 0 \\ 1+\left|f_i\right|, & f_i<0\end{cases}\tag{18}  fit i={ 1+fi1,1+fi,fi0fi<0(18)
其中, f i f_i fi 为第 i i i 个个体的适应度值。

在这里插入图片描述

3.实验结果

在这里插入图片描述

4.参考文献

[1]陈俊,何庆,李守玉.基于自适应反馈调节因子的阿基米德优化算法[J].计算机科学,2022,49(08):237-246.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/130913205
今日推荐