黄金正弦算法(Golden Sine Algorithm)是Tanyildizi等于2017年提出的一种新型元启发式优化算法,其灵感来源于正弦函数单位圆内扫描类似于待优化问题解的空间搜索,并通过黄金分割率缩小搜索空间以逼近算法最优解。与传统元启发式优化算法相比,GSA算法具有原理简单、设置参数少、寻优能力强等特点。
算法伪代码:
部分主函数:
def GSA(pop,dim,lb,ub,maxIter,fun):
'''Golden Sine Algorithm'''
'''
Input
pop:种群数量
dim:个体的维度
lb:变量的下边界
ub:变量的上边界
maxIter:最大迭代次数
fun:适应度函数
Output
GbestScore:最优解对应的适应度值
GbestPosition:最优解
Curve:迭代曲线
'''
a=-math.pi
b=math.pi
gold=(np.sqrt(5)-1)/2
x1=a+(1-gold)*(b-a)
x2=a+gold*(b-a)
X=initialization(pop,ub,lb,dim)
测试函数:
def F(X):
R=np.sum(-X*np.sin(np.sqrt(np.abs(X))))
return R
测试结果:
# The best score : [-837.94846574]
# The best solution: [[421.23600577 421.22512639]]
参考文献:
[1]周有荣,李娜,周发辉.黄金正弦算法在水文地质参数优化中的应用[J].人民珠江,2020,41(06):117-120+128.
[2]肖子雅,刘升.精英反向黄金正弦鲸鱼算法及其工程优化研究[J].电子学报,2019,47(10):2177-2186.
[3] Tanyildizi E, Demir G. Golden Sine Algorithm: A Novel Math-Inspired Algorithm[J]. Advances in Electrical and Computer Engineering, 2017, 17(2): 71-78.