灰狼优化器(Grey Wolf Optimizer ,GWO)是由科院二区期刊“ADVANCES IN ENGINEERING SOFTWARE”上文章“Grey Wolf Optimizer”提出的。
01.引言
灰狼优化器(Grey Wolf Optimizer ,GWO),灵感来自灰狼(Canis lupus)。GWO算法模拟了自然界中灰狼的领导层级和捕猎机制。采用alpha、beta、delta、omega四种灰狼来模拟领导层级。此外,还实现了狩猎的三个主要步骤,即寻找猎物、包围猎物和攻击猎物。将该算法与29个知名的测试函数进行了基准测试,并与粒子群优化算法(PSO)、引力搜索算法(GSA)、差分进化算法(DE)、进化规划算法(EP)和进化策略(ES)进行了对比研究。结果表明,与这些著名的元启发式算法相比,GWO算法能够提供非常有竞争力的结果。本文还考虑了解决三个经典的工程设计问题(拉/压缩弹簧、焊接梁和压力容器设计),并介绍了该方法在光学工程领域的实际应用。经典工程设计问题和实际应用的结果表明,该算法适用于具有未知搜索空间的挑战性问题。
02.算法原理简介及算法实现流程(文末附代码)
一、算法来源
灰狼群体狩猎捕食行为提出的一种新型群体智能优化算法,以下对其进行具体介绍。
领头的是一男一女,叫做阿尔法。阿尔法脑主要负责决定狩猎、睡觉地点、起床时间等等。阿尔法的决定是由族群决定的。然而,某些民主行为也被观察到,其中首领跟随狼群中的其他狼。在聚会中,整个狼群都会垂下尾巴来表示对阿尔法狼的认可。阿尔法狼也被称为统治狼,因为他/她的命令应该被狼群遵循。阿尔法狼只允许在群体中交配。有趣的是,阿尔法狼不一定是狼群中最强的,但在管理狼群方面却是最好的。这说明一个狼群的组织和纪律比它的力量重要得多。
灰狼的第二等级是贝塔。贝塔是从属的狼,在决策或其他群体活动中帮助阿尔法狼。贝塔狼可以是公狼也可以是母狼,如果其中一只阿尔法狼去世或变老,他/她可能是成为阿尔法狼的最佳人选。
贝塔狼应该尊重阿尔法狼,但也要指挥其他低级狼。它扮演着首领的顾问和狼群的纪律制定者的角色。测试版在整个团队中加强了阿尔法的命令,并向阿尔法提供反馈。
排名最低的灰狼是欧米伽。欧米茄扮演了替罪羊的角色。欧米伽狼总是要服从其他所有的优势狼。它们是最后被允许吃东西的狼。看起来欧米茄在狼群中并不是一个重要的个体,但据观察,如果失去欧米茄,整个狼群都会面临内部斗争和问题。这是由于欧米伽(s)发泄暴力和沮丧的所有狼。这有助于满足整个族群并维持统治结构。在某些情况下,欧米茄也是族群中的保姆。
如果狼不是阿尔法、贝塔或欧米茄,他/她被称为下级(或在某些参考文献中称为delta)。三角洲狼必须服从阿尔法狼和贝塔狼,但它们主宰着欧米伽狼。侦察兵,哨兵,长老,猎人,还有看护人就属于这一类。侦察兵负责观察领地的边界,并在任何危险情况下警告狼群。哨兵保护和保证狼群的安全。长老是有经验的狼,曾经是阿尔法或贝塔。猎人帮助阿尔法狼和贝塔狼捕猎猎物并为狼群提供食物。最后,看护人负责照顾狼群中虚弱、生病和受伤的狼。
二、算法流程(结合代码)
1.初始化阶段
Alpha_pos = zeros(1,dim); % α狼(最优解)位置
Alpha_score = inf; % α狼目标函数值(最小化问题)
Beta_pos = zeros(1,dim); % β狼(次优解)位置
Beta_score = inf; % β狼目标函数值
Delta_pos = zeros(1,dim); % δ狼(第三优解)位置
Delta_score = inf; % δ狼目标函数值
Positions = initialization(SearchAgents_no, dim, ub, lb); % 随机初始化狼群位置
Convergence_curve = zeros(1, Max_iter); % 收敛曲线记录
l = 0; % 迭代计数器
行为解释:随机生成狼群位置,初始化α/β/δ狼为虚拟解(适应度无穷大)。
2. 主循环(迭代直到最大次数)
(a) 边界处理与适应度评估