融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)-附代码

news2024/11/18 21:42:46

融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)

文章目录

  • 融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)
    • 1.哈里斯鹰优化算法
    • 2.改进哈里斯鹰优化算法
      • 2.1 动态反向学习策略
      • 2.2 改进混合算法理论分析
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.python代码

摘要: 阿奎拉鹰优化算法(Aquila optimizer, AO)和哈里斯鹰优化算法(Harris hawks optimization, HHO)是近年提出的优化算法。AO算法全局寻优能力强,但收敛精度低,容易陷入局部最优,而HHO算法具有较强的局部开发能力,但存在全局探索能力弱,收敛速度慢的缺陷。针对原始算法存在的局限性,本文将两种算法混合并引入动态反向学习策略,提出一种融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法。首先,在初始化阶段引入动态反向学习策略提升混合算法初始化性能与收敛速度。此外,混合算法分别保留了AO的探索机制与HHO的开发机制,提高算法的寻优能力

1.哈里斯鹰优化算法

基础哈里斯鹰优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108528147

2.改进哈里斯鹰优化算法

2.1 动态反向学习策略

本文引人动态反向学 习策略, 提高初始化解的质量, 计算方法如下为
X DOBL  = X init  + r 18 × ( r 19 × ( L B + U B − X init  ) − X init  ) \boldsymbol{X}_{\text {DOBL }}=\boldsymbol{X}_{\text {init }}+r_{18} \times\left(r_{19} \times\left(\mathrm{LB}+\mathrm{UB}-\boldsymbol{X}_{\text {init }}\right)-\boldsymbol{X}_{\text {init }}\right) XDOBL =Xinit +r18×(r19×(LB+UBXinit )Xinit )
式中: X i n i t X_{\mathrm{init}} Xinit 代表通过随机生成的初始化种群; r 18 r_{18} r18 r 19 r_{19} r19 均为分布在 0 ∼ 1 0 \sim 1 01 的随机数。首先, 算法分别 生成原始初始化种群 X i n i t \boldsymbol{X}_{\mathrm{init}} Xinit 与反向初始种群 X D O B L \boldsymbol{X}_{\mathrm{DOBL}} XDOBL, 然后将两个种群合并为新种群 X n e w = { X D O B L ∪ \boldsymbol{X}_{\mathrm{new}}=\left\{\boldsymbol{X}_{\mathrm{DOBL}} \cup\right. Xnew={XDOBL X init  } \left.X_{\text {init }}\right\} Xinit } 。计算新种群的适应度值, 并利用贪婪策略 使种群内部充分竞争, 选取最佳的 N N N 个个体作为 初始化种群。通过此方法能够让种群更快地靠近 最优解, 从而提升算法的收敛速度。

2.2 改进混合算法理论分析

