RedZero9 发表于 2022-8-28 11:40

智能优化算法基准测试集--之一

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,'LineStyle','none');%绘制曲面
    title('F12 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,'LineStyle','none');%绘制曲面
    title('F13 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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'-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,'LineStyle','none');%绘制曲面
    title('F14 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,'LineStyle','none');%绘制曲面
    title('F15 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,'LineStyle','none');%绘制曲面
    title('F16 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,'LineStyle','none');%绘制曲面
    title('F17 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,'LineStyle','none');%绘制曲面
    title('F18 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,'LineStyle','none');%绘制曲面
    title('F19 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,'LineStyle','none');%绘制曲面
    title('F20 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,:))'+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,'LineStyle','none');%绘制曲面
    title('F21 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,:))'+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,'LineStyle','none');%绘制曲面
    title('F22 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%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,:))'+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,'LineStyle','none');%绘制曲面
    title('F23 space') %图表名称
    xlabel('x_1');%x轴名称
    ylabel('x_2');%y轴名称
    grid on
end


当维度为2维时

参考文献

智能优化算法及其MATLAB实现,陈克伟,电子工业出版社,2022年1月
页: [1]
查看完整版本: 智能优化算法基准测试集--之一