集成正态云和动态扰动的哈里斯鹰优化算法(IHHO)-附代码

news2024/11/19 4:30:41

集成正态云和动态扰动的哈里斯鹰优化算法(IHHO)

文章目录

  • 集成正态云和动态扰动的哈里斯鹰优化算法(IHHO)
    • 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 正态云模型

云模型由期望 E x 、 E x 、 Ex 、熵 E n E n En 和超熵 H e H e He 三个参数进行描述, 当 E n E n En 增大时, 云滴分布范围随之变大, 当 H e H e He 增 大时, 云滴的离散程度同步增大, 侧面反映云滴分布的随机 性和模糊性。正向正态云发生器是产生基本服从正态分布云 滴的一种算法, 通过设定的参数来产生云滴, 直到生成期望 的云滴数量。正态云滴生成过程可定义为如下所示 [ 12 ] { }^{[12]} [12] :
X [ x 1 , x 2 , ⋯ x N d ] = Gnc ⁡ ( E x , E n , H e , N d ) (12) \boldsymbol{X}\left[x_1, x_2, \cdots x_{N d}\right]=\operatorname{Gnc}(E x, E n, H e, N d) \tag{12} X[x1,x2,xNd]=Gnc(Ex,En,He,Nd)(12)
其中: N d N d Nd 为期望云滴个数。

本文引入正态云模型作为哈里斯鹰位置新的更新机制。 通过正态云模型的期望值 E x E x Ex 对最优位置解进行开发, 通过 E n E n En 调控其余位置解, 利用 H e \mathrm{He} He 调整哈里斯鹰位置离散程度, 公式如下所示 [ 13 ] { }^{[13]} [13] :
 Position  ′ = Gnc ⁡ (  Position  best  ,  En, He, Nd)  (13) \text { Position }^{\prime}=\operatorname{Gnc}\left(\text { Position }_{\text {best }},\right. \text { En, He, Nd) }\tag{13}  Position =Gnc( Position best , En, He, Nd) (13)

E n = λ × ( T − t T ) τ (14) E n=\lambda \times\left(\frac{T-t}{T}\right)^\tau \tag{14} En=λ×(TTt)τ(14)

H e = E n × 1 0 − ξ (15) \begin{gathered} H e=E n \times 10^{-\xi} \end{gathered}\tag{15} He=En×10ξ(15)

2.2 随机反向学习思想

反向学习思想自被提出以来, 就成为优化算法常用的一 种改进策略, 主要是通过对算法可行解进行反向学习, 通过 评估原始解和反向解, 选取更优解加入算法迭代。为此, 本 文引入随机反向学习思想对最差哈里斯鹰位置进行更新 [ 14 ] { }^{[14]} [14], 公式如下所示:
X worst  , t + 1 = u b 1 + rand ⁡ × ( l b 1 − X w o r s t , t ) (16) \boldsymbol{X}_{\text {worst }, t+1}=u b_1+\operatorname{rand} \times\left(l b_1-\boldsymbol{X}_{w o r s t, t}\right)\tag{16} Xworst ,t+1=ub1+rand×(lb1Xworst,t)(16)
其中: X w o r s t \boldsymbol{X}_{w o r s t} Xworst 表示最差哈里斯鹰位置, u b 1 u b_1 ub1 l b 1 l b_1 lb1 分别为 动态边界的上下界。
随着算法迭代, 通过式 (16) 对位置最差值进行更新, 得到反向随机解, 从而提高哈里斯鹰种群多样性和寻得全局 最优解几率。同时随机反向学习采用动态边界 u b 1 u b_1 ub1 l b 1 l b_1 lb1, 降 低了传统的固定边界 u b u b ub l b l b lb 易丢失搜索信息的问题, 也降低了改进算法的计算复杂度。

2.3 动态扰动策略

当猎物能量 ∣ E ∣ < 1 |E|<1 E<1 时, 算法进入开发阶段, 但无法保 证此时种群都接近全局最优, 可能会导致收玫太早以及陷入 局部寻优。因此, 在 4 种捕食策略 中引入了一种动态扰动策略, 在保证算法寻优精度的基础上 能迅速跳出局部寻优。
ψ = − cos ⁡ ( π t 2 T + π ) (17) \psi=-\cos \left(\frac{\pi t}{2 T}+\pi\right)\tag{17} ψ=cos(2Tπt+π)(17)

