智能优化算法:黄金正弦算法
摘要:黄金正弦算法(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∗(ub−lb)+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∗(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
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=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.
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代码
个人资料介绍