单目标应用:麻雀搜索算法(SSA)MATLAB画爱心

一、麻雀搜索算法 SSA

麻雀搜索算法(sparrow search algorithm,SSA)由Jiankai Xue等人于2020年提出,该算法是根据麻雀觅食并逃避捕食者的行为而提出的群智能优化算法。SSA 主要是受麻雀的觅食行为和反捕食行为的启发而提出的。该算法比较新颖,具有寻优能力强,收敛速度快的优点。麻雀群觅食过程也是发现者-跟随者模型的一种,同时还叠加了侦查预警机制。麻雀中找到食物较好的个体作为发现者,其他个体作为跟随者,同时种群中选取一定比例的个体进行侦查预警,如果发现危险则放弃食物,安全第一。
单目标应用:麻雀搜索算法(SSA)MATLAB画爱心_第1张图片

二、爱心函数拟合

爱心函数可由一组余弦正交函数基构成,因此SSA优化该正交函数基的系数即可获得爱心函数。加大迭代次数效果更好。

2.1求解过程:

SSA画爱心

2.2求解结果:

单目标应用:麻雀搜索算法(SSA)MATLAB画爱心_第2张图片

2.3最终函数

x=linspace(-2,2,400);
%X为麻雀搜索算法求解得到的最终参数
X=[1.31019428548365,-0.648540409755690,-0.236997783455681,0.273117721603233,-0.251058335967004,-0.0492080470377230,0.133258526786096,-0.166543382966308,0.0252460095350893,0.0547239628984658,-0.121881402188698,0.0892019918525742,-0.0611438846127992,0.0178480834260963,-0.00796651829449292,-2.98773516366229,0.789574927467657,-0.202926905467625,-0.385710433099510,0.265895049915549,-0.175362709395008,-0.00154250110061306,-0.0614727635025854,0.0849598904656790,-0.119366274191529,0.0117415022417509,0.0713647215457548,-0.139056677011055,0.0993588848209280,-0.0517882809293093];
len=size(X,2);
ypredata=zeros(size(x));
zpredata=zeros(size(x));
for i=1:size(x,2)
    for j=1:len/2
        ypredata(i)=ypredata(i)+X(j).*cos(j*x(i));%采用余弦正交函数基拟合
        zpredata(i)=zpredata(i)+X(j+len/2).*cos(j*x(i));%采用余弦正交函数基拟合
    end
end
figure  
plot(x,ypredata,'r',x,zpredata,'r');
%去除上右边框刻度
box off  
%移除坐标轴边框
set(gca,'Visible','off');
%设置背景为白色
set(gcf,'color','w');

三、添加博主微信获取代码

你可能感兴趣的:(MATLAB,智能优化算法,单目标应用,人工智能,算法,matlab)