X ψ ,  rabbit  = ψ × X rabbit  (18) \begin{gathered} \boldsymbol{X}_{\psi, \text { rabbit }}=\psi \times \boldsymbol{X}_{\text {rabbit }} \end{gathered} \tag{18} Xψ, rabbit =ψ×Xrabbit (18)
其中: ψ \psi ψ 为扰动系数; X ψ ,  rabbit  \boldsymbol{X}_{\psi, \text { rabbit }} Xψ, rabbit  为加入扰动后的猎物位置。

流程图如下:

在这里插入图片描述

3.实验结果

在这里插入图片描述

4.参考文献

[1]张帅,王俊杰,李爱莲,全凌翔,崔桂梅.集成正态云和动态扰动的哈里斯鹰优化算法[J/OL].小型微型计算机系统:1-11[2023-06-06].DOI:10.20009/j.cnki.21-1106/TP.2021-0791.

5.Matlab代码

6.python代码

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

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

相关文章

Uni-app学习从0到1开发一个app——(3)简单小工程内容介绍

文章目录 工程文件 看看一个标准的hello微信小程序工程文件的组成和作用。 工程文件 可以参考官方教程&#xff1a;传送门 之前的文章有详细的开发环境介绍&#xff0c;传送门Uni-app学习从0到1开发一个app——(2)windowns环境搭配&#xff0c;这里我们先建一个简单的示例微信…

【工具】Xshell-7和Xftp-7下载安装使用教程

目录 一、Xshell和Xftp 二、安装包下载(Xshell和Xftp) 三、Xshell安装、使用和常用设置 1. Xshell安装&#xff1a; 2. Xshell使用: 3. Xshell常用设置 三、Xftp安装、使用 1. Xftp安装 2. Xftp使用 一、Xshell和Xftp Xshell&#xff1a; Xshell是一款强大的SSH&#xff…

【数据结构与算法分析】树上漫步之探究前序、中序、后序、广度优先遍历算法的实现与优化

文章目录 前言二叉树的遍历方式构建二叉树递归遍历二叉树非递归遍历二叉树层次遍历 示例二叉树结果总结 前言 二叉树是数据结构中最基本的数据结构之一&#xff0c;它在计算机科学中有着非常重要的应用。二叉树的遍历是指按照一定的顺序遍历二叉树中的所有节点&#xff0c;是二…

DML——数据库查询语言

查询——select SELECT [DISTINCT/ALL/] {*|column|expression [alias],…} FROM table [Natuarl join /] where子句; Natuarl join 自然连接只考虑那些在两个关系模式中都出现的属性上取值相同的元祖队。 列名&#xff08;属性名&#xff09;完成相同值相同去除重复列拓展&…

【Typora+Lsky】在deepin使用YGXB-net/lsky-upload上传图片

本文首发于 慕雪的寒舍 在win和deepin上使用lsky-upload上传图片 1.说明 先前使用lsky图床的时候&#xff0c;我一直用的是picgo的插件来上传图片。 但最近picgo总是遇到卡上传的问题 https://github.com/Molunerfinn/PicGo/issues/1060 后来在gitee上面搜到了这个项目&…

Django实现接口自动化平台(七)数据库设计

上一章&#xff1a; Django实现接口自动化平台&#xff08;六&#xff09;httprunner&#xff08;2.x&#xff09;基本使用【持续更新中】_做测试的喵酱的博客-CSDN博客 下一章&#xff1a; 一、数据库设计 接口自动化平台&#xff0c;内置引擎&#xff0c;使用的是httprun…

【LeetCode热题100】打卡19天:最大数组和跳跃游戏

文章目录 【LeetCode热题100】打卡第19天&#xff1a;最大数组和&跳跃游戏⛅前言 最大数组和&#x1f512;题目&#x1f511;题解 跳跃游戏&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第19天&#xff1a;最大数组和&跳跃游戏 ⛅前言 大家好&#xff…

A股市场全景分析系列—从每日涨停个股分析热门板块与题材

前言‍‍ 当前市场股票多但资金有限&#xff0c;因此已经无法出现全面上涨的行情。这样一来识别当前的“风口”显得尤为重要&#xff0c;也就是上车热门板块、热门题材、强势个股&#xff01; 因此聚焦分析涨停板个股显得尤为重要&#xff01; 我们统计了近&#xff15;个交易日…