阿奎拉鹰根据不同猎物 会采取 4 种不同的捕食行为。在前期迭代中, 根 据随机数 r 1 r_1 r1 选择高空飞行搜索或环绕猎物飞行, 这两种探索方式主要针对快速移动的猎物。因此 位置更新中分别考虑了阿奎拉鹰种群的最佳位 置、平均位置和随机位置, 式 (1) 利用种群最佳位 置和平均位置实现整体种群在搜索空间内的大范 围搜索, 式 (3) 利用莱维飞行配合最佳位置实现 搜索空间的大范围随机扰动,体现算法较强的全 局探索能力。当迭代次数 t > ( 2 3 × T ) t>\left(\frac{2}{3} \times T\right) t>(32×T) 时, 根据随机 数 r 4 r_4 r4 选择低空飞行攻击或地面近距离攻击策略, 这两种攻击方式主要针对移动速度较慢的猎物, 体现算法的局部搜索能力。然而,根据生物特性 来看, 阿奎拉鹰倾向于单独狩猎, 且地面移动能力较弱, 无法对地面上猎物实行有效攻击。从数 学描述来看, 局部开发过程并没有对选定的搜索 空间进行充分搜索, 其中莱维飞行的作用也很 弱, 根据适应度进行位置更新加剧了局部最优停 滞。此外, AO 算法仅是根据迭代次数进行阶段 划分, 无法有效平衡算法全局阶段与局部阶段。 因此, A O \mathrm{AO} AO 算法全局探索阶段随机性较强, 种群在 搜索空间覆盖面广, 不易错失关键的搜索信息, 而局部开发阶段容易陷人局部最优。HHO 则根据猎物的能量衰减实现全局到局部搜索的过 渡。探索过程主要依靠最优个体信息, 没有与其 他个体交流, 引发种群多样性下降, 导致收玫速 度较慢。随着迭代次数的增加, 猎物的能量下 降, 进人局部开发阶段, 根据猎物能量和逃逸概 率采取 4 种不同的捕食策略。当逃逸概率 r 16 ⩾ 0.5 r_{16} \geqslant 0.5 r160.5 时, 通过猎物能量选择软包围或硬包围, 分别根 据自身与猎物的距离和猎物的位置进行位置更 新。否则, 通过猎物能量选择渐进式快速俯冲的 软包围或硬包围, 两种方式均加人了莱维飞行 项, 并根据适应度判断使用莱维游走还是快速俯 冲攻击, 使算法能够有效跳出局部最优。总的来 说, A O \mathrm{AO} AO 的全局搜索和 H H O \mathrm{HHO} HHO 的局部搜索分别是该 两种算法的核心特点, 本文将 A O \mathrm{AO} AO 的全局探索阶 段和 HHO 的局部探索阶段相结合, 充分发挥两 种算法的优势,保留算法的全局探索能力、较快 的收玫速度和跳出局部最优的能力。此外, 在初 始化阶段引人动态反向学习策略, 进一步提升算 法初始化种群质量, 使混合算法的收敛速度和精度都得到提高,增强了算法的整体寻优性能。

DAHHO 算法步骤如下:

  1. 初始化种群, 计算动态反向学习种群, 根据贪婪策略保留较优个体进人主程序迭代。
    2)计算种群适应度值,记录较优个体。
    3 ) 如果 ∣ E ∣ ⩾ 1 |E| \geqslant 1 E1, 个体随机选择式 (1) 或式 (3) 开始探索行为。
  2. 如果 ∣ E ∣ < 1 |E|<1 E<1, 种群根据逃逸猎物能量值与 适应度值选择开发策略:
    策略 1 软包围。当 r 16 ⩾ 0.5 r_{16} \geqslant 0.5 r160.5 ∣ E ∣ ⩾ 0.5 |E| \geqslant 0.5 E0.5, 子 群个体采用式 (11) 更新位置。
    策略 2 硬包围。当 r 16 ⩾ 0.5 r_{16} \geqslant 0.5 r160.5 ∣ E ∣ < 0.5 |E|<0.5 E<0.5, 子 群个体采用式 (4) 更新位置。
    策略 3 渐近式快速俯冲软包围。当 r 16 < 0.5 r_{16}<0.5 r16<0.5 ∣ E ∣ ⩾ 0.5 |E| \geqslant 0.5 E0.5, 子群个体采用式 (5)、(6)、(7) 更新 位置。
    策略 4 渐近式快速俯冲硬包围。当 r 16 < 0.5 r_{16}<0.5 r16<0.5 ∣ E ∣ < 0.5 |E|<0.5 E<0.5, 子群个体采用式 (6)、(7)、(8) 更新位置。
  3. 判断程序是否满足终止条件, 满足则跳出 循环, 否则返回步骤 2 。
  4. 输出最佳位置及适应度值。

3.实验结果

在这里插入图片描述

4.参考文献

[1]贾鹤鸣,刘庆鑫,刘宇翔等.融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法[J].智能系统学报,2023,18(01):104-116.

5.Matlab代码

6.python代码

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

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

相关文章

