700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【智能优化算法-白鲸优化算法】基于白鲸优化算法求解单目标优化问题附matlab代码

【智能优化算法-白鲸优化算法】基于白鲸优化算法求解单目标优化问题附matlab代码

时间:2022-09-29 22:10:37

相关推荐

【智能优化算法-白鲸优化算法】基于白鲸优化算法求解单目标优化问题附matlab代码

1 内容介绍

白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于提出,该算法模拟了白鲸游泳,觅食和“鲸鱼坠落”行为。

在本文中,提出了一种新的基于群体的元启发式算法,其灵感来自白鲸的行为,称为白鲸优化 (BWO),以解决优化问题。BWO中建立了探索、开发和鲸落三个阶段,分别对应成对游泳、猎物和落鲸的行为。BWO中的平衡因子和鲸落概率具有自适应性,对控制探索和开发能力起着重要作用。此外,还引入了 Levy 飞行以增强开发阶段的全局收敛性。使用 30 个基准函数测试了所提出的 BWO 的有效性,并进行了定性、定量和可扩展性分析,并将统计结果与其他 15 种元启发式算法进行了比较。根据结果和讨论,BWO是解决单峰和多峰优化问题的竞争算法,通过弗里德曼排名测试,BWO在比较的元启发式算法中基准函数的可扩展性分析中的整体排名第一。最后,四个工程问题展示了 BWO 在解决复杂的现实世界优化问题中的优点和潜力。

2 仿真代码

function func_plot(func_name)

[lb,ub,dim,fobj]=Get_Functions_details(func_name);

switch func_name

case 'F1'

x=-100:2:100; y=x; %[-100,100]

case 'F2'

x=-10:1:10; y=x; %[-10,10]

case 'F3'

x=-100:2:100; y=x; %[-100,100]

case 'F4'

x=-100:2:100; y=x; %[-100,100]

case 'F5'

x=-30:1:30; y=x; %[-30,30]

case 'F6'

x=-100:2:100; y=x; %[-100,100]

case 'F7'

x=-1:0.03:1; y=x; %[-1.28,1.28]

case 'F8'

x=-10:0.1:10;y=x; %[-10,10]

case 'F9'

x=-10:0.1:10; y=x; %[-10,10]

case 'F10'

x=-1:0.01:1; y=x;%[-1,1]

case 'F11'

x=-100:2:100; y=x;%[-100,100]

case 'F12'

x=-5:0.1:10; y=x;%[-5,10]

case 'F13'

x=-500:5:500; y=x;%[-500,500]

case 'F14'

x=-5.12:0.5:5.12; y=x;%[-5.12,5.12]

case 'F15'

x=-32:0.4:32; y=x;%[-32,32]

case 'F16'

x=-600:6:600; y=x;%[-600,600]

case 'F17'

x=-50:1:50; y=x;%[-50,50]

case 'F18'

x=-50:1:50; y=x;%[-50,50]

case 'F19'

x=-500:5:500; y=x;%[-500,500]

case 'F20'

x=-5:0.1:5; y=x;%[-5,5]

case 'F21'

x=-5:0.1:5; y=x;%[-5.12,5.12]

case 'F22'

x=-10:0.2:10; y=x;%[-10,10]

case 'F23'

x=-20:1:20; y=x;%[-100,100]

case 'F24'

x=-100:2:100; y=x;%[-100,100]

case 'F25'

x=-5:0.1:5; y=x;%[-5,5]

case 'F26'

x=-1:0.01:1; y=x;%[-5,5]

case 'F27'

x=-5:0.1:5; y=x;%[-5,5]

case 'F28'

x=-5:0.06:5; y=x;%[-5,5]

case 'F29'

x=-5:0.1:5; y=x;%[-5,5]

case 'F30'

x=-5:0.1:5; y=x;%[-5,5]

case 'F31'

x=-5:0.1:5; y=x;%[-5,5]

case 'F32'

x=-5:0.1:5; y=x;%[-5,5]

case 'F33'

x=-5:0.1:5; y=x;%[-5,5]

end

clear all;

close all;

clc;

Function_name = 'F2'; % function name

Npop = 50; % Number of search agents

Max_it = 100; % Maximum number of iterations

[lb,ub,nD,fobj]=Get_Functions_details(Function_name);

[xposbest,fvalbest,Curve]=BWO(Npop,Max_it,lb,ub,nD,fobj);

figure('Position',[500 500 660 290])

subplot(1,2,1);

func_plot(Function_name);

title('Objective space')

xlabel('x_1');

ylabel('x_2');

zlabel([Function_name,'( x_1 , x_2 )'])

subplot(1,2,2);

semilogy(Curve,'Color','r');

hold on

title('Objective space')

xlabel('Iterations');

ylabel('Best score');

L=length(x);

f=[];

for i=1:L

for j=1:L

if strcmp(func_name,'F20') == 0 && strcmp(func_name,'F25')==0 && strcmp(func_name,'F29')==0 && strcmp(func_name,'F30')==0 && strcmp(func_name,'F31')==0 && strcmp(func_name,'F32')==0 && strcmp(func_name,'F33')==0

f(i,j)=fobj([x(i),y(j)]);

end

if strcmp(func_name,'F25')==1 || strcmp(func_name,'F20')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F29')==1

