SCI一区TOP|徒步优化算法(HOA)原理及实现【免费获取Matlab代码】

目录

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


1.背景

2024年,SO Oladejo受到徒步旅行启发,提出了徒步优化算法(Hiking Optimization Algorithm, HOA)。

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

2.算法原理

2.1算法思想

HOA灵感来自于徒步旅行,它认识到优化问题的搜索景观与徒步旅行者所穿越的山区地形之间的相似性。HOA的数学模型以Tobler徒步函数(Tobler’s walking Function, THF)为前提,该函数通过考虑地形的高程和行走距离来确定徒步者的步行速度。

在这里插入图片描述

参数解释

在这里插入图片描述

2.2算法过程

Tobler徒步函数(Tobler’s walking Function, THF)表述为:
W i , t = 6 e − 3.5 ∣ S i , t + 0.05 ∣ (1) \mathcal{W}_{i,t}=6e^{-3.5\left|S_{i,t} + 0.05\right|}\tag{1} Wi,t=6e3.5Si,t+0.05(1)
斜率表述为:
S i , t = d h d x = tan ⁡ θ i , t (2) S_{i,t}=\frac{\mathrm{d}h}{\mathrm{d}x}=\tan\theta_{i,t}\tag{2} Si,t=dxdh=tanθi,t(2)
HOA利用了徒步旅行者作为一个群体的社会思维和个人徒步旅行者的个人认知能力。徒步者的更新速度或实际速度是由THF、领队徒步者的位置、徒步者的实际位置和扫描因子决定的初始速度的函数,曲线的当前速度:
W i , t = W i , t − 1 + γ i , t ( β b e s t − α i , t β i , t ) (3) \mathcal W_{i,t}=\mathcal W_{i,t-1}+\gamma_{i,t}(\beta_{best}-\alpha_{i,t}\beta_{i,t})\tag{3} Wi,t=Wi,t1+γi,t(βbestαi,tβi,t)(3)
位置更新:
β i , t + 1 = β i , t + W i , t (4) \beta_{i,t+1}=\beta_{i,t}+W_{i,t}\tag{4} βi,t+1=βi,t+Wi,t(4)

伪代码

在这里插入图片描述

3.结果展示

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

4.参考文献

[1] Oladejo S O, Ekwe S O, Mirjalili S. The Hiking Optimization Algorithm: A novel human-based metaheuristic approach[J]. Knowledge-Based Systems, 2024, 296: 111880.

5.代码获取

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

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

相关文章

vue3 websocket连接上了,会自动断开的处理的二种方式