融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)-附代码

融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO) 文章目录 融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)1.哈里斯鹰优化算法2.改进哈里斯鹰优化算法2.1 黄金正弦算法2.2 非线性能量指数递减策略2.3 高斯随机游走策略 3.实验结果4.参考文献5.Matlab代码6.python代码 摘要…

【软件环境安装部署】华为云服务器下 Docker 安装 MongoDB 以及 SpringBoot 整合 MongoDB 开发使用

文章目录 安装测试 MongoDB拉取镜像创建和启动容器登录mongo容器&#xff0c;并进入到【admin】数据库创建一个用户&#xff0c;mongo 默认没有用户连接mongo数据库测试数据库&#xff0c;插入一条语句测试数据库&#xff0c;查询刚才插入的语句查看所有数据库开放指定端口开放…

(八)CSharp-泛型中的方法结构委托接口(2)

一、泛型方法 泛型方法可以在泛型和非泛型类以及结构和接口中声明。 1、声明泛型方法 泛型方法具有类型参数列表和可选的约束。 泛型方法有两个参数列表。 封闭在圆括号内的方法参数列表。封闭在尖括号内的类型参数列表。 要声明泛型方法&#xff0c;需要&#xff1a; 在方法…

Java程序猿搬砖笔记(十四)

文章目录 MySQL自定义排序用locate本质是数字排序case when then...语法排序field()函数排序 阿里云Maven镜像仓库无法下载spring-cloud-dependencies依赖问题MySQL更新同一个表的同个字段解决方法一(推荐)解决方法二 SpringBoot返回的JSON中的null转换为空字符串Spring的相关注…

OpenGL光照之光照贴图

文章目录 漫反射贴图镜面光贴图放射光贴图代码 每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观&#xff0c;但是这仍不能对一个物体的视觉输出提供足够多的灵活性。 我们将整个物体的材质定义为一个…

Linux命令:lsof

目录 一、理论 1.lsof 二、实验 1.无参数 2.-p 参数 3.-l 参数 4. -u 参数 5.-c 参数 6.-d 参数 7.fileName 8. -i 参数 一、理论 1.lsof (1)概念 命令 lsof &#xff08; list opened files &#xff09;负责列出系统中已经打开的文件&#xff0c;包括普通文件&a…

【uni-app】使用uni-app实现简单的登录注册功能

文章目录 前言一、页面布局二、注册页面1.注册接口使用2.注册成功提示3.注册成功页面跳转4.完整代码 三、登录页面1.登录接口使用2.本地存储使用3.完整代码 总结 前言 大家好&#xff0c;今天和大家分享一下如何在uni-app中实现简单的登录注册功能。 首先你需要掌握一下知识点…

【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的的创建、修改、应用与适用场景

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;#MS-SQL Server 专栏中。 本系列文章列表如下&#xff1a; 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南&#xff08;一&#xff09;数据库设计的核心概念…

UE特效案例 —— 火堆

一&#xff0c;环境配置 创建默认地形Landscape&#xff0c;如给地形上材质需确定比例&#xff1b;添加环境主光源DirectionalLight&#xff0c;设置相应的强度和颜色&#xff1b;PostProcessVolume设置曝光&#xff0c;设置Min/Max Brightness为1&#xff1b; 与关闭Game Sett…

03并发进程

文章目录 哲学家进餐问题1.利用结构型信号量解决哲学家进餐问题解决方案1&#xff1a;每次最多允许四位哲学家就餐 2.利用AND型信号量解决哲学家进餐问题 生产者-消费者问题1.利用结构型信号量解决生产者-----消费者问题单缓冲区生产者-消费者问题多缓冲区 2.利用AND型信号量解…

高并发编程:并发容器

一、概述 常见的容器如下图&#xff0c;我们会挑选高并发中常用的容器进行介绍。 二、ConcurrentHashMap 个ConcurrentHashMap提高效率主要提高在读上面&#xff0c;由于它往里插的时候内部又做了各种各样的判断&#xff0c;本来是链表的&#xff0c;到8之后又变成了红黑树&a…