f(i,j)=fobj([x(i),y(j),0]);

end

if strcmp(func_name,'F30')==1

f(i,j)=fobj([x(i),y(j),0,0,0,0]);

end

if strcmp(func_name,'F31')==1 || strcmp(func_name,'F32')==1 || strcmp(func_name,'F33')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F21')==1 || strcmp(func_name,'F22')==1 || strcmp(func_name,'F23')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

end

end

surfc(x,y,f,'LineStyle','none');

end

function [lb,ub,dim,fobj] = Get_Functions_details(F)

switch F

case 'F1'

fobj = @F1;

lb=-100;

ub=100;

dim=30;

case 'F2'

fobj = @F2;

lb=-10;

ub=10;

dim=30;

case 'F3'

fobj = @F3;

lb = -1;

ub = 1;

dim = 30;

case 'F4'

fobj = @F4;

lb=-100;

ub=100;

dim=30;

case 'F5'

fobj = @F5;

lb=-100;

ub=100;

dim=30;

case 'F6'

fobj = @F6;

lb=-30;

ub=30;

dim=30;

case 'F7'

fobj = @F7;

lb=-100;

ub=100;

dim=30;

case 'F8'

fobj = @F8;

lb=-1.28;

ub=1.28;

dim=30;

case 'F9'

fobj = @F9;

lb=-5;

ub=10;

dim=30;

case 'F10'

fobj = @F10;

lb=-500;

ub=500;

dim=30;

case 'F11'

fobj = @F11;

lb=-10;

ub=10;

dim=30;

case 'F12'

fobj = @F12;

lb=-5;

ub=5;

dim=30;

case 'F13'

fobj = @F13;

lb=-5.12;

ub=5.12;

dim=30;

case 'F14'

fobj = @F14;

lb=-32;

ub=32;

dim=30;

case 'F15'

fobj = @F15;

lb=-600;

ub=600;

dim=30;

case 'F16'

fobj = @F16;

lb=-10;

ub=10;

dim=30;

case 'F17'

fobj = @F17;

lb=-50;

ub=50;

dim=30;

case 'F18'

fobj = @F18;

lb=-50;

ub=50;

dim=30;

case 'F19'

fobj = @F19;

lb=-65;

ub=65;

dim=2;

case 'F20'

fobj = @F20;

lb=-5;

ub=5;

dim=4;

case 'F21'

fobj = @F21;

lb=-5;

ub=5;

dim=2;

case 'F22'

fobj = @F22;

lb=0;

ub=10;

dim=4;

case 'F23'

fobj = @F23;

lb=0;

ub=10;

dim=4;

case 'F24'

fobj = @F24;

lb=0;

ub=10;

dim=4;

end

end

% F1

function o = F1(x)

o=sum(x.^2);

end

% F2

function o = F2(x)

o=sum(abs(x))+prod(abs(x));

end

% F3

function o = F3(x)

dim = size(x,2);

o=0;

for i=1:dim

o=o+abs(x(i))^(i+1);

end

end

% F4

function o = F4(x)

dim=size(x,2);

o=0;

for i=1:dim

o=o+sum(x(1:i))^2;

end

end

% F5

function o = F5(x)

o=max(abs(x));

end

% F6

function o = F6(x)

dim=size(x,2);

o=sum(100*(x(2:dim)-(x(1:dim-1).^2)).^2+(x(1:dim-1)-1).^2);

end

% F7

function o = F7(x)

o=sum(abs((x+.5)).^2);

end

% F8

1 内容介绍

白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于提出,该算法模拟了白鲸游泳,觅食和“鲸鱼坠落”行为。

在本文中,提出了一种新的基于群体的元启发式算法,其灵感来自白鲸的行为,称为白鲸优化 (BWO),以解决优化问题。BWO中建立了探索、开发和鲸落三个阶段,分别对应成对游泳、猎物和落鲸的行为。BWO中的平衡因子和鲸落概率具有自适应性,对控制探索和开发能力起着重要作用。此外,还引入了 Levy 飞行以增强开发阶段的全局收敛性。使用 30 个基准函数测试了所提出的 BWO 的有效性,并进行了定性、定量和可扩展性分析,并将统计结果与其他 15 种元启发式算法进行了比较。根据结果和讨论,BWO是解决单峰和多峰优化问题的竞争算法,通过弗里德曼排名测试,BWO在比较的元启发式算法中基准函数的可扩展性分析中的整体排名第一。最后,四个工程问题展示了 BWO 在解决复杂的现实世界优化问题中的优点和潜力。

2 仿真代码

function func_plot(func_name)

[lb,ub,dim,fobj]=Get_Functions_details(func_name);

switch func_name

case 'F1'

x=-100:2:100; y=x; %[-100,100]

case 'F2'

x=-10:1:10; y=x; %[-10,10]

case 'F3'

x=-100:2:100; y=x; %[-100,100]

case 'F4'

x=-100:2:100; y=x; %[-100,100]

case 'F5'

x=-30:1:30; y=x; %[-30,30]

case 'F6'

x=-100:2:100; y=x; %[-100,100]

case 'F7'

x=-1:0.03:1; y=x; %[-1.28,1.28]

case 'F8'

x=-10:0.1:10;y=x; %[-10,10]

case 'F9'

x=-10:0.1:10; y=x; %[-10,10]

