19个工程问题/工程设计问题合集:13种智能优化算法跑19个工程优化问题,智能优化算法包括引力搜索算法(GSA),灰狼优化器(GWO),鲸鱼优化算法(WOA),哈里斯鹰优化算法(HHO),基于收缩系数的粒子群优化算法与引力搜索算法的混合(CPSOGSA),变色龙算法(CSA),非洲秃鹫优化算法(AVOA),蛇优化算法(SO),矮猫鼬优化算法(DMO),天鹰优化器(AO),被囊群优化算法(TSA),人工大猩猩优化算法(GTO)。工程问题包括19个,这里简单例举8个出来,Four-stage gear box problem (四级变速箱问题),Gear train design Problem (齿轮系设计问题),Pressure vessel design (压力容器设计),Rolling element bearing (滚动轴承),Tension compression spring design (case 1) (拉力压缩弹簧设计(案例1)),Three-bar truss design problem (三杆衍架设计问题),Weight Minimization of a Speed Reducer (减速器重量最小化),Welded beam design (焊接梁设计)。具体19个名称在pdf文件里有。能直接输出结果对比图,问题的最优值和对应的解。每个算法都是独立的.m文件,主函数都加上了中文注释,运行“maincompare.m”文件,输出结果里面包含了13种优化算法对应的运行结果及收敛曲线对比结果,运行“mainsingle.m”文件,输出结果为对应的单个算法的实验结果和收敛曲线。方面管理和二次开发。其余带约束的优化问题和优化算法可定制,该工程问题的目标函数、约束条件等细节在pdf中。资源包括:13种智能优化算法加19个工程问题代码+Problem-Definitions.pdf。代码运行结果如下:
部分主程序代码如下:
clc;clear all;warning off
Func_num = 12; % 工程设计问题 1-19
global initial_flag
initial_flag = 0;
Par = Cal_par(Func_num); % 加载工程问题细节
dim = Par.n; % 问题维度
g = Par.g; % 不等式约束
h = Par.h; % 等式约束
lb = Par.xmin; % 问题上界
ub = Par.xmax; % 问题下界
N = 30; % 种群数量
T = 500; % 最大迭代次数
% 函数调用
disp('GSA is now tackling your problem')
[BEF_GSA,BEP_GSA,BestCost_GSA]=GSA(N,T,lb,ub,dim,Func_num);
disp('GWO is now tackling your problem')
[BEF_GWO,BEP_GWO,BestCost_GWO]=GWO(N,T,lb,ub,dim,Func_num);
disp('WOA is now tackling your problem')
[BEF_WOA,BEP_WOA,BestCost_WOA]=WOA(N,T,lb,ub,dim,Func_num);
disp('HHO is now tackling your problem')
[BEF_HHO,BEP_HHO,BestCost_HHO]=HHO(N,T,lb,ub,dim,Func_num);
disp('CPSOGSA is now tackling your problem')
[BEF_CPSOGSA,BEP_CPSOGSA,BestCost_CPSOGSA]=CPSOGSA(N,T,lb,ub,dim,Func_num);
disp('CSA is now tackling your problem')
[BEF_CSA,BEP_CSA,BestCost_CSA]=CSA(N,T,lb,ub,dim,Func_num);
disp('AVOA is now tackling your problem')
[BEF_AVOA,BEP_AVOA,BestCost_AVOA]=AVOA(N,T,lb,ub,dim,Func_num);
disp('SO is now tackling your problem')
[BEF_SO,BEP_SO,BestCost_SO]=SO(N,T,lb,ub,dim,Func_num);
disp('DMO is now tackling your problem')
[BEF_DMO,BEP_DMO,BestCost_DMO]=DMO(N,T,lb,ub,dim,Func_num);
disp('AO is now tackling your problem')
[BEF_AO,BEP_AO,BestCost_AO]=AO(N,T,lb,ub,dim,Func_num);
disp('GJO is now tackling your problem')
[BEF_GJO,BEP_GJO,BestCost_GJO]=GJO(N,T,lb,ub,dim,Func_num);
disp('TSA is now tackling your problem')
[BEF_TSA,BEP_TSA,BestCost_TSA]=TSA(N,T,lb,ub,dim,Func_num);
disp('GTO is now tackling your problem')
[BEF_GTO,BEP_GTO,BestCost_GTO]=GTO(N,T,lb,ub,dim,Func_num);