Golden-Sine算法(Gold-SA)是一种新的求解优化问题的元启发式方法。
Golden Sine Algorithm (Gold-SA) is presented as a new metaheuristic method for solving optimization problems.
Gold-SA是一种基于种群的搜索算法。
Gold-SA has been developed as a new search algorithm based on population.
在该算法中,随机个体的数量与每个维度上均匀分布的搜索智能体的数量一样多。
In the algorithm, random individuals are created as many as the number of search agents with uniform distribution for each dimension.
Gold-SA算子通过尝试使当前情况更接近目标值,在每次迭代中搜索以获得更好的解决方案。
The Gold-SA operator searches to achieve a better solution in each iteration by trying to bring the current situation closer to the target value.
通过黄金分割缩小解空间的范围,这样就可以搜索那些只给出好结果的区域,而不是整个解空间的搜索。
The solution space is narrowed by the golden section so that the areas that are supposed to give only good results are scanned instead of the whole solution space scan.
Tanyildizi, Erkan, and Gokhan Demir. “Golden sine algorithm: a novel math-inspired algorithm.” Advances in Electrical and Computer Engineering, vol. 17, no. 2, 2017, p. 71-78
% Main paper:
% E. Tanyildizi, G. Demir, "Golden Sine Algorithm: A Novel Math-Inspired Algorithm," Advances in Electrical and Computer Engineering, vol.17, no.2, pp.71-78, 2017, doi:10.4316/AECE.2017.02010
%______________________________________________________________________________________________
% func_obj = @CostFunction
% dim = number of your variables
% Max_iteration = maximum number of iterations
% Population = number of search agents
% Lb=Lower bound
% Ub=Upper bound
% To run GoldSA: [Best_value,Best_pos]=GoldSA(Population,Max_Iter,Lb,Ub,dim,func_obj)
%______________________________________________________________________________________________
clear
clc
sayac=0;
while sayac <10
sayac =sayac+1;
Population=30; % Number of population
Function='F2'; % Name of the test function that can be from F1 to F5 (Table 1,2,3 in the paper)
Max_Iter=1000; % Maximum numbef of iterations
% Load details of the selected benchmark function
[Lb,Ub,dim,func_obj]=Get_Functions_details(Function);
[Best_value,Best_pos]=GoldSA(Population,Max_Iter,Lb,Ub,dim,func_obj);
% time(sayac)=toc;
sonuc(sayac)=Best_value;
kisit(sayac,:)=Best_pos;
end
% runtime=mean(time)
% matlab.io.saveVariablesToScript(Function,{'sonuc','kisit','runtime','time'});
完整代码或者代写添加QQ1575304183