case 'F10'

x=-1:0.01:1; y=x;%[-1,1]

case 'F11'

x=-100:2:100; y=x;%[-100,100]

case 'F12'

x=-5:0.1:10; y=x;%[-5,10]

case 'F13'

x=-500:5:500; y=x;%[-500,500]

case 'F14'

x=-5.12:0.5:5.12; y=x;%[-5.12,5.12]

case 'F15'

x=-32:0.4:32; y=x;%[-32,32]

case 'F16'

x=-600:6:600; y=x;%[-600,600]

case 'F17'

x=-50:1:50; y=x;%[-50,50]

case 'F18'

x=-50:1:50; y=x;%[-50,50]

case 'F19'

x=-500:5:500; y=x;%[-500,500]

case 'F20'

x=-5:0.1:5; y=x;%[-5,5]

case 'F21'

x=-5:0.1:5; y=x;%[-5.12,5.12]

case 'F22'

x=-10:0.2:10; y=x;%[-10,10]

case 'F23'

x=-20:1:20; y=x;%[-100,100]

case 'F24'

x=-100:2:100; y=x;%[-100,100]

case 'F25'

x=-5:0.1:5; y=x;%[-5,5]

case 'F26'

x=-1:0.01:1; y=x;%[-5,5]

case 'F27'

x=-5:0.1:5; y=x;%[-5,5]

case 'F28'

x=-5:0.06:5; y=x;%[-5,5]

case 'F29'

x=-5:0.1:5; y=x;%[-5,5]

case 'F30'

x=-5:0.1:5; y=x;%[-5,5]

case 'F31'

x=-5:0.1:5; y=x;%[-5,5]

case 'F32'

x=-5:0.1:5; y=x;%[-5,5]

case 'F33'

x=-5:0.1:5; y=x;%[-5,5]

end

clear all;

close all;

clc;

Function_name = 'F2'; % function name

Npop = 50; % Number of search agents

Max_it = 100; % Maximum number of iterations

[lb,ub,nD,fobj]=Get_Functions_details(Function_name);

[xposbest,fvalbest,Curve]=BWO(Npop,Max_it,lb,ub,nD,fobj);

figure('Position',[500 500 660 290])

subplot(1,2,1);

func_plot(Function_name);

title('Objective space')

xlabel('x_1');

ylabel('x_2');

zlabel([Function_name,'( x_1 , x_2 )'])

subplot(1,2,2);

semilogy(Curve,'Color','r');

hold on

title('Objective space')

xlabel('Iterations');

ylabel('Best score');

L=length(x);

f=[];

for i=1:L

for j=1:L

if strcmp(func_name,'F20') == 0 && strcmp(func_name,'F25')==0 && strcmp(func_name,'F29')==0 && strcmp(func_name,'F30')==0 && strcmp(func_name,'F31')==0 && strcmp(func_name,'F32')==0 && strcmp(func_name,'F33')==0

f(i,j)=fobj([x(i),y(j)]);

end

if strcmp(func_name,'F25')==1 || strcmp(func_name,'F20')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F29')==1

f(i,j)=fobj([x(i),y(j),0]);

end

if strcmp(func_name,'F30')==1

f(i,j)=fobj([x(i),y(j),0,0,0,0]);

end

if strcmp(func_name,'F31')==1 || strcmp(func_name,'F32')==1 || strcmp(func_name,'F33')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F21')==1 || strcmp(func_name,'F22')==1 || strcmp(func_name,'F23')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

end

end

surfc(x,y,f,'LineStyle','none');

end

1 内容介绍

白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于提出,该算法模拟了白鲸游泳,觅食和“鲸鱼坠落”行为。

在本文中,提出了一种新的基于群体的元启发式算法,其灵感来自白鲸的行为,称为白鲸优化 (BWO),以解决优化问题。BWO中建立了探索、开发和鲸落三个阶段,分别对应成对游泳、猎物和落鲸的行为。BWO中的平衡因子和鲸落概率具有自适应性,对控制探索和开发能力起着重要作用。此外,还引入了 Levy 飞行以增强开发阶段的全局收敛性。使用 30 个基准函数测试了所提出的 BWO 的有效性,并进行了定性、定量和可扩展性分析,并将统计结果与其他 15 种元启发式算法进行了比较。根据结果和讨论,BWO是解决单峰和多峰优化问题的竞争算法,通过弗里德曼排名测试,BWO在比较的元启发式算法中基准函数的可扩展性分析中的整体排名第一。最后,四个工程问题展示了 BWO 在解决复杂的现实世界优化问题中的优点和潜力。

2 仿真代码

function func_plot(func_name)

[lb,ub,dim,fobj]=Get_Functions_details(func_name);

switch func_name

case 'F1'

x=-100:2:100; y=x; %[-100,100]

case 'F2'

x=-10:1:10; y=x; %[-10,10]

case 'F3'

x=-100:2:100; y=x; %[-100,100]

case 'F4'

x=-100:2:100; y=x; %[-100,100]

case 'F5'

x=-30:1:30; y=x; %[-30,30]

case 'F6'

x=-100:2:100; y=x; %[-100,100]

case 'F7'

x=-1:0.03:1; y=x; %[-1.28,1.28]

case 'F8'

x=-10:0.1:10;y=x; %[-10,10]

