mpa算法是2020年提出来的新型群体智能算法,原文Marine Predators Algorithm: A nature-inspired metaheuristic的doi:https://doi.org/10.1016/j.eswa.2020.113377,直接搜索sci hub输入DOI编号即可下载阅读阅文。
MPA算法流程如图
图1 MPA算法流程图
通过阅读文献和代码,对整体流程用自己的话解读一遍,初学若有错误,请及时提出,万分感谢!
首先所有的优化算法,都有共同的第一步,那就是种群初始化。
其中Xmin和Xmax是上边界与下边界,rand生成(0,1)范围内的随机数。
种群初始化matlab代码
function Positions=initialization(SearchAgents_no,dim,ub,lb)
Boundary_no= size(ub,2); % numnber of boundaries size(a,2)返回矩阵a的列数
% If the boundaries of all variables are equal and user enter a signle
% number for both ub and lb
if Boundary_no==1
Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;
end
% If each variable has a different lb and ub
if Boundary_no>1
for i=1:dim
ub_i=ub(i);
lb_i=lb(i);
Positions(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i;
end
end
上面展示的代码为种群初始化代码,问题1,size函数返回数组A的行数和列数,但是我在分步运行的时候,遇到以下问题。