与其他基于种群的优化算法一样,Gold-SA 算法也从随机生成的种群开始。Gold-SA 算法初始种群旨在通过随机生成每个维度的均匀分布来更好地扫描搜索空间。
V i = r a n d ∗ ( u b − l b ) + l b (1) V_i = rand*(ub-lb)+lb\tag{1} Vi=rand∗(ub−lb)+lb(1)
式中 V i V_i Vi 第 i i i个个体初始值; u b , l b ub,lb ub,lb为搜索空间上下限值。
Gold-SA 算法在位置更新过程中引入黄金分割系数 x 1 , x 2 x_1 ,x_2 x1,x2 使“搜索”和“开发”达到良好的平衡,这些系数缩小了搜索空间引
领个体趋近最优值。 x 1 , x 2 x_1 ,x_2 x1,x2 表示如式(2)、(3):
x 1 = a ∗ ( 1 − t ) + b ∗ t (2) x_1 = a*(1-t)+b*t \tag{2} x1=a∗(1−t)+b∗t(2)
x 2 = a ∗ t + b ∗ ( 1 − t ) (3) x_2 = a*t+b*(1-t) \tag{3} x2=a∗t+b∗(1−t)(3)
式中 a 、 b a 、b a、b为黄金分割比率搜索初始值,一般 a = − π , b = π a = -\pi,b=\pi a=−π,b=π,t为黄金分比率。 t = ( 5 − 1 ) / 2 t=(\sqrt5 - 1)/2 t=(5−1)/2
随着迭代次数的增加,Gold-SA算法通过式(4)进行位置更新
V i t + 1 = V i t ∣ s i n ( r 1 ) ∣ − r 2 s i n ( r 1 ) ∣ x 1 D i t − x 2 V i t ∣ (4) V_i^{t+1}=V_i^{t}|sin(r1)|-r_2sin(r_1)|x_1D_i^t-x_2V_i^t|\tag{4} Vit+1=Vit∣sin(r1)∣−r2sin(r1)∣x1Dit−x2Vit∣(4)
式中 V i t + 1 V_i^{t+1} Vit+1第 i 个个体第 t + 1 次迭代位置; V i t V_i^t Vit第 i 个个体第 t 次迭代位置; D i t D_i^t Dit第 i 个个体第 t 次迭代最优位置; r 1 r_1 r1为 [ 0 , 2 π ] [0,2\pi] [0,2π]范围内的随机数; r 2 r_2 r2为 [ 0 , π ] [0,\pi] [0,π]范围内的随机数; x 1 , x 2 x_1,x_2 x1,x2为黄金分割系数。
算法流程如下:
Step1.初始化参数,设置黄金正弦相关参数
Step2.计算适应度值
Step3.计算黄金分割率
Step4.根据位置更新公式,更新位置。
Step5.计算适应度值,并更新最优位置,记录最优位置。
Step6.判断是否达到迭代结束条件,如果达到则输出最后结果,否则重复不揍Step1-6.
[1] TANYILDIZI E,DEMIR G. Golden sine algorithm: a novel math inspired algorithm[J]. Advances in Electrical and Computer Engineering,2017,17(2): 71 -79.
[2] 周有荣,李娜,周发辉.黄金正弦算法在水文地质参数优化中的应用[J].人民珠江,2020,41(06):117-120+128.
https://mianbaoduo.com/o/bread/YZWalJ5q
[1] 周有荣,李娜,周发辉.黄金正弦算法在水文地质参数优化中的应用[J].人民珠江,2020,41(06):117-120+128.
https://mianbaoduo.com/o/bread/mbd-YZWalJhu