case 'F9'

x=-10:0.1:10; y=x; %[-10,10]

case 'F10'

x=-1:0.01:1; y=x;%[-1,1]

case 'F11'

x=-100:2:100; y=x;%[-100,100]

case 'F12'

x=-5:0.1:10; y=x;%[-5,10]

case 'F13'

x=-500:5:500; y=x;%[-500,500]

case 'F14'

x=-5.12:0.5:5.12; y=x;%[-5.12,5.12]

case 'F15'

x=-32:0.4:32; y=x;%[-32,32]

case 'F16'

x=-600:6:600; y=x;%[-600,600]

case 'F17'

x=-50:1:50; y=x;%[-50,50]

case 'F18'

x=-50:1:50; y=x;%[-50,50]

case 'F19'

x=-500:5:500; y=x;%[-500,500]

case 'F20'

x=-5:0.1:5; y=x;%[-5,5]

case 'F21'

x=-5:0.1:5; y=x;%[-5.12,5.12]

case 'F22'

x=-10:0.2:10; y=x;%[-10,10]

case 'F23'

x=-20:1:20; y=x;%[-100,100]

case 'F24'

x=-100:2:100; y=x;%[-100,100]

case 'F25'

x=-5:0.1:5; y=x;%[-5,5]

case 'F26'

x=-1:0.01:1; y=x;%[-5,5]

case 'F27'

x=-5:0.1:5; y=x;%[-5,5]

case 'F28'

x=-5:0.06:5; y=x;%[-5,5]

case 'F29'

x=-5:0.1:5; y=x;%[-5,5]

case 'F30'

x=-5:0.1:5; y=x;%[-5,5]

case 'F31'

x=-5:0.1:5; y=x;%[-5,5]

case 'F32'

x=-5:0.1:5; y=x;%[-5,5]

case 'F33'

x=-5:0.1:5; y=x;%[-5,5]

end

clear all;

close all;

clc;

Function_name = 'F2'; % function name

Npop = 50; % Number of search agents

Max_it = 100; % Maximum number of iterations

[lb,ub,nD,fobj]=Get_Functions_details(Function_name);

[xposbest,fvalbest,Curve]=BWO(Npop,Max_it,lb,ub,nD,fobj);

figure('Position',[500 500 660 290])

subplot(1,2,1);

func_plot(Function_name);

title('Objective space')

xlabel('x_1');

ylabel('x_2');

zlabel([Function_name,'( x_1 , x_2 )'])

subplot(1,2,2);

semilogy(Curve,'Color','r');

hold on

title('Objective space')

xlabel('Iterations');

ylabel('Best score');

L=length(x);

f=[];

for i=1:L

for j=1:L

if strcmp(func_name,'F20') == 0 && strcmp(func_name,'F25')==0 && strcmp(func_name,'F29')==0 && strcmp(func_name,'F30')==0 && strcmp(func_name,'F31')==0 && strcmp(func_name,'F32')==0 && strcmp(func_name,'F33')==0

f(i,j)=fobj([x(i),y(j)]);

end

if strcmp(func_name,'F25')==1 || strcmp(func_name,'F20')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F29')==1

f(i,j)=fobj([x(i),y(j),0]);

end

if strcmp(func_name,'F30')==1

f(i,j)=fobj([x(i),y(j),0,0,0,0]);

end

if strcmp(func_name,'F31')==1 || strcmp(func_name,'F32')==1 || strcmp(func_name,'F33')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F21')==1 || strcmp(func_name,'F22')==1 || strcmp(func_name,'F23')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

end

end

surfc(x,y,f,'LineStyle','none');

end

function [lb,ub,dim,fobj] = Get_Functions_details(F)

switch F

case 'F1'

fobj = @F1;

lb=-100;

ub=100;

dim=30;

case 'F2'

fobj = @F2;

lb=-10;

ub=10;

dim=30;

case 'F3'

fobj = @F3;

lb = -1;

ub = 1;

dim = 30;

case 'F4'

fobj = @F4;

lb=-100;

ub=100;

dim=30;

case 'F5'

fobj = @F5;

lb=-100;

ub=100;

dim=30;

case 'F6'

fobj = @F6;

lb=-30;

ub=30;

dim=30;

case 'F7'

fobj = @F7;

lb=-100;

ub=100;

dim=30;

case 'F8'

fobj = @F8;

lb=-1.28;

ub=1.28;

dim=30;

case 'F9'

fobj = @F9;

lb=-5;

ub=10;

dim=30;

case 'F10'

fobj = @F10;

lb=-500;

ub=500;

dim=30;

case 'F11'

fobj = @F11;

lb=-10;

ub=10;

dim=30;

case 'F12'

fobj = @F12;

lb=-5;

ub=5;

dim=30;

case 'F13'

fobj = @F13;

lb=-5.12;

ub=5.12;

dim=30;

case 'F14'

fobj = @F14;

lb=-32;

ub=32;

dim=30;

case 'F15'

fobj = @F15;

lb=-600;

ub=600;

dim=30;

case 'F16'

fobj = @F16;

lb=-10;

ub=10;

dim=30;

case 'F17'

fobj = @F17;

lb=-50;

ub=50;

dim=30;

case 'F18'

fobj = @F18;

lb=-50;

ub=50;

dim=30;

