【改进灰狼优化算法】贪婪的非分层灰狼优化算法(Matlab代码实现)

news2025/1/6 18:48:20

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

灰狼优化(GWO)算法是基于灰狼社会等级及其狩猎与合作策略的新兴算法。该算法于2014年推出,已被大量研究人员和设计师使用,因此原始论文的引用次数超过了许多其他算法。在Niu等人最近的一项研究中,介绍了这种算法优化现实世界问题的主要缺点之一。总之,他们表明,随着问题的最佳解决方案从0发散,GWO的性能会下降。

在贪婪非分层灰狼优化器(G-NHGWO)中,通过对原始GWO算法进行直接修改,即忽略其社会等级,我们能够在很大程度上消除这一缺陷,并为该算法的未来使用开辟了新的视角。通过将所提方法应用于基准和实际工程问题,验证了该方法的效率。

文献来源:

📚2 运行结果

部分代码:

clc
clear

global NFE
NFE=0;

nPop=30;    % Number of search agents (Population Number)
MaxIt=1000; % Maximum number of iterations
nVar=30;    % Number of Optimization Variables

Total_Runs=25;

% Pre-allocating vectors and matrices
Cost_Rsult=nan(1,Total_Runs);
Rsult=nan(Total_Runs,MaxIt);
Mean=nan(1,14);
Best=Mean;
Std=Mean;
nfe=Mean;
fitness1=nan(1,nPop);

for nFun=1:14
    NFE=0;
    CostFunction=@(x,nFun) Cost(x,nFun);        % Cost Function
    for run_no=1:Total_Runs
        
        %% Problem Definition
        
        VarMin=-100;             % Decision Variables Lower Bound
        if nFun==7
            VarMin=-600;             % Decision Variables Lower Bound
        end
        if nFun==8
            VarMin=-32;             % Decision Variables Lower Bound
        end
        if nFun==9
            VarMin=-5;             % Decision Variables Lower Bound
        end
        if nFun==10
            VarMin=-5;             % Decision Variables Lower Bound
        end
        if nFun==11
            VarMin=-0.5;             % Decision Variables Lower Bound
        end
        if nFun==12
            VarMin=-pi;             % Decision Variables Lower Bound
        end
        if nFun==14
            VarMin=-100;             % Decision Variables Lower Bound
        end
        VarMax= -VarMin;             % Decision Variables Upper Bound
        if nFun==13
            VarMin=-3;             % Decision Variables Lower Bound
            VarMax= 1;             % Decision Variables Upper Bound
        end
        
        %%   Grey Wold Optimizer (GWO)

        % Initialize Best Solution (Alpha) which will be used for archiving
        Alpha_pos=zeros(1,nVar);
        Alpha_score=inf;
                
        % Initialize the positions of search agents
        Positions=rand(nPop,nVar).*(VarMax-VarMin)+VarMin;
        Positions1=rand(nPop,nVar).*(VarMax-VarMin)+VarMin;
        BestCosts=zeros(1,MaxIt);

        fitness(1:nPop)=inf;

        iter=0;  % Loop counter
        
        %% Main loop
        while iter<MaxIt
            for i=1:nPop
                
                % Return back the search agents that go beyond the boundaries of the search space
                Flag4ub=Positions1(i,:)>VarMax;
                Flag4lb=Positions1(i,:)<VarMin;
                Positions1(i,:)=(Positions1(i,:).*(~(Flag4ub+Flag4lb)))+VarMax.*Flag4ub+VarMin.*Flag4lb;
                
                % Calculate objective function for each search agent
                fitness1(i)= CostFunction(Positions1(i,:), nFun);
                
                %  Grey Wolves
                if fitness1(i)<fitness(i)
                    Positions(i,:)=Positions1(i,:);
                    fitness(i) =fitness1(i) ;
                end
                
                % Update Best Solution (Alpha) for archiving
                if fitness(i)<Alpha_score
                    Alpha_score=fitness(i);
                    Alpha_pos=Positions(i,:);
                end
                
            end
            
            a=2-(iter*((2)/MaxIt));  % a decreases linearly fron 2 to 0
            
            % Update the Position of all search agents
            for i=1:nPop
                for j=1:nVar
                    
                    GGG=randperm(nPop-1,3);
                    ind1= GGG>=i;
                    GGG(ind1)=GGG(ind1)+1;
                    m1=GGG(1);
                    m2=GGG(2);
                    m3=GGG(3);
                    
                    r1=rand;
                    r2=rand;
                    
                    A1=2*a*r1-a;
                    C1=2*r2;
                    
                    D_alpha=abs(C1*Positions(m1,j)-Positions(i,j));
                    X1=Positions(m1,j)-A1*D_alpha;
                    
                    r1=rand;
                    r2=rand;
                    
                    A2=2*a*r1-a;
                    C2=2*r2;
                    
                    D_beta=abs(C2*Positions(m2,j)-Positions(i,j));
                    X2=Positions(m2,j)-A2*D_beta;
                    
                    r1=rand;
                    r2=rand;
                    
                    A3=2*a*r1-a;
                    C3=2*r2;
                    
                    D_delta=abs(C3*Positions(m3,j)-Positions(i,j));
                    X3=Positions(m3,j)-A3*D_delta;
                    Positions1(i,j)=(X1+X2+X3)/3;
                    
                end
            end
            
            iter=iter+1;
            BestCosts(iter)=Alpha_score;
            
            fprintf('Func No= %-2.0f,  Run No= %-2.0f,  Iter= %g, Best Cost = %g\n',nFun,run_no,iter,Alpha_score);
            
        end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

