作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
即使对于进化算法和基于群体的算法,多模态函数的优化也具有挑战性,因为它需要有效探索以找到搜索空间的有希望区域,并有效利用以精确找到全局最优值。Gray Wolf Optimizer (GWO) 是最近开发的一种元启发式算法,其灵感来自于自然界,具有相对较少的参数进行调优。然而,GWO 及其大多数变体可能会遭受缺乏种群多样性、过早收敛以及无法在探索和剥削行为之间保持良好平衡的困扰。为了解决这些限制,这项工作提出了一种新的 GWO 变体,结合了记忆、进化运算符和随机局部搜索技术。它进一步集成了线性种群规模缩减(LPSR)技术。所提出的算法在 23 个数值基准函数、高维基准函数、13 个工程案例研究、4 个数据分类和 3 个函数逼近问题上进行了综合测试。基准函数主要取自CEC 2005和CEC 2010专场,包括轮换、移位函数。工程案例研究来自 CEC 2020 真实世界的非凸约束优化问题。所提出的 GWO 的性能与流行的元启发式算法进行了比较,即粒子群优化(PSO),引力搜索算法(GSA),拍击群算法(SSA),差分进化(DE),自适应差分进化(SADE),基本GWO及其三个最近改进的变体。已经进行了统计分析和弗里德曼测试获得的结果表明,所提出的 GWO 优于所测试的基准函数和工程案例研究的算法。
⛄ 部分代码
close all
clear all
clc
SearchAgents=30;
Fun_name='F2';
Max_iterations=1000;
[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name);
[Best_score,Best_pos,TSA_curve]=MELGWO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
figure('Position',[500 500 660 290])
subplot(1,2,1);
func_plot(Fun_name);
title('Objective space')
xlabel('x_1');
ylabel('x_2');
zlabel([Fun_name,'( x_1 , x_2 )'])
subplot(1,2,2);
plots=semilogy(TSA_curve,'Color','g');
set(plots,'linewidth',2)
hold on
title('Objective space')
xlabel('Iterations');
ylabel('Best score');
axis tight
grid on
box on
legend('MELGWO')
⛄ 运行结果
⛄ 参考文献