【算法题解】38. 括号的生成

这是一道 中等难度 的题 https://leetcode.cn/problems/generate-parentheses/ 题目 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["…

DNS隧道穿透

介绍&#xff1a; DNS隧道&#xff0c;是隧道技术中的一种。当我们的HTTP、HTTPS这样的上层协议、正反向端口转发都失败的时候&#xff0c;可以尝试使用DNS隧道。DNS隧道很难防范&#xff0c;因为平时的业务也好&#xff0c;使用也罢&#xff0c;难免会用到DNS协议进行解析&am…

线上问题记录20230610-NGINX代理大文件下载问题

线上问题记录20230610-NGINX代理大文件下载问题 问题描述 我们有一个在线项目&#xff1a;是一个对象文件存储服务&#xff0c;是用来给用户提供文件对象存储的。今天用户在使用的时候发现超过1G的文件无法进行下载。幸好今天是星期六&#xff0c;使用的人并不是特别多&#…

华为OD机试真题 JavaScript 实现【最长的连续子序列】【2022Q4 100分】

一、题目描述 有N个正整数组成的一个序列&#xff0c;给定一个整数sum&#xff0c;求长度最长的的连续子序列使他们的和等于sum&#xff0c;返回该子序列的长度&#xff0c;如果没有满足要求的序列返回-1。 二、输入描述 第1行有N个正整数组成的一个序列。 第2行给定一个整…

【LIN通讯出现问题】

LIN信号发出了&#xff0c;但是没有收到响应的原因 如果你发送了LIN&#xff08;局域网互连&#xff09;信号&#xff0c;但没有收到响应&#xff0c;可能有以下几个原因&#xff1a; 线路故障&#xff1a;检查信号线路是否连接正确&#xff0c;可能存在接触不良、开路或短路等…

【PCB专题】Allegro 单线、差分线自动绕等长功能介绍

在文章【PCB专题】案例:绕等长怎么直接以颜色区分看出是否绕好 中我们讲到Allegro 16.6版本的Timing Vision功能可以直接在PCB上以颜色的区分就能看出单线和差分是否已经绕成等长了,不再需要到规则管理器中去查看。 那么其实Allegro还有单线自动绕等长的功能——Auto interac…

mac电脑储存内存越来越小如何清理释放空间?

如果你是一位Mac系统的用户&#xff0c;可能会发现你的电脑储存空间越来越小。虽然Mac系统设计得非常优秀&#xff0c;但是系统数据和垃圾文件也会占据大量的储存空间。在这篇文章中&#xff0c;我们将探讨mac系统数据怎么这么大&#xff0c;以及mac清理系统数据怎么清理。 一…

# Telegraph-Image:利用Cloudflare Pages和Telegraph无成本创建自己的图床

Telegraph-Image&#xff1a;利用Cloudflare Pages和Telegraph无成本创建自己的图床 Telegraph-Image是一个具有以下特点的图像托管服务&#xff1a; 特点&#xff1a; 无限图片储存数量&#xff1a;你可以上传不限数量的图片&#xff0c;没有存储限制。免费托管&#xff1a…

chatgpt赋能python:Python中如何删除字符串中的标点符号

Python中如何删除字符串中的标点符号 概述 在Python中&#xff0c;字符串是一种基本数据类型&#xff0c;经常被用来存储和处理文本数据。在处理文本数据时&#xff0c;我们常常需要删除其中的标点符号。本文将介绍如何使用Python中的字符串处理方法来删除字符串中的标点符号…

[安卓广播入门][1]Android Studio接收系统广播

一、新建项目 二、增加权限 <uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" />三、代码 public class MainActivity extends AppCompatActivity {private IntentFilter intentFilter;//过滤隐式意图private NetworkChangeReceiver…

【状态估计】变分贝叶斯近似的递归噪声自适应卡尔曼滤波(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Spring框架】第一个Spring(创建和使用)

目录 Spring创建和使用创建创建一个Maven项目添加Spring框架支持(spring-context、spring-beans)添加启动类 存储Bean对象创建Bean将Bean注册到容器读取并使用Bean对象经典面试题&#xff1a;ApplicationContext和BeanFactory的区别是什么&#xff1f; Spring创建和使用 创建 …