case 'F19'

fobj = @F19;

lb=-65;

ub=65;

dim=2;

case 'F20'

fobj = @F20;

lb=-5;

ub=5;

dim=4;

case 'F21'

fobj = @F21;

lb=-5;

ub=5;

dim=2;

case 'F22'

fobj = @F22;

lb=0;

ub=10;

dim=4;

case 'F23'

fobj = @F23;

lb=0;

ub=10;

dim=4;

case 'F24'

fobj = @F24;

lb=0;

ub=10;

dim=4;

end

end

% F1

function o = F1(x)

o=sum(x.^2);

end

% F2

function o = F2(x)

o=sum(abs(x))+prod(abs(x));

end

% F3

function o = F3(x)

dim = size(x,2);

o=0;

for i=1:dim

o=o+abs(x(i))^(i+1);

end

end

% F4

function o = F4(x)

dim=size(x,2);

o=0;

for i=1:dim

o=o+sum(x(1:i))^2;

end

end

% F5

function o = F5(x)

o=max(abs(x));

end

% F6

function o = F6(x)

dim=size(x,2);

o=sum(100*(x(2:dim)-(x(1:dim-1).^2)).^2+(x(1:dim-1)-1).^2);

end

% F7

function o = F7(x)

o=sum(abs((x+.5)).^2);

end

% F8

1 内容介绍

白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于提出,该算法模拟了白鲸游泳,觅食和“鲸鱼坠落”行为。

在本文中,提出了一种新的基于群体的元启发式算法,其灵感来自白鲸的行为,称为白鲸优化 (BWO),以解决优化问题。BWO中建立了探索、开发和鲸落三个阶段,分别对应成对游泳、猎物和落鲸的行为。BWO中的平衡因子和鲸落概率具有自适应性,对控制探索和开发能力起着重要作用。此外,还引入了 Levy 飞行以增强开发阶段的全局收敛性。使用 30 个基准函数测试了所提出的 BWO 的有效性,并进行了定性、定量和可扩展性分析,并将统计结果与其他 15 种元启发式算法进行了比较。根据结果和讨论,BWO是解决单峰和多峰优化问题的竞争算法,通过弗里德曼排名测试,BWO在比较的元启发式算法中基准函数的可扩展性分析中的整体排名第一。最后,四个工程问题展示了 BWO 在解决复杂的现实世界优化问题中的优点和潜力。

2 仿真代码

function func_plot(func_name)

[lb,ub,dim,fobj]=Get_Functions_details(func_name);

switch func_name

case 'F1'

x=-100:2:100; y=x; %[-100,100]

case 'F2'

x=-10:1:10; y=x; %[-10,10]

case 'F3'

x=-100:2:100; y=x; %[-100,100]

case 'F4'

x=-100:2:100; y=x; %[-100,100]

case 'F5'

x=-30:1:30; y=x; %[-30,30]

case 'F6'

x=-100:2:100; y=x; %[-100,100]

case 'F7'

x=-1:0.03:1; y=x; %[-1.28,1.28]

case 'F8'

x=-10:0.1:10;y=x; %[-10,10]

case 'F9'

x=-10:0.1:10; y=x; %[-10,10]

case 'F10'

x=-1:0.01:1; y=x;%[-1,1]

case 'F11'

x=-100:2:100; y=x;%[-100,100]

case 'F12'

x=-5:0.1:10; y=x;%[-5,10]

case 'F13'

x=-500:5:500; y=x;%[-500,500]

case 'F14'

x=-5.12:0.5:5.12; y=x;%[-5.12,5.12]

case 'F15'

x=-32:0.4:32; y=x;%[-32,32]

case 'F16'

x=-600:6:600; y=x;%[-600,600]

case 'F17'

x=-50:1:50; y=x;%[-50,50]

case 'F18'

x=-50:1:50; y=x;%[-50,50]

case 'F19'

x=-500:5:500; y=x;%[-500,500]

case 'F20'

x=-5:0.1:5; y=x;%[-5,5]

case 'F21'

x=-5:0.1:5; y=x;%[-5.12,5.12]

case 'F22'

x=-10:0.2:10; y=x;%[-10,10]

case 'F23'

x=-20:1:20; y=x;%[-100,100]

case 'F24'

x=-100:2:100; y=x;%[-100,100]

case 'F25'

x=-5:0.1:5; y=x;%[-5,5]

case 'F26'

x=-1:0.01:1; y=x;%[-5,5]

case 'F27'

x=-5:0.1:5; y=x;%[-5,5]

case 'F28'

x=-5:0.06:5; y=x;%[-5,5]

case 'F29'

x=-5:0.1:5; y=x;%[-5,5]

case 'F30'

x=-5:0.1:5; y=x;%[-5,5]

case 'F31'

x=-5:0.1:5; y=x;%[-5,5]

case 'F32'

x=-5:0.1:5; y=x;%[-5,5]

case 'F33'

x=-5:0.1:5; y=x;%[-5,5]

end

clear all;

close all;

clc;

Function_name = 'F2'; % function name

Npop = 50; % Number of search agents

Max_it = 100; % Maximum number of iterations

[lb,ub,nD,fobj]=Get_Functions_details(Function_name);

[xposbest,fvalbest,Curve]=BWO(Npop,Max_it,lb,ub,nD,fobj);

