💥1 概述
本文基于ES-PSO算法在设计问题上的实现.这里使用有四个问题。
ES的灵感来自鹰的觅食行为。它使用不同的算法进行全局搜索和本地搜索。ES 是一种两阶段方法。在这里,使用ES改进了Particel Swarm优化(PSO)算法。这种方法用于一些设计问题;焊接梁设计,拉伸/压缩,压力容器,悬臂梁设计。
📚2 运行结果
2.1 焊接梁设计
2.2 拉伸压缩弹簧设计
2.3 压力容器设计问题
2.4 悬臂梁设计问题
部分代码:
%______________________________________________________________________________________ % cantilever beam design problem %______________________________________________________________________________________ function o=Obj_function4(x) o = [0]; % o(1)=0.0624*(x(1) + x(2) + x(3) + x(4) + x(5)); %o(2)=65856000/(30*10^6*x(4)*x(3)^3); o=o+getnonlinear(x); function Z=getnonlinear(x) Z=0; % Penalty constant lam=10^10; g(1)=(61/(x(1)^3)) + (37/(x(2)^3)) + (19/(x(3)^3)) + (7/(x(4)^3)) + (1/(x(5)^3)) - 1; % No equality constraint in this problem, so empty; geq=[]; % Apply inequality constraints for k=1:length(g), Z=Z+ lam*g(k)^2*getH(g(k)); end % Apply equality constraints for k=1:length(geq), Z=Z+lam*geq(k)^2*getHeq(geq(k)); end % Test if inequalities hold % Index function H(g) for inequalities function H=getH(g) if g<=0, H=0; else H=1; end % Index function for equalities function H=getHeq(geq) if geq==0, H=0; else H=1; end % ----------------- end ------------------------------
🌈3 Matlab代码实现
🎉4 参考文献
部分理论来源于网络,如有侵权请联系删除。