0
点赞
收藏
分享

微信扫一扫

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


一、获取代码方式

获取代码方式1:

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

获取代码方式2:

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

备注:

订阅紫极神光博客​付费专栏​,可免费获得​1​份代码(​有效期​为订阅日起,三天内有效);

二、部分源代码

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的图像

三、运行结果

【优化算法】差分蜂群优化算法(DEABC)【含Matlab源码 1423期】_开发语言

四、matlab版本及参考文献

1 matlab版本

2014a

2 参考文献

[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.

[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.



举报

相关推荐

0 条评论