【2023年10月最新优化算法】【多种算法比较】传播搜索算法:基于物理场的工程应用优化算法(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

对于工程应用中的过程控制,优化算法的编码行越少,应用就越多。因此,这项工作开发了一种新的直接元启发式优化算法,称为传播搜索算法(PSA),该算法由电压和电流沿长传输线的波传播来搅拌。电压和电流的数学模型用于对PSA进行建模,其中电压和电流是搜索代理。传输线的传播常数是PSA开发和勘探的控制参数。之后,使用23个著名的测试功能验证PSA的鲁棒性。利用20个独立优化实验的统计检验(包括平均值、标准差和p值)来确认PSA的鲁棒性,以找到最佳结果以及PSA结果与比较算法结果之间的显着差异。最后,应用所提出的PSA寻找三杆桁架、压缩弹簧、压力容器和焊接梁等<>个工程设计问题的最优设计参数。结果表明,PSA可以非常快速地收敛到最佳解决方案,这些解决方案可以应用于那些需要快速响应的应用。

关键词:

算法;工程优化;元启发式;传播搜索算法

元启发式优化算法已在多个工程应用中广泛使用,以降低成本。他们使用了最佳设计或在线过程控制。对于最优设计问题,如果优化算法复杂且需要很长时间才能找到最佳设计参数,则不会造成重大问题。然而,对于在线过程控制,要求优化算法具有快速响应和较低的计算复杂度。例如,从太阳能和风能资源中收集能量或大型电网中的最佳潮流需要快速在线跟踪功率变化,从而提高系统效率。因此,粒子群优化(PSO)已被用于大多数工程应用,因为它编码简单,并且能够找到最佳的局部或全局解决方案。然而,最近出现了许多计算复杂度高、代码长元的元启发式算法来实现最优解,这些算法可以应用于最优设计问题,但不能应用于在线控制过程。因此,提出计算复杂度较低的元启发式算法对于工程应用非常受欢迎。

在文献综述中,许多元启发式优化算法都受到自然、生物行为或物理行为的刺激。对于生物行为,算法受到不同行为的启发,无论是社会社区、繁殖、食物寻找还是生存本能。1975年,Holland发明了遗传算法(GA),这是第一个使用随机搜索产生一组新后代的元启发式算法版本[1]。之后,在1995年,肯尼迪和埃伯哈特提出了一种新的简单算法,即PSO算法,该算法受到鸟类和鱼类的蜂群性能的刺激[2]。然后,在1995年,Dorigo和Caro提出了蚁群优化(ACO)算法,该算法的动机是蚂蚁的举止,在蚁群和食物位置之间找到一条直线路径[3]。之后,出现了许多优化算法,例如人工蜂群(ABC)[4],它受到蜜蜂群行为的刺激;萤火虫算法(FA)[5],由萤火虫闪烁的光刺激,用于交流和吸引猎物;和布谷鸟搜索(CS)算法[6],该算法受到利维行走和入侵其他鸟类巢穴的刺激。

此外,最近有许多元启发式算法受到活生物行为的刺激,例如灰狼优化器(GWO),它受到引导和狩猎层次结构的刺激[7];鲸鱼优化算法(WOA),该算法是通过在鱼群周围产生螺旋气泡来刺激的[8];salp swarm算法(SSA),它受到大量salps跟踪食物的刺激[9];哈里斯鹰优化(HHO),这是由许多鹰攻击猎物的大量工作所刺激的[10];螳螂搜索算法(MSA),其灵感来自螳螂的觅食过程[11];胡桃夹子优化算法(NOA),该算法受到胡桃夹子寻找、储存和记忆食物的季节性行为的刺激[12];天鹰座优化器(AO),受到天鹰座狩猎风格的刺激[13];黑寡妇优化器(BWO),受到黑寡妇蜘蛛交配和食肉刺激[14];以及被膜动物群体算法(TSA),该算法受到被膜动物在跟踪食物时的群体方式的刺激[15]。因此,许多算法都受到生物行为的刺激,例如海豚[16],白鲨[17],秃鹫[18],逆戟鲸[19],椋鸟[20],兔子[21],青蛙[22],蝴蝶[23],鬣狗[24],爬行动物[25],coati [26],豹子[27]和鹰[28]。

牛顿、爱因斯坦等物理学家被宇宙中的物理现象所吸引,经过长期研究,找到了数学定律和范式。因此,基于其物理模型提出了许多算法,例如金属的退火过程[29];牛顿的万有引力定律[30];威廉·亨利[31]的气体定律;材料与环境之间的传热[32];身体碰撞[33];原子之间的拉力和斥力[34];库仑和牛顿的静电和动态电荷定律[35];不同强度介质之间的迁移光[36];一阶和二阶电路的瞬态行为[37];开普勒[38]的行星运动和速度;利希滕贝格的电树和闪电人物[39];电磁场[40];圆几何 [41];和电场[42]。此外,许多元启发式算法的灵感来自行星和恒星运动的重力效应[43];离心力和重力关系[44];离子运动[45];以及原子内部原子核周围的电子轨道[46]。

研究差距由无免费午餐定理定义,该定理指出没有单一的算法可以成功解决所有优化问题。此外,最近一些元启发式算法的数学建模和程序编码复杂,无法轻易应用于工程应用的在线过程控制。此外,相关科学家没有研究某些算法模型。因此,使用经过研究的数学模型、简单的软件代码和快速收敛促使我们提出了一种新的元启发式优化器,称为传播搜索算法 (PSA),由电压和电流波形沿长传输线传播的刺激。科学家以前在任何传输线部分都提供了数学电压和电流模型。然后,我们将这些模型调整为具有随机阻抗和导纳的随机传输线的随机模型。电压和电流被认为是PSA的搜索代理,它们根据其先前的值和传输线的传播常数进行传播。这些搜索代理依赖于彼此的值,这有助于他们包围最佳解决方案。

本文的主要贡献总结如下:

  • 开发一种新的基于物理的元启发式算法,称为传播搜索算法(PSA),其灵感来自沿长传输线的电压和电流波形传播。

  • 使用 23 个著名的测试函数测试 PSA,并将结果与 <> 个著名的元启发式算法进行比较。

  • 应用PSA找到四个著名工程问题的最优设计,并将其与其他元启发式算法进行比较。

本文的其余部分设计如下:第2部分描述了拟议PSA的背景,数学建模和流程图;第 3 节描述了测试结果;第4节展示了拟议的PSA在不同工程应用中的应用;第5节简要介绍了本文的贡献和结果。

📚2 运行结果

部分代码:

xx(ki)=Best_score;%GWO
xx1(ki)=Best_score1;%SCA
xx2(ki)=Best_score2;%SSA
xx3(ki)=Best_score3; %CS
xx4(ki)=Best_score4;%WOA
xx5(ki)=Best_score5;%PSO
xx6(ki)=Best_score6;%TSO
xx7(ki)=Best_score7;%PSA
xx8(ki)=Best_score8;%AFEA
end
zz=mean(xx);yy=std(xx);AA=min(xx);
zz1=mean(xx1);yy1=std(xx1);AA1=min(xx1);
zz2=mean(xx2);yy2=std(xx2);AA2=min(xx2);
zz3=mean(xx3);yy3=std(xx3);AA3=min(xx3);
zz4=mean(xx4);yy4=std(xx4);AA4=min(xx4);
zz5=mean(xx5);yy5=std(xx5);[AA5,ind5]=min(xx5);
zz6=mean(xx6);yy6=std(xx6);AA6=min(xx6);
zz7=mean(xx7);yy7=std(xx7);[AA7,ind7]=min(xx7);
zz8=mean(xx8);yy8=std(xx8);AA8=min(xx8);
% figure('Position',[500 500 660 290])

semilogy(curve8(ind7,:),'Color','r','LineWidth',2)%CSA
hold on
semilogy(curve1(ind7,:),'Color','b','LineWidth',2)%GWO
hold on
semilogy(curve2(ind7,:),'Color','m','LineWidth',2)%SCA

semilogy(curve3(ind7,:),'Color','g','LineWidth',2)%SSA

semilogy(curve4(ind7,:),'Color','y','LineWidth',2)%CS
semilogy(curve5(ind7,:),'Color','k','LineWidth',2)%WOA
semilogy(curve6(ind5,:),'Color',[0.9290 0.6940 0.1250],'LineWidth',2)%PSO
semilogy(curve7(ind5,:),'Color',[0.4940 0.1840 0.5560],'LineWidth',2)%TSO
semilogy(curve9(randi(Runs),:),'Color','c','LineWidth',2)%AEFA
title(Function_name)
xlabel('Iteration','fontsize',12,'FontWeight','bold','FontName','Arial Narrow');
ylabel('Best Fitness','fontsize',12,'FontWeight','bold','FontName','Arial Narrow');
axis tight
grid on
box on
legend('PSA','GWO','SCA','SSA','CS','WOA','PSO','TSO','AEFA')
% display(['The best solution obtained by GWO is : ', num2str(Best_pos)]);
% disp('The best optimal value of the objective funciton found by GWO is :');disp(zz);disp(yy);disp(AA);
[p1,h1]=signrank(xx,xx7);
% disp('The best optimal value of the objective funciton found by SCA is : ');disp(zz1);disp(yy1);disp(AA1);
[p2,h2]=signrank(xx1,xx7);
% disp('The best optimal value of the objective funciton found by SSA is :');disp(zz2);disp(yy2);disp(AA2);
[p3,h3]=signrank(xx2,xx7);
% disp('The best optimal value of the objective funciton found by TOA is :');disp(zz3);disp(yy3);disp(AA3);
% disp('The best optimal value of the objective funciton found by PSO is :');disp(zz4);disp(yy4);disp(AA4);
[p4,h4]=signrank(xx3,xx7);%vs HHO
% disp('The best optimal value of the objective funciton found by mCSA is :');disp(zz5);disp(yy5);disp(AA5);
[p5,h5]=signrank(xx4,xx7);
[p6,h6]=signrank(xx5,xx7);
[p7,h7]=signrank(xx6,xx7);
[p8,h8]=signrank(xx8,xx7);
disp(["GWO","   SCA","     SSA","    CS","    WOA","     PSO","     TSO","     AEFA","     PSA"])
% output=[zz zz1 zz2 zz3 zz4 zz5 zz6 zz8 zz7; ...
%       yy yy1 yy2 yy3 yy4 yy5 yy6 yy8 yy7; ...
%       AA AA1 AA2 AA3 AA4 AA5 AA6 AA8 AA7; ...
%       p1 p2 p3 p4 p5 p6 p7 p8 p8;...
%       h1 h2 h3 h4 h5 h6 h7 h8 h8]
output=[zz zz1 zz2 zz3 zz4 zz5 zz6 zz8 zz7; ...
      yy yy1 yy2 yy3 yy4 yy5 yy6 yy8 yy7]
disp('===================================================')

  out2=[p1 p2 p3 p4 p5 p6 p7 p8;...
      h1 h2 h3 h4 h5 h6 h7 h8]

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值