智能优化算法:黄金正弦算法 -附代码

智能优化算法:黄金正弦算法


摘要:黄金正弦算法(Gold-SA)是 Tanyildizi 等 于2017 年提出的一种新型元启发式优化算法,其灵感来源于正弦函数单位圆内扫描类似于待优化问题解的空间搜索,并通过黄金分割率缩小搜索空间以逼近算法最优解。与传统元启发式优化算法相比,Gold-SA 算法具有原理简单、设置参数少、寻优能力强等特点。

1.算法原理

1.1 初始化

与其他基于种群的优化算法一样,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(ublb)+lb(1)
式中 V i V_i Vi i i i个个体初始值; u b , l b ub,lb ub,lb为搜索空间上下限值。

1.2 黄金分割系数

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(1t)+bt(2)

x 2 = a ∗ t + b ∗ ( 1 − t ) (3) x_2 = a*t+b*(1-t) \tag{3} x2=at+b(1t)(3)

式中 a 、 b a 、b ab为黄金分割比率搜索初始值,一般 a = − π , b = π a = -\pi,b=\pi a=π,b=π,t为黄金分比率。 t = ( 5 − 1 ) / 2 t=(\sqrt5 - 1)/2 t=(5 1)/2

1.3 位置更新

随着迭代次数的增加,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=Vitsin(r1)r2sin(r1)x1Ditx2Vit(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.

2.实验结果

在这里插入图片描述

3.参考文献

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

4.Matlab代码

黄金正弦算法
算法相关应用

名称说明或者参考文献
黄金正弦算法在水文地质参数优化中的应用[1] 周有荣, 李娜, 周发辉. 黄金正弦算法在水文地质参数优化中的应用[J]. 人民珠江, 2020, 041(006):117-120,128.

5.Python代码

个人资料介绍

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值