Akbari, Ebrahim, et al. “A Greedy Non-Hierarchical Grey Wolf Optimizer for Real-World Optimization.” Electronics Letters, Institution of Engineering and Technology (IET), Apr. 2021, doi:10.1049/ell2.12176.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RF电路设计常见bug及解决方法

单片射频器件大大方便了一定范围内无线通信领域的应用&#xff0c;采用合适的微控制器和天线并结合此收发器件即可构成完整的无线通信链路。它们可以集成在一块很小的电路板上&#xff0c;应用于无线数字音频、数字视频数据传输系统&#xff0c;无线遥控和遥测系统&#xff0c;…

转自【AI科技评论】专访李海洲教授 | 机器智能对话是毕生所求

一直来到实叻坡&#xff0c;乜事无。上山来做工&#xff0c;伯公“多隆”保平安。——潮州过番歌 所谓“过番”&#xff0c;指早期潮州人外出务工&#xff0c;乘坐小船历经七天七夜到达东南亚谋生&#xff0c;“实叻坡”是马来语“Selat”的音译词&#xff0c;便是指“新加坡”…

Quartz学习

任务执行流程 StdSchedulerFactory创建和属性初始化 如果自定义了属性&#xff0c;会在这里加载 StdScheduler创建 入口为StdSchedulerFactory#getScheduler();&#xff0c;首次进入时调用StdSchedulerFactory#instantiate&#xff1a; 如果没有配置自定义属性&#xff0c;则先…

2022年企业数字化技术应用 5 大趋势丨三叠云

根据易观分析发布的相关报告&#xff0c;本期视频将对2022年企业数字化技术应用 5 大趋势进行讲解&#xff0c;内容可能比较硬核&#xff0c;值得你先收藏再观看。 趋势一&#xff1a;武装数字员工“RPA低代码AI” 中国市场技术供应商正在快速推动技术民主化进程&#xff0c;其…

并发编程(二)有序性

【问题的产生】&#xff1a; 程序真的是按照顺序执行的吗&#xff1f; /*** 本程序跟可见性无关&#xff0c;曾经有同学用单核也发现了这一点*/import java.util.concurrent.CountDownLatch;public class T01_Disorder {private static int x 0, y 0;private static int a …

java小技能:集成开发工具(IDE)

文章目录 I IDEA1.1 下载1.2 试用II 忽略IntelliJ IDEA 文件2.1 .gitignore的例子2.2 从idea进行忽略III idea使用非模式提交界面IV DataGrip4.1安装4.2 Actsee alsoI IDEA 1.1 下载 https://www.jetbrains.com/zh-cn/idea/download/other.html 1.2 试用 IntelliJ IDEA 2021…

快手如何玩转复杂场景下的说话人识别?| ASRU 2021

快手是一个短视频社区&#xff0c;短视频和直播中通常混合各种形式的声音&#xff0c;如语音、音乐、特效音和背景噪声等&#xff0c;这些声音很好的提升了短视频和直播的用户消费体验&#xff0c;但同时也为音频内容理解带来极大的困难和挑战。如何在复杂场景下准确高效的进行…

AMS的启动

