【优化求解】基于差分算法结合人工蜂群算法求解最优目标matlab代码

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

3 仿真结果

4 参考文献

[1]王艳娇, 肖婧. (2015). 基于改进人工蜂群算法的高维多目标优化. 中南大学学报:自然科学版, 46(6), 9.

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值