学生心理学优化算法(Student psychology based optimization algorithm,SPBO)是于2020 提出的一种基于学生向往提高成绩的心理提出的新颖智能优化算法。
In this article, a new metaheuristic optimization algorithm (named as, student psychology based optimization(SPBO)) is proposed. The proposed SPBO algorithm is based on the psychology of the students who are trying togive more effort to improve their performance in the examination up to the level for becoming the best student inthe class. Performance of the proposed SPBO is analyzed while applying the algorithm to solve thirteen 50dimensional benchmark functions as well as fifteen CEC 2015 benchmark problems. Results of the SPBO iscompared to the performance of ten other state-of-the-art optimization algorithms such as particle swarm optimization, teaching learning based optimization, cuckoo search algorithm, symbiotic organism search, covariantmatrix adaptation with evolution strategy, success-history based adaptive differential evolution, grey wolf optimization, butterfly optimization algorithm, poor and rich optimization algorithm, and barnacles mating optimizer. For fair analysis, performances of all these algorithms are analyzed based on the optimum results obtained as well as based on convergence mobility of the objective function. Pairwise and multiple comparisons areperformed to analyze the statistical performance of the proposed method. From this study, it may be establishedthat the proposed SPBO works very well in all the studied test cases and it is able to obtain an optimum solutionwith faster convergence mobility.
% Student psychology based optimization (SPBO)algorithm %% % % % Main paper: % Bikash Das, V Mukherjee, Debapriya Das, Student psychology based optimization algorithm: A new population based% optimization algorithm for solving optimization problems, Advances in Engineering Software, 146 (2020) 102804.%_______________________________________________________________________________________________% You can simply define your objective function in a seperate file and load its handle to fobj % The initial parameters that you need are:%__________________________________________% fobj = @Objective function% variable = number of your variables% Max_iteration = maximum number of iterations% student = number of search agents% mini=[mini1,mini2,...,minin] where mini is the lower bound of variable n% maxi=[maxi1,maxi2,...,maxin] where maxi is the upper bound of variable n% If all the variables have equal lower bound you can just% define mini and maxi as two single numbers% To run SPBO: [Best_fitness,Best_student,Convergence_curve]=SPBO(student,Max_iteration,mini,maxi,variable,fobj)%______________________________________________________________________________________________clear all clcstudent=20; % Number of student (population)Function_name='F2'; % Name of the test function that can be from F1 to F23 Max_iteration=1000; % Maximum number of iterations% Load details of the selected benchmark function[mini,maxi,variable,fobj]=Functions(Function_name);%Solution obtained using SPBO[Best_fitness,Best_student,Convergence_curve]=SPBO(student,Max_iteration,maxi,mini,variable,fobj);% Converging Curvefigure('Position',[269 240 660 290])%Draw search spacesubplot(1,2,1);func_plot(Function_name);title('Parameter space')xlabel('x_1');ylabel('x_2');zlabel([Function_name,'( x_1 , x_2 )'])%Draw objective spacesubplot(1,2,2);semilogy(Convergence_curve,'Color','r','linewidth',2.5);title('Objective space')xlabel('Iteration');ylabel('Best score obtained so far');legend('SPBO');axis tightgrid onbox on
[1]Bikash Das et al. Student psychology based optimization algorithm: A new population based optimization algorithm for solving optimization problems [J]. Advances in Engineering Software, 2020,46, 102804.
部分理论引用网络文献,若有侵权联系博主删除。