1 简介
郊狼优化算法(coyote optimization algorithm, COA)是由Pierezan 等人于 2018 年提出的,模拟郊狼群居生活、成长、生死、被组驱离和接纳等现象的新型智能优化算法,在benchmark 函数优化上获得较好的优化结果。COA 通过随机分组,把种群分成若干子组。确定子组的 alpha 狼、文化趋势和随机选择两头郊狼,由这四种因素来影响郊狼的成长,通过郊狼的社会适应能力归正成长过程。郊狼的出生受随机选择的两头父郊狼和环境变异共同影响。在社会适应能力上,新生的郊狼若优于年老且能力差的郊狼,则年老的郊狼死去,否则新生的郊狼死去。在子组之间郊狼按照一定的概率,一些郊狼会被组驱离和被其他组接纳,从而改变郊狼分组状态。通过这样成长、死亡、被驱离与接纳等过程不断演化,得到最适应社会环境的郊狼,作为优化问题的最佳解决方案。COA 在解决优化问题的过程中展现出较强的优化能力,但是由于 COA 提出时间较短,需要改进和完善,并且应拓展其应用领域。
2 部分代码
clear all close all clc % Objective function setup FOBJ = @(x) sum(x.^2); % Optimization problem D = 10; % Problem dimension lu = [-10*ones(1,D); 10*ones(1,D)]; % Seach space % COA paramters setup nfevalMAX = 20000; % Stopping criteria Np = 20; % Number of packs Nc = 5; % Number of coyotes % Experimental setup n_exper = 100; % Number of experiments y = zeros(1,n_exper); % Objective costs achieved t = clock(); % Time counter (initial value) for i=1:n_exper % Apply the COA to the optimization problem [~,y(1,i)] = COA(FOBJ, lu, nfevalMAX,Np,Nc); % Start process % Show the result (cost and time) fprintf(1,'\nExperiment : %d, cost: %.6f, time: %.4f',... i,y(1,i),etime(clock, t)); if i==1 ybest(i)=y(1,i); else if ybest(i-1)>y(1,i); ybest(i)=y(1,i); else ybest(i)=ybest(i-1); end end % Update time counter t = clock(); end figure(1) plot(ybest) xlabel('迭代次数') ylabel('适应度值') img =gcf; %获取当前画图的句柄 print(img, '-dpng', '-r600', './img.png') %即可得到对应格式和期望dpi的图像
3 仿真结果
4 参考文献
[1] Kennedy J, Eberhart R. Particle swarm optimization [C]// Proceedings of the IEEE International Conference on Neural Networks, Piscataway, NJ: IEEE Press, 1995: 1942–1948.
[2] Eusuff M, Lansey K, Pasha F. Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization [J]. Engineering Optimization, 2006, 38 (2): 129-154.
[3] Mirgalili S, Mirjalili S M, Lewis A. Grey wolf optimizer [J]. Advances in Engineering Software, 2014, 69 (3): 46-61.
[4] 张新明, 王霞, 涂强, 等. 融合榜样学习和反向学习的粒子群优化算法 [J]. 河南师范大学学报 (自然科学版) , 2017, 49 (6): 91-99.
5 MATLAB代码与数据下载地址
见博客主页头条