详细讲解!selenium:解决页面元素display:none的方法

目录 前言&#xff1a; 1、具体问题 2、解决方案 代码解析&#xff1a; 结尾&#xff1a; 前言&#xff1a; 在进行 Web 自动化测试时&#xff0c;页面元素的可见性对测试结果的准确性和稳定性至关重要。然而&#xff0c;有些时候页面元素会被设置为 display:none&#x…

亚马逊云科技出海日,助推出海业务全球拓展突飞猛进

出海路漫漫&#xff0c;企业开拓全球市场而孤军奋战&#xff0c;常常会感到力不从心。好的产品有了&#xff0c;渠道有了&#xff0c;供应链有了&#xff0c;还要自己从0-1搭建存储、网络和架构&#xff1f;营销季来了想趁机冲一波销量&#xff0c;还要自己运维本地IDC、大促来…

10.无监督学习之K-means算法

10.1 无监督学习的定义 监督学习&#xff1a;我们有一些列标签&#xff0c;然后用假设函数去拟合它 无监督学习&#xff1a;给出的数据不带任何标签。对于无监督学习来说&#xff0c;需要做的就是将数据输入到算法中&#xff0c;让算法找到一些隐含在数据中的结构&#xff0c;通…

C语言—程序环境和预处理

程序环境和预处理 程序的翻译环境和执行环境编译、链接翻译环境编译预处理&#xff08;预编译&#xff09;编译汇编 链接 编译环境几个阶段的总结 运行环境&#xff08;执行环境&#xff09;预处理详解预定义符号#define#define 定义标识符#define 定义宏#define 替换规则#和##…

【MySQL】数据库中表的操作详解

【MySQL】数据库表的基本操作 一、表的创建二、查看表结构三、修改表结构3.1 添加表中字段3.2 修改表中字段3.3 删除表中字段3.4 修改表名3.5 修改列名 四、删除表 温馨提示&#xff1a;这里的表操作指的是表结构的操作&#xff0c;属于DDL数据定义语言 一、表的创建 CREATE …

hooks组件+例子+底层机制

1.React组件分类 函数组件 1.不具备"状态、ref、周期函数"等内容&#xff0c;第一次渲染完毕后&#xff0c;无法基于组件内部的操作来控制其更新&#xff0c;因此称之为静态组件!。但是具备属性及插槽&#xff0c;父组件可以控制其重新渲染 2.渲染流程简单&#xff…

Same Symbol | 哇咔咔!!!盘点一下表达矩阵中重复基因的处理方法!~

1写在前面 医院天天叫我们填问卷&#xff0c;我真是不能理解。&#x1fae0; 动不动就问我们对医院的福利满意吗&#xff0c;对自己的收入满意吗&#xff0c;觉不觉得工作负荷太重了&#xff1f;&#xff1f;&#xff1f;&#x1f642; 我们满不满意&#xff0c;觉不觉得累&…

大学物理(上)-期末知识点结合习题复习(2)——运动的描述考点总结、质点运动学-牛顿运动定律

目录 运动的描述 期末考点 质点运动学 牛顿运动定律知识点 题1(牛顿第二定律) 题目描述 题解 题2 (圆周运动) 题目描述 题解 运动的描述 期末考点 1.速度和加速度的推导 平均速度平均速度反映的只是在一段时间内位移的变化&#xff0c;如果需要精准的地知道质点在…

chatgpt赋能python:Python如何判断奇偶数?

Python如何判断奇偶数&#xff1f; 作为一门功能强大且容易上手的编程语言&#xff0c;Python具有许多有用的工具和功能。其中之一就是判断奇偶数。在本文中&#xff0c;我们将介绍Python中判断奇偶数的不同方法。 H1&#xff1a;Python中的基本判断方法 Python中最基本的判…