
1 简介正弦余弦优化算法是澳大利亚学者 于年提出的一种基于种群的智能优化算法。与大多数智能优化算法相比 具有架构简单控制参数少计算效率高等优点。已经证明 在整体优化性能上优于萤火虫算法、花朵授粉算法、粒子群算法以及遗传算法等。基于此 已经被广泛应用于求解工程实际问题。 主要依赖正弦函数和余弦函数的震荡特性进行寻优由于种群更新对当前最优解的依赖过强算法迭代后期种群多样性迅速降低导致算法易于陷入局部最优。由于 架构简单因此具有较大的改进潜力。目前国内外学者对 改进策略的研究主要分为 类。为提高算法的收敛精度和局部最优规避能力对 做以下个方面改进受粒子群算法搜索机制启发引入自学习策略记录每个搜索个体搜索到的历史最优位置减少种群更新对当前最优解的依赖提高算法的局部搜索能力并引入非线性权重因子平衡算法的局部搜索和全局搜索当算法迭代后期搜索停滞时采用 é飞行策略施加扰动量使算法跳出局部最优。基于个经典基准测试函数及航迹规划问题对提出的算法进行测试验证算法的寻优性能。2 部分代码% lb is the lower bound: lb[lb_1,lb_2,...,lb_d]% up is the uppper bound: ub[ub_1,ub_2,...,ub_d]% dim is the number of variables (dimension of the problem)function [lb,ub,dim,fobj] Get_Functions_details(F)switch Fcase F1fobj F1;lb-100;ub100;dim30;case F2fobj F2;lb-10;ub10;dim30;case F3fobj F3;lb-100;ub100;dim30;case F4fobj F4;lb-100;ub100;dim30;case F5fobj F5;lb-30;ub30;dim30;case F6fobj F6;lb-100;ub100;dim30;case F7fobj F7;lb-1.28;ub1.28;dim30;case F8fobj F8;lb-500;ub500;dim30;case F9fobj F9;lb-5.12;ub5.12;dim30;case F10fobj F10;lb-32;ub32;dim30;case F11fobj F11;lb-600;ub600;dim30;case F12fobj F12;lb-50;ub50;dim30;case F13fobj F13;lb-50;ub50;dim30;case F14fobj F14;lb-65.536;ub65.536;dim2;case F15fobj F15;lb-5;ub5;dim4;case F16fobj F16;lb-5;ub5;dim2;case F17fobj F17;lb[-5,0];ub[10,15];dim2;case F18fobj F18;lb-2;ub2;dim2;case F19fobj F19;lb0;ub1;dim3;case F20fobj F20;lb0;ub1;dim6;case F21fobj F21;lb0;ub10;dim4;case F22fobj F22;lb0;ub10;dim4;case F23fobj F23;lb0;ub10;dim4;endend% F1function o F1(x)osum(x.^2);end% F2function o F2(x)osum(abs(x))prod(abs(x));end% F3function o F3(x)dimsize(x,2);o0;for i1:dimoosum(x(1:i))^2;endend% F4function o F4(x)omax(abs(x));end% F5function o F5(x)dimsize(x,2);osum(100*(x(2:dim)-(x(1:dim-1).^2)).^2(x(1:dim-1)-1).^2);end% F6function o F6(x)osum(floor((x.5)).^2);end% F7function o F7(x)dimsize(x,2);osum([1:dim].*(x.^4))rand;end% F8function o F8(x)osum(-x.*sin(sqrt(abs(x))));end% F9function o F9(x)dimsize(x,2);osum(x.^2-10*cos(2*pi.*x))10*dim;end% F10function o F10(x)dimsize(x,2);o-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)20exp(1);end% F11function o F11(x)dimsize(x,2);osum(x.^2)/4000-prod(cos(x./sqrt([1:dim])))1;end% F12function o F12(x)dimsize(x,2);o(pi/dim)*(10*((sin(pi*(1(x(1)1)/4)))^2)sum((((x(1:dim-1)1)./4).^2).*...(110.*((sin(pi.*(1(x(2:dim)1)./4)))).^2))((x(dim)1)/4)^2)sum(Ufun(x,10,100,4));end% F13function o F13(x)dimsize(x,2);o.1*((sin(3*pi*x(1)))^2sum((x(1:dim-1)-1).^2.*(1(sin(3.*pi.*x(2:dim))).^2))...((x(dim)-1)^2)*(1(sin(2*pi*x(dim)))^2))sum(Ufun(x,5,100,4));end% F14function o F14(x)aS[-32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32 -32 -16 0 16 32;,...-32 -32 -32 -32 -32 -16 -16 -16 -16 -16 0 0 0 0 0 16 16 16 16 16 32 32 32 32 32];for j1:25bS(j)sum((x-aS(:,j)).^6);endo(1/500sum(1./([1:25]bS))).^(-1);end% F15function o F15(x)aK[.1957 .1947 .1735 .16 .0844 .0627 .0456 .0342 .0323 .0235 .0246];bK[.25 .5 1 2 4 6 8 10 12 14 16];bK1./bK;osum((aK-((x(1).*(bK.^2x(2).*bK))./(bK.^2x(3).*bKx(4)))).^2);end% F16function o F16(x)o4*(x(1)^2)-2.1*(x(1)^4)(x(1)^6)/3x(1)*x(2)-4*(x(2)^2)4*(x(2)^4);end% F17function o F17(x)o(x(2)-(x(1)^2)*5.1/(4*(pi^2))5/pi*x(1)-6)^210*(1-1/(8*pi))*cos(x(1))10;end% F18function o F18(x)o(1(x(1)x(2)1)^2*(19-14*x(1)3*(x(1)^2)-14*x(2)6*x(1)*x(2)3*x(2)^2))*...(30(2*x(1)-3*x(2))^2*(18-32*x(1)12*(x(1)^2)48*x(2)-36*x(1)*x(2)27*(x(2)^2)));end% F19function o F19(x)aH[3 10 30;.1 10 35;3 10 30;.1 10 35];cH[1 1.2 3 3.2];pH[.3689 .117 .2673;.4699 .4387 .747;.1091 .8732 .5547;.03815 .5743 .8828];o0;for i1:4oo-cH(i)*exp(-(sum(aH(i,:).*((x-pH(i,:)).^2))));endend% F20function o F20(x)aH[10 3 17 3.5 1.7 8;.05 10 17 .1 8 14;3 3.5 1.7 10 17 8;17 8 .05 10 .1 14];cH[1 1.2 3 3.2];pH[.1312 .1696 .5569 .0124 .8283 .5886;.2329 .4135 .8307 .3736 .1004 .9991;....2348 .1415 .3522 .2883 .3047 .6650;.4047 .8828 .8732 .5743 .1091 .0381];o0;for i1:4oo-cH(i)*exp(-(sum(aH(i,:).*((x-pH(i,:)).^2))));endend% F21function o F21(x)aSH[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];cSH[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];o0;for i1:5oo-((x-aSH(i,:))*(x-aSH(i,:))cSH(i))^(-1);endend% F22function o F22(x)aSH[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];cSH[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];o0;for i1:7oo-((x-aSH(i,:))*(x-aSH(i,:))cSH(i))^(-1);endend% F23function o F23(x)aSH[4 4 4 4;1 1 1 1;8 8 8 8;6 6 6 6;3 7 3 7;2 9 2 9;5 5 3 3;8 1 8 1;6 2 6 2;7 3.6 7 3.6];cSH[.1 .2 .2 .4 .4 .6 .3 .7 .5 .5];o0;for i1:10oo-((x-aSH(i,:))*(x-aSH(i,:))cSH(i))^(-1);endendfunction oUfun(x,a,k,m)ok.*((x-a).^m).*(xa)k.*((-x-a).^m).*(x(-a));end3 仿真结果4 参考文献[1]李银通等. 自学习策略和Lévy飞行的正弦余弦优化算法. 重庆大学学报自然科学版 42.9(2019):11.博主简介擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真相关matlab代码问题可私信交流。部分理论引用网络文献若有侵权联系博主删除。