经典优化算法:灰狼优化器(Grey Wolf Optimizer ,GWO)

灰狼优化器(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) 边界处理与适应度评估

    
                    
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    MATLAB科研小白

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值