这项研究发展了一个新的元启发式算法,它是受水母在海洋中的行为启发,被称为人工水母搜索(JS)优化器

水母搜索行为的模拟包括它们跟随洋流、它们在水母群中的运动(主动运动和被动运动)、在这些运动之间切换的时间控制机制,以及收敛到水母花的状态。新算法在基准函数和优化问题上得到了成功的测试。值得注意的是,JS只有两个控制参数,即群体规模和迭代次数。因此,JS的使用非常简单,并且可能是解决优化问题的一个优秀的元启发式算法。

%-----------------------------------------------------------------------------------------------------------------%
%  Jellyfish Search Optimizer (JS) source codes demo version 1.0  Developed in MATLAB R2016a                      %
%  Author and programmer:                                                                                         %
%         Professor        Jui-Sheng Chou                                                                         %
%         Ph.D. Candidate  Dinh- Nhat Truong                                                                      %
%  Paper: A Novel Metaheuristic Optimizer Inspired By Behavior of Jellyfish in Ocean,                             %
%         Applied Mathematics and Computation. Computation, Volume 389, 15 January 2021, 125535.                  %
                                                          %
%                                     PiM Lab, NTUST, Taipei, Taiwan, July-2020                                   %
%-----------------------------------------------------------------------------------------------------------------%
function main
clear all
clc
%% Select function
fnumber=1;            % Select function
[lb ub dim]=boundcondition(fnumber);
%% Set the parameters
Npop=50;              % Number of jellyfish
Max_iteration=10000;   % Maximum numbef of iterations
para=[Max_iteration Npop];
%% Run JS optimizer
tic;
[u,fval,NumEval,fbestvl]=js(@fobj,fnumber,lb,ub,dim,para);
time=toc;
%% Display optimal results
display(['-------------------------------------------------------------------------']);
display(['  Jellyfish Search Optimizer (JS) for mathematical benchmark problems    ']);
display(['-------------------------------------------------------------------------']);
display(['The best solution obtained by JS is : ', num2str(u)]);
display(['The best optimal value of the objective function found by JS is : ', num2str(fval)]);
%% Save optimal results
save('result.mat','time','u','fval','NumEval','fbestvl');
end
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.

-------------------------------------------------------------------------
  Jellyfish Search Optimizer (JS) for mathematical benchmark problems    
-------------------------------------------------------------------------
The best solution obtained by JS is : -4.8863     -4.7471     -4.6175     -4.7259     -4.6108
The best optimal value of the objective function found by JS is : 0
>>