AMS的启动 Launcher请求AMS阶段 AMS到ApplicationThread阶段 ApplicationThread到Activity阶段 API28重构之后&#xff0c;ApplicationThread到Activity阶段 应用程序启动涉及的进程间通信 根Activity启动过程涉及到的进程之间的关系 根Activity启动过程中的进程调用时序图 A…

HTML期末大作业:基于HTML+CSS+JavaScript新能源汽车资讯门户网站

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

兼容模式怎么设置?5个常用浏览器的设置方法

在使用电脑浏览器时&#xff0c;有时需要切换到兼容模式才能打开相应界面。许多浏览器现在都有自己的防病毒功能&#xff0c;这可能会直接将许多组件作为病毒屏蔽&#xff0c;导致某些元素无法在正常模式下显示。但是常用浏览器的兼容模式怎么设置呢&#xff1f;接下来让我们一…

【附源码】计算机毕业设计JAVA研究生入学考试备考辅助系统

【附源码】计算机毕业设计JAVA研究生入学考试备考辅助系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a;…

网络编程——socket定义和地址格式

网络编程——socket定义和地址格式 目录 socket 是什么&#xff1f;套接字地址格式 1. socket 是什么&#xff1f; 网络编程中&#xff0c; socket 翻译为套接字或套接口&#xff0c;指可以通过插口接入的方式&#xff0c;快速完成网络连接和数据收发。上图表示网络编程中&…

智能终端测试解决方案

概述 随着互联网产业的蓬勃发展&#xff0c;智能终端的崛起&#xff0c;无论是移动终端制造商、移动通信运营商以及移动互联网内容服务商&#xff0c;都面临着新技术、新业务、新服务不断涌现&#xff0c;商用进程不断加快的局面。 当前基于5G核心技术的移动传输网络已开发出…

只因简历上有“精通”Redis,阿里三面被面试官狂问 Redis,再也不敢乱写了

Redis 在国内各大公司都很热门&#xff0c;比如新浪、阿里、腾讯、百度、美团、小米等。Redis 也是大厂面试最爱问的&#xff0c;尤其是 Redis 客户端、Redis 高级功能、Redis 持久化和开发运维常用问题探讨、Redis 复制的原理和优化策略、Redis 分布式解决方案等。 Redis 我们…

Python 字符串详解

一、字符串概念 用于保存字符信息的数据模型(容器)。 1、只能存放一个值 2、不可变类型 3、有序&#xff0c;索引从0开始顺序访问 字符串语法格式&#xff1a; str1 “字符串信息” str2 字符串信息 str3 字符串信息 str4 字符串信息 二、字符串常用操作 1、字符串…

【论文阅读】社交网络传播最大化问题-02

Leader-Based Community Detection Algorithmin Attributed Networks以往leader-aware算法创新点问题定义定义基础概念定义创新概念模型构造第一步&#xff1a;确定每个节点的leader第二步&#xff1a;合并小分支以得到最终结果实验数据集人工合成网络现实世界的网络基线方法和…

leetcode:2478. 完美分割的方案数【预处理 + dp定义 + 前缀和优化】

目录题目截图题目分析ac code总结题目截图 题目分析 开头必定是prime&#xff0c;结尾必定是not primek 1特判找到所有可能的结尾点&#xff08;最后一个不考虑&#xff09;结尾点i必须满足s[i]->not prime, s[i 1]->prime设结尾点集合为x0 < x1 < x2 < … &…

Docker的容器管理

1、创建容器 容器创建&#xff1a;就是将镜像加载到容器的过程。 创建容器时如果没有指定容器名称&#xff0c;系统会自动创建一个名称。 新创建的容器默认处于停止状态&#xff0c;不运行任何程序&#xff0c;需要在其中发起一个进程来启动容器。 docker create创建的容器…

MCE | ROS 与疾病的关系

前段时间&#xff0c;一篇刊登在国际杂志 Cell Metabolism 上的研究报告表明&#xff0c;从表型正常的细胞转化为癌变细胞或许涉及抗氧化剂防御 (Antioxidant defense) 和核苷酸合成 (Nucleotide synthesis) 两个部分&#xff0c;而突破这些限制可能是致癌转化的关键。文中通过…

oracle常见报错问题处理

文章目录协议适配器错误怎么办&#xff1f;忘记密码了怎么办&#xff1f;报错:ora-01033oracle initialization or shutdown in progress&#xff1b;edit无法使用怎么办&#xff1f;报错:ORA-28547:connection to server failed,probable Oracle Net admin errorORA-12505:监听…