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仿真内容点击👇