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

news/2024/10/18 3:24:32/

集成正态云和动态扰动的哈里斯鹰优化算法(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.ppmy.cn/news/327764.html

相关文章

Mybatis Generator源码修改

文章目录 报java.net.MalformedURLException错误解决问题原因&#xff1a;编译的时候没有把下面的dtd文件打进去解决方法 XML文件判空优化-增加空字符串修改InsertSelectiveElementGenerator修改UpdateByPrimaryKeySelectiveElementGenerator XML文件判空优化-最佳解决方案 报j…

基于MSP430送药小车 ----- 拓展篇【2021年全国电赛(F题)】

文章目录 该篇文章并非完全按照赛题要求完成&#xff0c;仅当做个人休闲娱乐产品&#xff01;&#xff01;&#xff01;&#xff01; 一、赛题分析二、逻辑处理分析1. 近端病房2. 中端病房3. 远端病房 三、程序设计1. 近端送药2. 中端送药3. 远端送药4. 通信处理①蓝牙②OpenMV…

企业邮箱哪个好,邮箱品牌介绍—TOM邮箱

TOM邮箱TOM集团旗下的互联网产品&#xff0c; 1998年推出免费邮箱业务&#xff0c;是目前中国最大的电子邮箱服务提供商之一。自成立以来&#xff0c;TOM邮箱一直致力于为用户提供更安全、更稳定的邮箱服务系统。同时全面拓展邮箱业务&#xff0c;2001年开通VIP收费邮箱服务&am…

C语言 数组,指针,结构体,文件的训练内容

《计算思维&#xff08;二&#xff09;》实验报告 基础实践二 班级&#xff1a; 学号&#xff1a; 姓名&#xff1a; 实验时间&#xff1a; 2023 年 第01~12周 成绩 哈尔滨工程大学计算机基础课程教学中心 实验五&#xff1a;数组 实验题目1&a…

使用Java调用Yolo模型的准备工作与输入输出

当今社会&#xff0c;人工智能技术正日益成为各行各业的关键工具。其中&#xff0c;目标检测技术是计算机视觉领域中的一项重要任务。Yolo&#xff08;You Only Look Once&#xff09;是一种流行的目标检测算法&#xff0c;具有高效、准确的特点。本文将介绍如何使用Java语言调…

苹果4s怎么越狱教程_教你苹果手机(iPhone)上怎么装KODI (不用越狱)

教你怎么在苹果手机&#xff08;iPhone&#xff09;上装KODI &#xff08;不用越狱&#xff09; 不管你是喜欢在网上追剧的还是喜欢看4k电影的&#xff0c;当提到KODI&#xff08;XBMC&#xff09;估计没有人不认识&#xff0c;KODI前身叫XBMC&#xff0c;因为强大的解码能力和…

Learning C++ No.30 【lambda表达式实战】

引言&#xff1a; 北京时间&#xff1a;2023/6/9/9:13&#xff0c;今天8:15起床&#xff0c;可能是最近课非常少&#xff0c;导致写博客没什么压力&#xff0c;什么时间都能写&#xff0c;导致7点起不来&#xff0c;哈哈哈&#xff0c;习惯睡懒觉了&#xff0c;但是问题不大&a…

【JMeter压力测试】通过jmeter压测surging

目录 前言 环境 下载配置源码 JMeter和JDK下载 JDKJmeter安装 Jmeter非GUI运行压测 结尾 前言 surging是异构微服务引擎&#xff0c;提供了模块化RPC请求通道&#xff0c;引擎在RPC服务治理基础之上还提供了各种协议&#xff0c;并且还提供了stage组件&#xff0c;以便针…