智能优化算法基准测试集--之一
F1函数f_1(x)=\sum_{i=1}^n x_i^2 ,维度30,变量范围值[-100,100],全局最优值0.
function o = F1_Fun(x)
o=sum(x.^2);
end
%F1搜索空间绘图函数
function F1_FunPlot()
x=-100:2:100;%x的范围[-100,100]
y=x; %y的范围[-100,100]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F1_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F1 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
end
维度为二维时的搜索曲面
F2函数
f_2(x)=\sum_{i=1}^n| x_i|+\prod_{i=1}^n| x_i| ,维度30,变量范围值[-10,10],全局最优值0.
function o = F2_Fun(x)
o=sum(abs(x))+prod(abs(x));
end
%F2搜索空间绘图函数
function F2_FunPlot()
x=-10:0.1:10;%x的范围[-10,10]
y=x; %y的范围[-10,10]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F2_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F2 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F3函数
f_3(x)=\sum_{i=1}^n (\sum_{j=1}^ix_j)^2 ,维度30,变量范围值[-100,100],全局最优值0.
function o = F3_Fun(x)
dim=size(x,2);
o=0;
for i=1:dim
o=o+sum(x(1:i))^2;
end
end
%F3搜索空间绘图函数
function F3_FunPlot()
x=-100:2:100;%x的范围[-100,100]
y=x; %y的范围[-100,100]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F3_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F3 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F4函数
f_4(x)=max_i\{|x_i|,1\leq i\leq n\} ,维度30,变量范围值[-100,100],全局最优值0.
function o = F4_Fun(x)
o=max(abs(x));
end
%F4搜索空间绘图函数
function F4_FunPlot()
x=-100:2:100;%x的范围[-100,100]
y=x; %y的范围[-100,100]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F4_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F4 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F5函数
f_5(x)=\sum_{i=1}^{n-1} ,维度30,变量范围值[-30,30],全局最优值0.
function o = F5_Fun(x)
dim=size(x,2);
o=sum(100*(x(2:dim)-(x(1:dim-1).^2)).^2+(x(1:dim-1)-1).^2);
end
%F5搜索空间绘图函数
function F5_FunPlot()
x=-30:0.2:30;%x的范围[-30,30]
y=x; %y的范围[-30,30]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F5_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F5 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F6函数
f_6(x)=\sum_{i=1}^{n}[ x_{i}+0.5]^2 ,维度30,变量范围值[-100,100],全局最优值0.
function o = F6_Fun(x)
o=sum(abs((x+.5)).^2);
end
%F6搜索空间绘图函数
function F6_FunPlot()
x=-100:2:100;%x的范围[-5,5]
y=x; %y的范围[-5,5]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F6_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F6 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F7函数
f_7(x)=\sum_{i=1}^{n} ix_i^4+random(0,1) ,维度30,变量范围值[-1.28,1.28],全局最优值0.
function o = F7_Fun(x)
dim=length(x);
o=sum(.*(x.^4))+rand;
end
%F7搜索空间绘图函数
function F7_FunPlot()
x=-1.28:0.02:1.28;%x的范围[-1.28,1.28]
y=x; %y的范围[-1.28,1.28]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F7_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F7 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F8函数
f_7(x)=\sum_{i=1}^{n} -x_i\sin(\sqrt{|x_i|}) ,维度30,变量范围值[-500,500],全局最优值-418.9829*5.
function o = F8_Fun(x)
o=sum(-x.*sin(sqrt(abs(x))));
end
%F8搜索空间绘图函数
function F8_FunPlot()
x=-500:2:500;%x的范围[-500,500]
y=x; %y的范围[-500,500]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F8_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F8 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F9函数
f_9(x)=\sum_{i=1}^{n} ,维度30,变量范围值[-5.12,5.12],全局最优值0.
function o = F9_Fun(x)
dim=length(x);
o=sum(x.^2-10*cos(2*pi.*x))+10*dim;
end
%F9搜索空间绘图函数
function F9_FunPlot()
x=-5.12:0.02:5.12;%x的范围[-5.12,5.12]
y=x; %y的范围[-5.12,5.12]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F9_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F9 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F10函数
f_{10}(x)=-20\exp(-0.2\sqrt{\frac{1}{n}\sum_{i=1}^nx_i^2})- \exp(\frac{1}{n}\sum_{i=1}^n\cos(2\pi x_i))+20+e ,维度30,变量范围值[-32,32],全局最优值0.
function o = F10_Fun(x)
dim=length(x);
o=-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)+20+exp(1);
end
%F10搜索空间绘图函数
function F10_FunPlot()
x=-32:0.1:32;%x的范围[-32,32]
y=x; %y的范围[-32,32]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F10_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F10 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F11函数
f_{11}(x)=\frac{1}{4000}\sum_{i=1}^nx_i^2-\prod_{i=1}^n\cos(\frac{x_i}{\sqrt{i}})+1 ,维度30,变量范围值[-600,600],全局最优值0.
function o = F11_Fun(x)
dim=length(x);
o=sum(x.^2)/4000-prod(cos(x./sqrt()))+1;
end
%F11搜索空间绘图函数
function F11_FunPlot()
x=-600:2:600;%x的范围[-600,600]
y=x; %y的范围[-600,600]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F11_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,'LineStyle','none');%绘制曲面
title('F11 space') %图表名称
xlabel('x_1');%x轴名称
ylabel('x_2');%y轴名称
grid on
end
维度为二维时的搜索曲面
F12函数
f_{12}(x)=\frac{\pi}{n} \{10\sin(\pi y_1)+\sum_{i=1}^{n-1}(y_i-1)^2\\+(y_n-1)^2+\sum_{i=1}^{n}u(x_i,10,100,4) ,
y_i=1+\frac{x_i+1}{4} ,
u(x_i,a,k,m)=\cases {k(x_i-a)^m,& $x_i>a$\\ 0,& $-a<x_i<a$\\ k(-x_i-a)^m,& $x_i<-a$}
维度30,变量范围值[-50,50],全局最优值0.
function o = F12_Fun(x)
dim=length(x);
o=(pi/dim)*(10*((sin(pi*(1+(x(1)+1)/4)))^2)+sum((((x(1:dim-1)+1)./4).^2).*...
(1+10.*((sin(pi.*(1+(x(2:dim)+1)./4)))).^2))+((x(dim)+1)/4)^2)+sum(Ufun(x,10,100,4));
end
%F12搜索空间绘图函数
function F12_FunPlot()
x=-50:0.1:50;%x的范围[-50,50]
y=x; %y的范围[-50,50]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F12_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F12 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F13函数
f_{13}(x)=0.1 \{ \sin^2(3\pi x_1)+\sum_{i=1}^{n}(x_i-1)^2\\+(x_n-1)^2\}+\sum_{i=1}^{n}u(x_i,5,100,4) ,
维度30,变量范围值[-50,50],全局最优值0.
function o = F13_Fun(x)
dim=length(x);
o=0.1*((sin(3*pi*x(1)))^2+sum((x(1:dim-1)-1).^2.*(1+(sin(3.*pi.*x(2:dim))).^2))+...
((x(dim)-1)^2)*(1+(sin(2*pi*x(dim)))^2))+sum(Ufun(x,5,100,4));
end
function o=Ufun(x,a,k,m)
o=k.*((x-a).^m).*(x>a)+k.*((-x-a).^m).*(x<(-a));
end
%F13搜索空间绘图函数
function F13_FunPlot()
x=-50:0.1:50;%x的范围[-50,50]
y=x; %y的范围[-50,50]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F13_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F13 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F14函数
f_{14}(x)=(\frac{1}{500}+\sum_{j=1}^{25}\frac{1}{j+\sum_{i=1}^2(x_i-a_{ij})^6})^{-1} ,维度2,变量范围值[-65,65],全局最优值1.
function o = F14_Fun(x)
aS=[-32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32;,...
-32 -32 -32 -32 -32 -16 -16 -16 -16 -16 0 0 0 0 0 16 16 16 16 16 32 32 32 32 32];
for j=1:25
bS(j)=sum((x&#39;-aS(:,j)).^6);
end
o=(1/500+sum(1./(+bS))).^(-1);
end
%F14搜索空间绘图函数
function F14_FunPlot()
x=-65:1:65;%x的范围[-65,65]
y=x; %y的范围[-65,65]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F14_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F14 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F15函数
f_{15}(x)=\sum_{i=1}^{11} ^2 ,维度4,变量范围值[-5 ,5],全局最优值0.0003.
function o = F15_Fun(x)
aK=;
bK=;bK=1./bK;
o=sum((aK-((x(1).*(bK.^2+x(2).*bK))./(bK.^2+x(3).*bK+x(4)))).^2);
end
%F15搜索空间绘图函数
function F15_FunPlot()
x=-5:0.1:5;%x的范围[-5,5]
y=x; %y的范围[-5,5]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F15_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F15 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F16函数
f_{16}(x)=4x_1^2-2.1x_1^4+\frac{1}{4}x_1^6+x_1x_2-4x_2^2+4x_2^4 ,维度2,变量范围值[-5 ,5],全局最优值-1.3016.
function o = F16_Fun(x)
o=4*(x(1)^2)-2.1*(x(1)^4)+(x(1)^6)/3+x(1)*x(2)-4*(x(2)^2)+4*(x(2)^4);
end
%F16搜索空间绘图函数
function F16_FunPlot()
x=-5:0.1:5;%x的范围[-5,5]
y=x; %y的范围[-5,5]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F16_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F16 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F17函数
f_{17}(x)=(x_2-\frac{5.1}{4\pi^2}x_1^2+\frac{5}{\pi}x_1-6)^2+10(1-\frac{1}{8\pi})\cos x_1+10 ,维度2,变量范围值[-5 ,5],全局最优值0.398.
function o = F17_Fun(x)
o=(x(2)-(x(1)^2)*5.1/(4*(pi^2))+5/pi*x(1)-6)^2+10*(1-1/(8*pi))*cos(x(1))+10;
end
%F17搜索空间绘图函数
function F17_FunPlot()
x=-5:0.1:5;%x的范围[-5,5]
y=x; %y的范围[-5,5]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F17_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F17 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F18函数
f_{18}(x)=\\*
维度2,变量范围值[-5 ,5],全局最优值3.
function o = F18_Fun(x)
o=(1+(x(1)+x(2)+1)^2*(19-14*x(1)+3*(x(1)^2)-14*x(2)+6*x(1)*x(2)+3*x(2)^2))*...
(30+(2*x(1)-3*x(2))^2*(18-32*x(1)+12*(x(1)^2)+48*x(2)-36*x(1)*x(2)+27*(x(2)^2)));
end
%F18搜索空间绘图函数
function F18_FunPlot()
x=-2:0.1:2;%x的范围[-2,2]
y=x; %y的范围[-2,2]
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F18_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F18 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F19函数
f_{19}(x)=-\sum_{i=1}^4c_i\exp(-\sum_{j=1}^3a_{ij}(x_j-p_{ij})^2)
维度2,变量范围值,全局最优值-3.86.
function o = F19_Fun(x)
aH=;cH=;
pH=[.3689 .117 .2673;.4699 .4387 .747;.1091 .8732 .5547;.03815 .5743 .8828];
o=0;
for i=1:4
o=o-cH(i)*exp(-(sum(aH(i,:).*((x-pH(i,:)).^2))));
end
end
%F19搜索空间绘图函数
function F19_FunPlot()
x=1:0.1:3;%x的范围
y=x; %y的范围
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F19_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F19 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F20函数
f_{20}(x)=-\sum_{i=1}^4c_i\exp(-\sum_{j=1}^6a_{ij}(x_j-p_{ij})^2)
维度6,变量范围值,全局最优值-3.32.
function o = F20_Fun(x)
aH=;
cH=;
pH=[.1312 .1696 .5569 .0124 .8283 .5886;.2329 .4135 .8307 .3736 .1004 .9991;...
.2348 .1415 .3522 .2883 .3047 .6650;.4047 .8828 .8732 .5743 .1091 .0381];
o=0;
for i=1:4
o=o-cH(i)*exp(-(sum(aH(i,:).*((x-pH(i,:)).^2))));
end
end
%F20搜索空间绘图函数
function F20_FunPlot()
x=0:0.01:1;%x的范围
y=x; %y的范围
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F20_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F20 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
F21函数
f_{21}(x)=-\sum_{i=1}^5[(X-a_i)(X-a_i)^T+c_i]^{-1}
维度4,变量范围值,全局最优值-10.1532.
function o = F21_Fun(x)
aSH=;
cSH=[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];
o=0;
for i=1:5
o=o-((x-aSH(i,:))*(x-aSH(i,:))&#39;+cSH(i))^(-1);
end
end
%F21搜索空间绘图函数
function F21_FunPlot()
x=0:0.1:10;%x的范围
y=x; %y的范围
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F21_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F21 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
当维度为2维时的图形
F22函数
f_{22}(x)=-\sum_{i=1}^7[(X-a_i)(X-a_i)^T+c_i]^{-1}
维度4,变量范围值,全局最优值-10.4028.
function o = F22_Fun(x)
aSH=;
cSH=[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];
o=0;
for i=1:7
o=o-((x-aSH(i,:))*(x-aSH(i,:))&#39;+cSH(i))^(-1);
end
end
%F22搜索空间绘图函数
function F22_FunPlot()
x=0:0.1:10;%x的范围
y=x; %y的范围
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F22_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F22 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
当维度为2维时
F23函数
f_{23}(x)=-\sum_{i=1}^{10}[(X-a_i)(X-a_i)^T+c_i]^{-1}
维度4,变量范围值,全局最优值-10.5363.
function o = F23_Fun(x)
aSH=;
cSH=[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];
o=0;
for i=1:10
o=o-((x-aSH(i,:))*(x-aSH(i,:))&#39;+cSH(i))^(-1);
end
end
%F23搜索空间绘图函数
function F23_FunPlot()
x=0:0.1:10;%x的范围
y=x; %y的范围
L=length(x);
for i = 1:L
for j = 1:L
f(i,j) = F22_Fun(); %输入对应的函数输出值
end
end
surfc(x,y,f,&#39;LineStyle&#39;,&#39;none&#39;);%绘制曲面
title(&#39;F23 space&#39;) %图表名称
xlabel(&#39;x_1&#39;);%x轴名称
ylabel(&#39;x_2&#39;);%y轴名称
grid on
end
当维度为2维时
参考文献
智能优化算法及其MATLAB实现,陈克伟,电子工业出版社,2022年1月
页:
[1]