figure('Position',[500 500 660 290])

subplot(1,2,1);

func_plot(Function_name);

title('Objective space')

xlabel('x_1');

ylabel('x_2');

zlabel([Function_name,'( x_1 , x_2 )'])

subplot(1,2,2);

semilogy(Curve,'Color','r');

hold on

title('Objective space')

xlabel('Iterations');

ylabel('Best score');

L=length(x);

f=[];

for i=1:L

for j=1:L

if strcmp(func_name,'F20') == 0 && strcmp(func_name,'F25')==0 && strcmp(func_name,'F29')==0 && strcmp(func_name,'F30')==0 && strcmp(func_name,'F31')==0 && strcmp(func_name,'F32')==0 && strcmp(func_name,'F33')==0

f(i,j)=fobj([x(i),y(j)]);

end

if strcmp(func_name,'F25')==1 || strcmp(func_name,'F20')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F29')==1

f(i,j)=fobj([x(i),y(j),0]);

end

if strcmp(func_name,'F30')==1

f(i,j)=fobj([x(i),y(j),0,0,0,0]);

end

if strcmp(func_name,'F31')==1 || strcmp(func_name,'F32')==1 || strcmp(func_name,'F33')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F21')==1 || strcmp(func_name,'F22')==1 || strcmp(func_name,'F23')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

end

end

surfc(x,y,f,'LineStyle','none');

end

function [lb,ub,dim,fobj] = Get_Functions_details(F)

switch F

case 'F1'

fobj = @F1;

lb=-100;

ub=100;

dim=30;

case 'F2'

fobj = @F2;

lb=-10;

ub=10;

dim=30;

case 'F3'

fobj = @F3;

lb = -1;

ub = 1;

dim = 30;

case 'F4'

fobj = @F4;

lb=-100;

ub=100;

dim=30;

case 'F5'

fobj = @F5;

lb=-100;

ub=100;

dim=30;

case 'F6'

fobj = @F6;

lb=-30;

ub=30;

dim=30;

case 'F7'

fobj = @F7;

lb=-100;

ub=100;

dim=30;

case 'F8'

fobj = @F8;

lb=-1.28;

ub=1.28;

dim=30;

case 'F9'

fobj = @F9;

lb=-5;

ub=10;

dim=30;

case 'F10'

fobj = @F10;

lb=-500;

ub=500;

dim=30;

case 'F11'

fobj = @F11;

lb=-10;

ub=10;

dim=30;

case 'F12'

fobj = @F12;

lb=-5;

ub=5;

dim=30;

case 'F13'

fobj = @F13;

lb=-5.12;

ub=5.12;

dim=30;

case 'F14'

fobj = @F14;

lb=-32;

ub=32;

dim=30;

case 'F15'

fobj = @F15;

lb=-600;

ub=600;

dim=30;

case 'F16'

fobj = @F16;

lb=-10;

ub=10;

dim=30;

case 'F17'

fobj = @F17;

lb=-50;

ub=50;

dim=30;

case 'F18'

fobj = @F18;

lb=-50;

ub=50;

dim=30;

case 'F19'

fobj = @F19;

lb=-65;

ub=65;

dim=2;

case 'F20'

fobj = @F20;

lb=-5;

ub=5;

dim=4;

case 'F21'

fobj = @F21;

lb=-5;

ub=5;

dim=2;

case 'F22'

fobj = @F22;

lb=0;

ub=10;

dim=4;

case 'F23'

fobj = @F23;

lb=0;

ub=10;

dim=4;

case 'F24'

fobj = @F24;

lb=0;

ub=10;

dim=4;

end

end

% F1

function o = F1(x)

o=sum(x.^2);

end

% F2

function o = F2(x)

o=sum(abs(x))+prod(abs(x));

end

% F3

function o = F3(x)

dim = size(x,2);

o=0;

for i=1:dim

o=o+abs(x(i))^(i+1);

end

end

% F4

function o = F4(x)

dim=size(x,2);

o=0;

for i=1:dim

o=o+sum(x(1:i))^2;

end

end

% F5

function o = F5(x)

o=max(abs(x));

end

% F6

function o = F6(x)

dim=size(x,2);

o=sum(100*(x(2:dim)-(x(1:dim-1).^2)).^2+(x(1:dim-1)-1).^2);

end

% F7

function o = F7(x)

o=sum(abs((x+.5)).^2);

end

% F8

function o = F8(x)

dim=size(x,2);

o=sum([1:dim].*(x.^4))+rand;

end

% F9

function o = F9(x)

dim = size(x,2);

o = sum(x.^2)+(sum(0.5*[1:dim].*x))^2+(sum(0.5*[1:dim].*x))^4;

end

% F10

function o = F10(x)

o=sum(-x.*sin(sqrt(abs(x))));

end

% F11

function o = F11(x)

dim = size(x,2);

o = 1+sum(sin(x(1:dim)).^2)-exp(-sum(x.^2));

end

% F12

function o = F12(x)

dim = size(x,2);

o = 0.5*sum(x(1:dim).^4-16*x(1:dim).^2+5*x(1:dim));

end

% F13

function o = F13(x)

dim=size(x,2);

o=sum(x.^2-10*cos(2*pi.*x))+10*dim;

end

% F14

function o = F14(x)