上了服务器以后,发现websocket会自动断开,那么我们可以有二种方法: 1)一般我们会发送心跳包 function sendMessagePing() {if (websocket && websocket.readyState WebSocket.OPEN) {websocket.send(ping);} else {con…

小试牛刀-Solana合约账户详解

目录 一.Solana 三.账户详解 3.1 程序账户 3.2 系统所有账户 3.3 程序派生账户(PDA) 3.4 Token账户 四、相关学习文档 五、在线编辑器 Welcome to Code Blocks blog 本篇文章主要介绍了 [Solana合约账户详解] ❤博主广交技术好友,喜欢文章的可以关注一下❤ …

【人工智能】--生成对抗网络

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉GAN 的基本原理 🍈生成器(Generator) 🍈判别器&…

sql语句练习注意点

1、时间可以进行排序,也可以用聚合函数对时间求最大值max(时间) 例如下面的例子:取最晚入职的人,那就是将入职时间倒序排序,然后limit 1 表: 场景:查找最晚入职员工的所有信息 se…

docker compose方式部署Zabbix 7.0 LTS

docker compose方式部署 Zabbix 7.0 LTS Zabbix 由几个主要的功能组件组成 zabbix-server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。zabbix-agent 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送…

Miniconda安装教程

文章目录 Conda和Miniconda的区别一、安装 Miniconda 1、创建目录2、下载 Miniconda(Python3 版本)3、安装 Miniconda4、取消默认进入conda(base)环境5、配置 conda 国内镜像 二、创建 Python3.8 环境 1、创建指令2、激活 py38 环…

Pinia:Vue 2 和 Vue 3 中更好用的状态管理框架

前言 还在用Vuex? 在Vue应用程序的开发过程中,高效且易于维护的状态管理一直是开发者关注的核心问题之一。随着Vue 3的发布,状态管理领域迎来了一位新星——Pinia,它不仅为Vue 3量身打造,同时也向下兼容Vue 2,以其简…

ios调用高德地图定位报错

错误信息如下: Thread Performance Checker: Thread running at User-interactive quality-of-service class waiting on a lower QoS thread running at Default quality-of-service class. Investigate ways to avoid priority inversions PID: 1668, TID: 1538…

PostgreSQL 在Windows下保姆级图文安装教程

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

The Plant Cell:DAP-seq技术助力揭示MdWRKY75调控苹果耐热性的分子机制

2024年6月12日,西北农林科技大学作物抗逆与高效生产全国重点实验室/园艺学院苹果抗逆与品质改良创新团队马锋旺教授/李超课题组在植物学知名期刊The Plant Cell(影响因子10)在线发表了题为“The MdHSC70-MdWRKY75 module mediates basal appl…

定个小目标之刷LeetCode热题(35)

155. 最小栈 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的…

heapq.nlargest函数

函数解释 heapq.nlargest(n, iterable, keyNone) 该函数用于从可迭代对象iterable中返回前n个最大的元素。它的参数包括: n:要返回的最大元素的数量iterable:要从中查找最大元素的可迭代对象key:一个函数,用于从每个…

微信小程序 调色板

注意:是在uniapp中直接使用的一个color-picker插件,改一下格式即可在微信小程序的原生代码中使用 https://github.com/KirisakiAria/we-color-picker 这是插件的地址,使用的话先把这个插件下载下来,找到src,在项目创…

Python API构建TensorRT加速模型的步骤详解

先来一段摘抄自网上的TensorRT介绍: TensorRT是英伟达针对自家平台做的加速包,TensorRT主要做了这么两件事情,来提升模型的运行速度。 TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。Tensor…

九、函数的声明和定义

函数声明: 1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数 声明决定不了。 2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。 3. 函数的声明一般要放在头文件中的。 定义的函…

开发个人Ollama-WebUI--4 用户管理

开发个人Ollama-WebUI–4 用户管理 先看下我的目录结构,可以根据个人爱好,进行重构 |-- Dockerfile |-- LICENSE |-- common | |-- callmodel | | |-- gemma.go | | -- models.go | |-- consts | | |-- code.go | | |-- common.go…

股价持续低迷,业绩颓势不减,冀光恒难救平安银行?

文|新熔财经 作者|宏一 周一一上班,就听到旁边的同事感慨今年股市行情很不错,尤其是银行股,上半年累计上涨了17.02%,是涨幅最大的板块。 听到这里,我美滋滋地打开自己的账户,结…

如何使用PostgreSQL

要使用PostgreSQL,你可以按照以下步骤进行操作: 1. 安装PostgreSQL:根据你的操作系统,下载并安装相应版本的PostgreSQL。 2. 启动PostgreSQL服务器:安装完成后,你需要启动PostgreSQL服务器。在Windows上&…

spdlog一个非常好用的C++日志库(四): 源码分析之logger类

目录 1.简介 2.类图关系 3.logger数据成员 4.logger函数成员 4.1.构造与析构 4.1.1.构造函数 4.1.2.拷贝构造、移动构造 4.2.交换操作 4.3.log()记录日志消息 4.3.1.格式串 4.3.2.普通字符串 4.3.3.日志级别 4.3.4.宽字符支持 4.4.sink_it_:将log消息…

PLC工作原理

PLC(可编程逻辑控制器)的工作原理简述为:集中采样、集中输出、周期性循环扫描。 西门子PLC 一、集中采样 顺序读取所有输入端子的通断状态,并将所读取的信息存到输入映像寄存器中,此时输入映像寄存器被刷新&#xff…