当前位置: 首页 > news >正文

【智能算法】河马优化算法(HO)原理及实现

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2024年,MH Amiri受到自然界河马社会行为启发,提出了河马优化算法(Hippopotamus Optimization Algorithm, HO)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

HO从河马社会行为中汲取灵感,模拟了它们在河流或池塘中的位置更新、对捕食者的防御策略和逃避策略。

在这里插入图片描述

2.2算法过程

河马在河流或池塘中的位置更新(探索)

河马群体结构复杂,由若干成年雌性、幼崽、多只成年雄性以及一只占统治地位的雄性(即群体的领导)组成。群体中的领导雄性负责保护群体和领域免受外来威胁。在河马的社交结构中,雌性通常被置于雄性的保护之下。随着成年雄性河马的成长,它们往往会被领导雄性赶出原有的群体,这些雄性河马则需要通过吸引雌性或与其他成熟雄性竞争以建立自己的领导地位。

其中,χimhippo表示雄性河马的位置,Dhippo表示优势河马的位置。参数为:

式(6)和(7)描述了雌性或未成熟河马在兽群中的位置(χiFBhippo)。大多数未成熟的河马都靠近它们的母亲,但由于好奇,有时未成熟的河马会与兽群分开或远离它们的母亲。当T大于0.6时,表示未成熟的河马已经离开了母亲(式5)。当r6大于0.5时,表示未成熟的河马已经离开了母亲,但仍在兽群内或附近(式7),否则表示未成熟的河马已经离开了兽群。未成熟河马和雌性河马的这种行为是根据方程建立模型的。(6)、(7)。h1、h2是从h方程中五种场景中随机选取的数字或向量。在式(7)中,r7是0到1之间的随机数。式(8)、(9)描述了雄性和雌性或未成熟河马在群体中的位置更新。Fi为目标函数值。

在这里插入图片描述
在这里插入图片描述
使用h向量,I1和I2场景增强了算法的全局搜索,提高了算法的探索能力。

河马防御掠食者(探索)

河马采用的主要防御策略是迅速转向捕食者,并发出响亮的叫声,以阻止捕食者靠近它们。在这个阶段,河马可能会表现出接近捕食者的行为,以诱导其撤退,从而有效地抵御潜在的威胁。

在这里插入图片描述
在这里插入图片描述
式(11)表示第i只河马到捕食者的距离。在这段时间里,河马采取了一种基于fpredator因子的防御行为来保护自己免受捕食者的攻击。如果f捕食者j小于Fi,表明捕食者离河马非常近,在这种情况下,河马迅速转向捕食者并向其移动,使其撤退。如果f捕食者j较大,则表明捕食者或入侵实体距离河马的领地较远。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果F HippoR i大于F,则表示该河马已被猎杀,将有另一头河马在群中取而代之,否则猎人逃跑,该河马将返回群中。在第二阶段,在全局搜索过程中观察到显著的增强。第一阶段和第二阶段相辅相成,有效地降低了陷入局部最小值的风险。

在这里插入图片描述

河马逃离捕食者(开发)

河马面对捕食者的另一种行为是当河马遇到一群捕食者或无法用防御行为击退捕食者时。在这种情况下,河马会试图离开该区域。

在这里插入图片描述
从三种场景中随机选择:

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述

在这里插入图片描述

4.参考文献

[1] Amiri M H, Mehrabi Hashjin N, Montazeri M, et al. Hippopotamus optimization algorithm: a novel nature-inspired optimization algorithm[J]. Scientific Reports, 2024, 14(1): 5032.

5.代码获取

资源清单

http://www.lryc.cn/news/348648.html

相关文章:

  • spring基础使用(案例)
  • 相同的树LeetCode
  • Vue中如何抽取部分代码到单独的ts文件
  • 山东齐鲁文化名人颜廷利:朱郭有文才,曲高‘菏’寡星光路
  • 嵌入式学习70-复习(wireshark使用和http协议)
  • idea配置MySQL提示
  • 如何利用AI生成答辩PPT?笔灵AI答辩PPT,智能识别关键点
  • 速盾:怎么设置cdn加速小程序图片?
  • Android bootchart 分析启动性能工具使用
  • 一键开启,盲盒小程序里的梦幻奇遇
  • 如何进行并行执行的诊断与调优 —— 《OceanBase 并行执行》系列 6
  • 【Ubuntu系统hgfs共享文件夹不显示问题解决】
  • C++的相关知识集
  • 解决Jmeter报错 :Error generating the report: java.lang.NullPointerException
  • QT外部库:zlib
  • 钡铼技术BL205模块分布式IO集成应用风电场状态监测
  • java博客目录
  • 从零开始学习Linux(8)----自定义shell
  • 《大数据分析-数据仓库项目实战》学习笔记
  • JDK介绍
  • JavaScript 对象入门:基础用法全解析
  • 如何获得一个Oracle 23ai数据库(docker容器)
  • 想跨境出海?云手机提供了一种可能性
  • 制药行业新突破:CANOpen转PROFINET网关配置案例解析
  • vue前端时间段选择控件
  • 用wordpress建外贸独立站的是主流的外贸建站方式
  • 差异基因散点图绘制教程
  • Windows安装多版本MySQL
  • Redis7降级到Redis6如何AOF备份恢复(错的)
  • 通过EXCEL控制PLC启停电机的一种方法