前言

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

算法原理

初始化

与其他基于种群的优化算法一样,Gold-SA 算法也从随机生成的种群开始。Gold-SA 算法初始种群旨在通过随机生成每个维度的均匀分布来更好地扫描搜索空间。
$$
V_{i}=rand*(ub-lb)+lb\tag{1}
$$
式中$V_{i}$是第$i$个个体的初始值$ub$,$lb$为搜索空间的上下限。

黄金分割系数

Gold-SA 算法在位置更新过程中引入黄金分割系数 $x_{1}$ 和 $x_{2}$使“搜索”和“开发”达到良好的平衡,这些系数缩小了搜索空间引领个体趋近最优值。
$$
x_{1}=a*(1-t)+bt
$$
$$
x_{2}=a
t+b*(1-t)
$$
式中$a$、$b$为黄金分割比率搜索初始值,一般$a= -\pi$,$b=\pi$,$t$为黄金分比率。$t = (\sqrt{5}-1)/2$

位置更新

随着迭代次数的增加,Gold-SA算法通过下式进行位置更新
$$
\mathrm{V}{\mathrm{i}}^{\mathrm{t}+1}=\mathrm{V}{\mathrm{i}}^{\mathrm{t}}|\sin (\mathrm{r} 1)|-\mathrm{r}{2} \sin \left(\mathrm{r}{1}\right)\left|\mathrm{x}{1} \mathrm{D}{\mathrm{i}}^{\mathrm{t}}-\mathrm{x}{2} \mathrm{~V}{\mathrm{i}}^{\mathrm{t}}\right|
$$

算法流程

  1. 初始化参数,设置黄金正弦相关参数

  2. 计算适应度值

  3. 计算黄金分割率

  4. 根据位置更新公式,更新位置。

  5. 计算适应度值,并更新最优位置,记录最优位置。

  6. 判断是否达到迭代结束条件,如果达到则输出最后结果,否则重复1-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.

[3] https://blog.csdn.net/u011835903/article/details/111699194