【优化算法】差分蜂群优化算法(DEABC)【含Matlab源码 1423期】

289 阅读2分钟

一、获取代码方式

获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2: 通过紫极神光博客主页开通CSDN会员,凭支付凭证,私信博主,可获得此代码。

获取代码方式3: 完整代码已上传我的资源:【优化算法】差分蜂群优化算法(DEABC)【含Matlab源码 1423期】

备注:开通CSDN会员,仅只能免费获得1份代码(有效期为开通日起,三天内有效); 订阅紫极神光博客付费专栏,可免费获得2份代码(有效期为订阅日起,三天内有效);

二、部分源代码

clear
clc
close all
%% 首先选择一个函数进行寻优
objfun=@f1;ub=100; lb=-100;%sphere 全局最小值为0
objfun=@f2;lb=-600; ub=600;%griewank 全局最小值为0
objfun=@f3;lb=-100; ub=100;%rastrigin 全局最小值为0
objfun=@f4;lb=-10; ub=10;%rosenbrock 全局最小值为0
%%
d=2;
max_iter=2500;
sizepop=20;
%%
%1 粒子群
[pso_position,pso_fitness,pso_trace]=pso(objfun,d,max_iter,sizepop,ub,lb);
%2 遗传算法
[ga_position,ga_fitness,ga_trace]=ga(objfun,d,max_iter,sizepop,ub,lb);
%2 差分进化算法
[de_position,de_fitness,de_trace]=de1(objfun,d,max_iter,sizepop,ub,lb);

%3 蜂群算法
[abc_position,abc_fitness,abc_trace]=abc(objfun,d,max_iter,sizepop,ub,lb);
% 差分蜂群
[deabc_position ,deabc_fitness,deabc_trace]=DEABC(objfun,d,max_iter,sizepop,ub,lb);

%% 
figure 
plot(pso_trace(:,1))
hold on
plot(ga_trace(:,1))
plot(de_trace(:,1))

plot(abc_trace(:,1))
plot(deabc_trace(:,1))

legend('PSO','GA','DE','ABC','DEABC')
xlabel('迭代数')
ylabel('适应度值/函数值')
%%

figure 
plot(log10(pso_trace(:,1)),'b-')
hold on
plot(log10(ga_trace(:,1)),'r-')
plot(log10(de_trace(:,1)),'g-')

plot(log10(abc_trace(:,1)),'k-')
plot(log10(deabc_trace(:,1)),'m-')

legend('PSO','GA','DE','ABC','DEABC')
xlabel('迭代数')
ylabel('适应度值/log10(函数值)')
img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img.png')         %即可得到对应格式和期望dpi的图像

三、运行结果

在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本 2014a

2 参考文献 [1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016. [2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.