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

news2024/11/18 21:44:36

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

文章目录

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

摘要: 针对哈里斯鹰优化算法收敛精度低、易陷入局部最优的问题,本文提出了融合黄金正弦和随机游走的哈里斯鹰优化算法。首先,该算法在哈里斯鹰的探索阶段融合黄金正弦优化算法,增强算法的全局探索能力;其次,使用一种非线性能量指数递减策略,平衡算法的全局探索和局部开发能力;然后,在哈里斯鹰的开发阶段引入高斯随机游走策略对猎物进行随机游走,提升算法的局部开发能力;

1.哈里斯鹰优化算法

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

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

2.1 黄金正弦算法

观察哈里斯鹰优化算法探索阶段的更新公式 (1) 可知原算法在 q ⩾ 0.5 q \geqslant 0.5 q0.5 时的搜索过于随机, 也末 能与种群中的其它个体进行交流, 导致算法的全局 搜索能力变差, 难以有效遍历整个解空间。因此, 本 文将黄金正弦优化算法融合到 HHO 的探索阶段, 改进后的探索公式如式(17) 所示:
X ( t + 1 ) = { X i t ∗ ∣ sin ⁡ ( R 1 ) ∣ + R 2 ∗ sin ⁡ ( R 1 ) ∗ ∣ x 1 ∗ P i t − x 2 ∗ X i t ∣ , q ⩾ 0.5 ( X rabbii  ( t ) − X m ( t ) ) − r 3 ( L B + r 4 ( U B − L B ) ) , q < 0.5 (17) \begin{aligned} & X(t+1)= \\ & \left\{\begin{array}{l} X_i^t *\left|\sin \left(R_1\right)\right|+R_2 * \sin \left(R_1\right) *\left|x_1 * P_i^t-x_2 * X_i^t\right|, q \geqslant 0.5 \\ \left(X_{\text {rabbii }}(t)-X_m(t)\right)-r_3\left(L B+r_4(U B-L B)\right), \quad q<0.5 \end{array}\right. \\ & \end{aligned}\tag{17} X(t+1)={Xitsin(R1)+R2sin(R1)x1Pitx2Xit,q0.5(Xrabbii (t)Xm(t))r3(LB+r4(UBLB)),q<0.5(17)

2.2 非线性能量指数递减策略

H H O \mathrm{HHO} HHO 算法中, 猎物能量 E E E 的大小起着调节 和过渡全局搜索和局部开采的重要作用, E E E 越小, H H O \mathrm{HHO} HHO 算法越倾向于执行局部开采; E E E 越大, 算法越 倾向于进行全局探索. 但在传统 H H O \mathrm{HHO} HHO 算法的能量 方程中, E E E 由最大值到最小值呈线性递减, 并不能有 效描述自然界中哈里斯噟群体围捕猎物的真实过 程. 数学家模拟捕食者一猎物的相互作用 [ 8 ] { }^{[8]} [8], 得出这 样的结论:随机收缩指数函数更适合于表达猎物逃 跑时的能量变化. 因此, 论文提出修正能量线性递减 调控机制, 将随机收缩指数函数融入猎物能量 E \mathrm{E} E 的 递减过程, 其对应的能量方程为:

H H O \mathrm{HHO} HHO 中,逃逸能量 E E E 不仅控制着全局探索 和局部开发的的转换, 而且还决定着哈里斯鹰四种 开发策略的选择。文献 [4]已经指出了原始算法逃 逸能量 E E E 后期恒小于 1 , 缺少全局探索,易使算法陷 人局部最优。而文献 [ 6 ] [6] [6] 通过实验指出了指数递减 策略为逃逸能量的最佳策略。因此本文定义了一种 非线性能量指数递减策略, 具体见式( 18)、式(19) :
E = 2 e − ( α × t T ) + δ (18) \begin{gathered} E=2 e^{-\left(\alpha \times \frac{t}{T}\right)}+\delta \end{gathered}\tag{18} E=2e(α×Tt)+δ(18)

δ = randn ⁡ × ( sin ⁡ β ( π 2 × t T ) + cos ⁡ ( π 2 × t T ) − 1 ) (19) \begin{gathered} \delta=\operatorname{randn} \times\left(\sin ^\beta\left(\frac{\pi}{2} \times \frac{t}{T}\right)+\cos \left(\frac{\pi}{2} \times \frac{t}{T}\right)-1\right) \end{gathered}\tag{19} δ=randn×(sinβ(2π×Tt)+cos(2π×Tt)1)(19)
其中, randn ⁡ \operatorname{randn} randn ( 0 , 1 ) (0,1) (0,1) 内的随机数; α \alpha α 的值为 1.3 ; β 1.3 ; \beta 1.3;β 的值为 1.7 。

2.3 高斯随机游走策略

高斯随机游走作为一种经典的随机游走模型, 模型的开发能力比较强。在 H H O \mathrm{HHO} HHO 的开发阶段引人 高斯随机游走策略, 对种群的最优个体施加扰动, 生 成新的个体, 既利于增强算法的收玫速度, 又可在算 法陷人局部最优时帮助算法跳出局部最优。具体的 高斯随机游走策略见式(20)、式(21):
X ( t + 1 ) = Gussian ⁡ ( X rabbit  t , τ ) (20) X(t+1)=\operatorname{Gussian}\left(X_{\text {rabbit }}^t, \tau\right) \tag{20} X(t+1)=Gussian(Xrabbit t,τ)(20)

τ = cos ⁡ ( ( π 2 ∗ t T ) 2 ) × ( X rabbit  t − X rand  ( t ) ) (21) \begin{gathered} \tau=\cos \left(\left(\frac{\pi}{2} * \frac{t}{T}\right)^2\right) \times\left(X_{\text {rabbit }}^t-X_{\text {rand }}(t)\right) \end{gathered}\tag{21} τ=cos((2πTt)2)×(Xrabbit tXrand (t))(21)
其中, X r a b b i t t X_{r a b b i t}^t Xrabbitt 为第 t t t 次迭代中猎物的位置, 即最优 个体的位置。

3.实验结果

在这里插入图片描述

4.参考文献

[1]聂春芳.融合黄金正弦和随机游走的哈里斯鹰优化算法[J].智能计算机与应用,2021,11(07):113-119+123.

5.Matlab代码

6.python代码

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

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

相关文章

【软件环境安装部署】华为云服务器下 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中最基本的判…

(八)CSharp-泛型协变和逆变(3)

一、协变和逆变 可变性分为三种&#xff1a; 协变、逆变和不变。 协变和逆变&#xff1a; 为泛型接口和泛型委托添加了一个处理类型转换问题的扩展。 问题&#xff1a; 当两个类对象是继承与派生的关系时&#xff0c;由于编译器通过泛型实例化时没法确认它们之间的关系&…