1 简介

为减少云计算的任务完成时间,提出基于差分进化人工蜂群算法的云计算资源调度方法,两种改进算法并行寻优并及时交流最优解及位置信息,使两算法能够快速靠近最优解,减少算法迭代次数,提高算法收敛速度和精度。实验结果表明,差分进化人工蜂群算法调度的云计算耗时最少,随着任务量的增加耗时优势越明显。

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

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

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

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 仿真结果

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

4 参考文献

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

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