dim=size(x,2);

o=-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)+20+exp(1);

end

% F15

function o = F15(x)

dim=size(x,2);

o=sum(x.^2)/4000-prod(cos(x./sqrt([1:dim])))+1;

end

% F16

function o = F16(x)

dim = size(x,2);

o = (sum(sin(x(1:dim)).^2) - exp(-sum(x.^2)))*exp(-sum(sin(sqrt(abs(x(1:dim)))).^2));

end

% F17

function o = F17(x)

dim=size(x,2);

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

% F18

function o = F18(x)

dim=size(x,2);

o=.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

% F19

function o = F19(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./([1:25]+bS))).^(-1);

end

% F20

function o = F20(x)

aK=[.1957 .1947 .1735 .16 .0844 .0627 .0456 .0342 .0323 .0235 .0246];

bK=[.25 .5 1 2 4 6 8 10 12 14 16];bK=1./bK;

o=sum((aK-((x(1).*(bK.^2+x(2).*bK))./(bK.^2+x(3).*bK+x(4)))).^2);

end

% F21

function o = F21(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

% F22

function o = F22(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F23

function o = F23(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F24

function o = F24(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

​​​​​​​

3 运行结果

4 参考文献

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

function o = F8(x)

dim=size(x,2);

o=sum([1:dim].*(x.^4))+rand;

end

% F9

function o = F9(x)

dim = size(x,2);

o = sum(x.^2)+(sum(0.5*[1:dim].*x))^2+(sum(0.5*[1:dim].*x))^4;

end

% F10

function o = F10(x)

o=sum(-x.*sin(sqrt(abs(x))));

end

% F11

function o = F11(x)

dim = size(x,2);

o = 1+sum(sin(x(1:dim)).^2)-exp(-sum(x.^2));

end

% F12

function o = F12(x)

dim = size(x,2);

o = 0.5*sum(x(1:dim).^4-16*x(1:dim).^2+5*x(1:dim));

end

% F13

function o = F13(x)

dim=size(x,2);

o=sum(x.^2-10*cos(2*pi.*x))+10*dim;

end

% F14

function o = F14(x)

dim=size(x,2);

o=-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)+20+exp(1);

end

% F15

function o = F15(x)

dim=size(x,2);

o=sum(x.^2)/4000-prod(cos(x./sqrt([1:dim])))+1;

end

% F16

function o = F16(x)

dim = size(x,2);

o = (sum(sin(x(1:dim)).^2) - exp(-sum(x.^2)))*exp(-sum(sin(sqrt(abs(x(1:dim)))).^2));

end

% F17

function o = F17(x)

dim=size(x,2);

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

% F18

function o = F18(x)

dim=size(x,2);

o=.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

% F19

function o = F19(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./([1:25]+bS))).^(-1);

end

% F20

function o = F20(x)

aK=[.1957 .1947 .1735 .16 .0844 .0627 .0456 .0342 .0323 .0235 .0246];

bK=[.25 .5 1 2 4 6 8 10 12 14 16];bK=1./bK;

o=sum((aK-((x(1).*(bK.^2+x(2).*bK))./(bK.^2+x(3).*bK+x(4)))).^2);

end

% F21

function o = F21(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

% F22

function o = F22(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F23

function o = F23(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F24

function o = F24(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

​​​​​​​

3 运行结果

4 参考文献

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

function [lb,ub,dim,fobj] = Get_Functions_details(F)

switch F

case 'F1'

fobj = @F1;

lb=-100;

ub=100;

dim=30;

case 'F2'

fobj = @F2;

lb=-10;

ub=10;

dim=30;

case 'F3'

fobj = @F3;

lb = -1;

ub = 1;

dim = 30;

case 'F4'

fobj = @F4;

lb=-100;

ub=100;

dim=30;

case 'F5'

fobj = @F5;

lb=-100;

ub=100;

dim=30;

case 'F6'

fobj = @F6;

lb=-30;

ub=30;

dim=30;

case 'F7'

fobj = @F7;

lb=-100;

ub=100;

dim=30;

case 'F8'

fobj = @F8;

lb=-1.28;

ub=1.28;

dim=30;

case 'F9'

fobj = @F9;

lb=-5;

ub=10;

dim=30;

case 'F10'

fobj = @F10;

lb=-500;

ub=500;

dim=30;

case 'F11'

fobj = @F11;

lb=-10;

ub=10;

dim=30;

case 'F12'

fobj = @F12;

lb=-5;

ub=5;

dim=30;

case 'F13'

fobj = @F13;

lb=-5.12;

ub=5.12;

dim=30;

case 'F14'

fobj = @F14;

lb=-32;

ub=32;

dim=30;

case 'F15'

fobj = @F15;

lb=-600;

ub=600;

dim=30;

case 'F16'

fobj = @F16;

lb=-10;

ub=10;

dim=30;

case 'F17'

fobj = @F17;

lb=-50;

ub=50;

dim=30;

case 'F18'

fobj = @F18;

lb=-50;

ub=50;

dim=30;

case 'F19'

fobj = @F19;

lb=-65;

ub=65;

dim=2;

case 'F20'

fobj = @F20;

lb=-5;

ub=5;

dim=4;

case 'F21'

fobj = @F21;

lb=-5;

ub=5;

dim=2;

case 'F22'

fobj = @F22;

lb=0;

ub=10;

dim=4;

case 'F23'

fobj = @F23;

lb=0;

ub=10;

dim=4;

case 'F24'

fobj = @F24;

lb=0;

ub=10;

dim=4;

end

end

% F1

function o = F1(x)

o=sum(x.^2);

end

% F2

function o = F2(x)

o=sum(abs(x))+prod(abs(x));

end

% F3

function o = F3(x)

dim = size(x,2);

o=0;

for i=1:dim

o=o+abs(x(i))^(i+1);

end

end

% F4

function o = F4(x)

dim=size(x,2);

o=0;

for i=1:dim

o=o+sum(x(1:i))^2;

end

end

% F5

function o = F5(x)

o=max(abs(x));

end

% F6

function o = F6(x)

dim=size(x,2);

o=sum(100*(x(2:dim)-(x(1:dim-1).^2)).^2+(x(1:dim-1)-1).^2);

end

% F7

function o = F7(x)

o=sum(abs((x+.5)).^2);

end

% F8

function o = F8(x)

dim=size(x,2);

o=sum([1:dim].*(x.^4))+rand;

end

% F9

function o = F9(x)

dim = size(x,2);

o = sum(x.^2)+(sum(0.5*[1:dim].*x))^2+(sum(0.5*[1:dim].*x))^4;

end

% F10

function o = F10(x)

o=sum(-x.*sin(sqrt(abs(x))));

end

% F11

function o = F11(x)

dim = size(x,2);

o = 1+sum(sin(x(1:dim)).^2)-exp(-sum(x.^2));

end

% F12

function o = F12(x)

dim = size(x,2);

o = 0.5*sum(x(1:dim).^4-16*x(1:dim).^2+5*x(1:dim));

end

% F13

function o = F13(x)

dim=size(x,2);

o=sum(x.^2-10*cos(2*pi.*x))+10*dim;

end

% F14

function o = F14(x)

dim=size(x,2);

o=-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)+20+exp(1);

end

% F15

function o = F15(x)

dim=size(x,2);

o=sum(x.^2)/4000-prod(cos(x./sqrt([1:dim])))+1;

end

% F16

function o = F16(x)

dim = size(x,2);

o = (sum(sin(x(1:dim)).^2) - exp(-sum(x.^2)))*exp(-sum(sin(sqrt(abs(x(1:dim)))).^2));

end

% F17

function o = F17(x)

dim=size(x,2);

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

% F18

function o = F18(x)

dim=size(x,2);

o=.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

% F19

function o = F19(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./([1:25]+bS))).^(-1);

end

% F20

function o = F20(x)

aK=[.1957 .1947 .1735 .16 .0844 .0627 .0456 .0342 .0323 .0235 .0246];

bK=[.25 .5 1 2 4 6 8 10 12 14 16];bK=1./bK;

o=sum((aK-((x(1).*(bK.^2+x(2).*bK))./(bK.^2+x(3).*bK+x(4)))).^2);

end

% F21

function o = F21(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

% F22

function o = F22(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F23

function o = F23(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F24

function o = F24(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

​​​​​​​

3 运行结果

4 参考文献

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

function o = F8(x)

dim=size(x,2);

o=sum([1:dim].*(x.^4))+rand;

end

% F9

function o = F9(x)

dim = size(x,2);

o = sum(x.^2)+(sum(0.5*[1:dim].*x))^2+(sum(0.5*[1:dim].*x))^4;

end

% F10

function o = F10(x)

o=sum(-x.*sin(sqrt(abs(x))));

end

% F11

function o = F11(x)

dim = size(x,2);

o = 1+sum(sin(x(1:dim)).^2)-exp(-sum(x.^2));

end

% F12

function o = F12(x)

dim = size(x,2);

o = 0.5*sum(x(1:dim).^4-16*x(1:dim).^2+5*x(1:dim));

end

% F13

function o = F13(x)

dim=size(x,2);

o=sum(x.^2-10*cos(2*pi.*x))+10*dim;

end

% F14

function o = F14(x)

dim=size(x,2);

o=-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)+20+exp(1);

end

% F15

function o = F15(x)

dim=size(x,2);

o=sum(x.^2)/4000-prod(cos(x./sqrt([1:dim])))+1;

end

% F16

function o = F16(x)

dim = size(x,2);

o = (sum(sin(x(1:dim)).^2) - exp(-sum(x.^2)))*exp(-sum(sin(sqrt(abs(x(1:dim)))).^2));

end

% F17

function o = F17(x)

dim=size(x,2);

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

% F18

function o = F18(x)

dim=size(x,2);

o=.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

% F19

function o = F19(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./([1:25]+bS))).^(-1);

end

% F20

function o = F20(x)

aK=[.1957 .1947 .1735 .16 .0844 .0627 .0456 .0342 .0323 .0235 .0246];

bK=[.25 .5 1 2 4 6 8 10 12 14 16];bK=1./bK;

o=sum((aK-((x(1).*(bK.^2+x(2).*bK))./(bK.^2+x(3).*bK+x(4)))).^2);

end

% F21

function o = F21(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

% F22

function o = F22(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F23

function o = F23(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

% F24

function o = F24(x)

aSH=[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];

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

​​​​​​​

3 运行结果

4 参考文献

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。