本文主要是介绍融合Sin混沌和分段权值的阿基米德优化算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、理论基础
- 1、阿基米德优化算法
- 2、改进的阿基米德优化算法
- (1)Sin混沌反向学习初始化策略
- (2)算数交叉算子
- (3)分段权值策略
- (4)SAOA算法流程图
- 二、仿真实验与结果分析
- 三、参考文献
一、理论基础
1、阿基米德优化算法
请参考这里。
2、改进的阿基米德优化算法
(1)Sin混沌反向学习初始化策略
本文先利用Sin混沌产生多样性较好的初始种群;其次,根据反向学习产生反向种群;最后,分别计算Sin混沌初始种群及反向种群的适应度,选择适应度低的解作为初始种群,提高了找到最优初始解的概率,从而使种群向全局最优解靠近。Sin混沌1维映射表达式如下: { X n + 1 = sin ( 2 / X n ) n = 0 , 1 , ⋯ , N − 1 ≤ X n ≤ 1 X n ≠ 0 (1) \begin{dcases}X_{n+1}=\sin(2/X_n)\quad n=0,1,\cdots,N\\-1≤X_n≤1\quad\quad\quad X_n≠0\end{dcases}\tag{1} {Xn+1=sin(2/Xn)n=0,1,⋯,N−1≤Xn≤1Xn=0(1)其中, X n X_n Xn是取值为 ( − 1 , 1 ) (-1,1) (−1,1)的序列且初始值不能设置为0。将Sin混沌序列映射到解空间中,得到种群 X = { X i , i = 1 , 2 , … N } , X j = { X j , j = 1 , 2 , … , d i m } X=\{X_i,i=1,2,…N\},X_j=\{X_j,j=1,2,…,dim\} X={Xi,i=1,2,…N},Xj={Xj,j=1,2,…,dim},种群个体表示如下: X i + 1 , j = sin ( 2 / X i , j ) (2) X_{i+1,j}=\sin(2/X_{i,j})\tag{2} Xi+1,j=sin(2/Xi,j)(2)其中, X i + 1 , j X_{i+1,j} Xi+1,j为第 i + 1 i+1 i+1个种群的第 j j j维值。
由种群X计算反向种群 X ∗ = { X i ∗ , i = 1 , 2 , ⋯ , N } , X i ∗ = { X i j ∗ , j = 1 , 2 , ⋯ , d i m } X^*=\{X_i^*,i=1,2,\cdots,N\},X_i^*=\{X_{ij}^*,j=1,2,\cdots,dim\} X∗={Xi∗,i=1,2,⋯,N},Xi∗={Xij∗,j=1,2,⋯,dim},反向种群个体 X i j ∗ X_{ij}^* Xij∗表示如下: X i j ∗ = X min j + X max j − X i j (3) X_{ij}^*=X_{\min j}+X_{\max j}-X_{ij}\tag{3} Xij∗=Xminj+Xmaxj−Xij(3)其中, [ X min j , X max j ] [X_{\min j},X_{\max j}] [Xminj,Xmaxj]为搜索空间的动态边界。将Sin混沌种群 X X X和反向种群 X ∗ X^* X∗组成新种群 { X ∪ X ∗ } \{X\cup X*\} {X∪X∗},将新种群的适应度值进行排序,选择 N N N个适应度值最优的个体组成初始种群。
(2)算数交叉算子
为提高标准AOA的全局搜索性能,本文引入的算术交叉算子,表达式如式(4)所示: X n e w t + 1 = λ × X i t + 1 + ( 1 − λ ) × ( X b e s t − X i t + 1 ) (4) X_{new}^{t+1}=\lambda\times X_i^{t+1}+(1-\lambda)\times(X_{best}-X_i^{t+1})\tag{4} Xnewt+1=λ×Xit+1+(1−λ)×(Xbest−Xit+1)(4)其中, λ ∈ ( 0 , 1 ) \lambda\in(0,1) λ∈(0,1)表示随机数。
通过交叉选择后,利用贪婪机制比较新旧个体适应度值,再决定是否更新当前个体,通过这种斱式不断获得更优解,从而提升算法全局寻优性能。其中贪婪机制的数学模型如式(5)所示: X i t + 1 = { X i t + 1 f ( X i t + 1 ) < f ( X n e w t + 1 ) X n e w t + 1 f ( X i t + 1 ) ≥ f ( X n e w t + 1 ) (5) X_i^{t+1}=\begin{dcases}X_i^{t+1}\quad f(X_i^{t+1})<f(X_{new}^{t+1})\\X_{new}^{t+1}\quad f(X_i^{t+1})≥f(X_{new}^{t+1})\end{dcases}\tag{5} Xit+1={Xit+1f(Xit+1)<f(Xnewt+1)Xnewt+1f(Xit+1)≥f(Xnewt+1)(5)
(3)分段权值策略
为解决标准AOA的“早熟”问题,本文提出分段权值的位置更新策略,首先,借鉴双曲正切函数的思想,
本文在算法迭代前中期种群位置更新处引入动态双曲正切权值 w w w,其值随迭代次数的增加呈非线性递减,其次,在算法迭代后期,引入正弦波动权值,降低算法陷入局部最优的概率。分段权值 w w w的计算公式如(6)所示: w = { w s t a r t − ( w s t a r t − w e n d ) × tanh ( α × π × ( t / t max ) ) t ≤ δ β 1 × sin ( β 2 × π × t + β 3 × π ) + θ t > δ (6) w=\begin{dcases}w_{start}-(w_{start}-w_{end})\times\tanh(\alpha×\pi×(t/t_{\max}))\quad t≤\delta\\\beta_1×\sin(\beta_2×\pi×t+\beta_3×\pi)+\theta\quad\quad\quad\quad\quad\quad\quad\,\,\, t>\delta\end{dcases}\tag{6} w={wstart−(wstart−wend)×tanh(α×π×(t/tmax))t≤δβ1×sin(β2×π×t+β3×π)+θt>δ(6)其中, w s t a r t w_{start} wstart表示迭代开始时的初始权值,即当 t = 0 t=0 t=0时, w s t a r t = 0.8 w_{start}=0.8 wstart=0.8, w e n d w_{end} wend表示迭代结束时的权值,即当 t = t max t=t_{\max} t=tmax, w e n d = 0.4 w_{end}=0.4 wend=0.4; δ = 0.8 × t max \delta=0.8×t_{\max} δ=0.8×tmax; β 1 = 0.23 , β 3 = 2.2 , θ = 0.3 \beta_1=0.23,\beta_3=2.2,\theta=0.3 β1=0.23,β3=2.2,θ=0.3。 α \alpha α和 β 2 \beta_2 β2为调节因子,控制曲线的平滑度,经过多次实验验证,当 α = 0.75 \alpha=0.75 α=0.75和 β 2 = 0.06 \beta_2=0.06 β2=0.06时,实验结果为最优。
由图1可知,在算法迭代初期, w w w值较大,使SAOA具有较强的全局勘探能力,在算法迭代中期, w w w值较小,使SAOA的开収性能逐步提高幵尽可能在最优解附近精确寻优,在算法迭代后期, w w w值的方向和大小变换的不确定性增强SAOA搜索的多元性,避免算法陷入局部极值空间。因此,AOA引入分段权值策略后全局搜索阶段的个体位置更新公式为: X i t + 1 = w × X i t + c 1 × r a n d × a c c i − n o r m t + 1 × d × ( X r a n d − X i t ) (7) X_i^{t+1}=w\times X_i^t+c_1\times rand\times acc_{i-norm}^{t+1}\times d\times (X_{rand}-X_i^t)\tag{7} Xit+1=w×Xit+c1×rand×acci−normt+1×d×(Xrand−Xit)(7)局部开发阶段个体位置更新公式为: X i t + 1 = w × X b e s t t + F × c 2 × r a n d × a c c i − n o r m t + 1 × d × ( T × X b e s t t − X i t ) (8) X_i^{t+1}=w×X_{best}^t+F\times c_2\times rand\times acc_{i-norm}^{t+1}\times d×(T\times X_{best}^t-X_i^t)\tag{8} Xit+1=w×Xbestt+F×c2×rand×acci−normt+1×d×(T×Xbestt−Xit)(8)
(4)SAOA算法流程图
改进算法SAOA流程图如图2所示:
二、仿真实验与结果分析
为验证SAOA算法的可行性和优越性,将基本AOA与本文加入Sin混沌反向学习初始化策略的算法(AOA1)、加入算术交叉算子的算法(AOA2)、加入分段权值策略的算法(AOA3)在8个具有不同寻优特征的基准函数(文献[1]表2所示)上进行仿真实验。算法参数统一设置为:种群规模 N = 30 N=30 N=30,搜索空间维度 d i m = 30 dim=30 dim=30,最大迭代次数 t max = 500 t_{\max}=500 tmax=500。每个算法独立运算30次。
结果显示如下:
函数:F1
AOA:最优值: 1.6746e-66,最差值:1.753e-39,平均值:6.1435e-41,标准差:3.1966e-40
AOA1:最优值: 5.7647e-62,最差值:1.7268e-39,平均值:6.1012e-41,标准差:3.1473e-40
AOA2:最优值: 4.3968e-200,最差值:1.2421e-178,平均值:4.303e-180,标准差:0
AOA3:最优值: 1.5318e-310,最差值:1.1924e-281,平均值:4.0291e-283,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F2
AOA:最优值: 1.6009e-35,最差值:6.5489e-22,平均值:3.2547e-23,标准差:1.2518e-22
AOA1:最优值: 3.7609e-38,最差值:3.583e-21,平均值:1.8295e-22,标准差:6.8358e-22
AOA2:最优值: 2.9226e-103,最差值:9.0725e-92,平均值:3.7514e-93,标准差:1.6608e-92
AOA3:最优值: 4.1632e-155,最差值:5.7685e-144,平均值:2.436e-145,标准差:1.053e-144
SAOA:最优值: 1.5989e-215,最差值:2.724e-205,平均值:9.0884e-207,标准差:0
函数:F3
AOA:最优值: 7.5118e-48,最差值:8.6192e-33,平均值:3.0529e-34,标准差:1.572e-33
AOA1:最优值: 1.0034e-50,最差值:2.8446e-34,平均值:1.8923e-35,标准差:6.3344e-35
AOA2:最优值: 1.1302e-186,最差值:2.7808e-172,平均值:9.7485e-174,标准差:0
AOA3:最优值: 6.277e-300,最差值:3.4202e-274,平均值:1.1944e-275,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F4
AOA:最优值: 7.6449e-29,最差值:3.391e-17,平均值:2.3228e-18,标准差:7.0509e-18
AOA1:最优值: 1.4188e-30,最差值:4.7871e-17,平均值:2.6662e-18,标准差:9.265e-18
AOA2:最优值: 3.1007e-96,最差值:4.9665e-86,平均值:1.9065e-87,标准差:9.0675e-87
AOA3:最优值: 2.3162e-154,最差值:3.0331e-142,平均值:1.7742e-143,标准差:6.4233e-143
SAOA:最优值: 9.0328e-215,最差值:2.3161e-203,平均值:8.747e-205,标准差:0
函数:F5
AOA:最优值: 8.4204e-05,最差值:0.0022504,平均值:0.00089385,标准差:0.00059891
AOA1:最优值: 0.00027581,最差值:0.0055002,平均值:0.0010532,标准差:0.0010696
AOA2:最优值: 6.6486e-06,最差值:0.00022333,平均值:6.3523e-05,标准差:5.1903e-05
AOA3:最优值: 1.2371e-06,最差值:0.00039392,平均值:0.00011008,标准差:9.6329e-05
SAOA:最优值: 9.4862e-07,最差值:0.00028988,平均值:9.4534e-05,标准差:7.4552e-05
函数:F6
AOA:最优值: 0,最差值:154.7181,平均值:91.8765,标准差:58.31
AOA1:最优值: 0,最差值:136.5486,平均值:64.7859,标准差:57.8149
AOA2:最优值: 0,最差值:0,平均值:0,标准差:0
AOA3:最优值: 0,最差值:0,平均值:0,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F7
AOA:最优值: 19.963,最差值:19.9668,平均值:19.9659,标准差:0.001449
AOA1:最优值: 7.9936e-15,最差值:19.9668,平均值:17.9689,标准差:6.092
AOA2:最优值: 8.8818e-16,最差值:4.4409e-15,平均值:3.1382e-15,标准差:1.7413e-15
AOA3:最优值: 8.8818e-16,最差值:8.8818e-16,平均值:8.8818e-16,标准差:0
SAOA:最优值: 8.8818e-16,最差值:4.4409e-15,平均值:1.4803e-15,标准差:1.3467e-15
函数:F8
AOA:最优值: 0,最差值:0.45932,平均值:0.032437,标准差:0.099215
AOA1:最优值: 0,最差值:0.75495,平均值:0.040519,标准差:0.14942
AOA2:最优值: 0,最差值:0,平均值:0,标准差:0
AOA3:最优值: 0,最差值:0,平均值:0,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0
实验结果表明改进算法在搜索精度、收敛速度和稳定性等方面均有较大提升。
三、参考文献
[1] 罗仕杭, 何庆. 融合Sin混沌和分段权值的阿基米德优化算法[J]. 计算机工程与应用, 2022, 58(14): 63-72.
这篇关于融合Sin混沌和分段权值的阿基米德优化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!