【智能算法】跳蛛优化算法(AOA)原理及实现

在这里插入图片描述

目录

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


1.背景

2021年,H Peraza-Vázquez等人受到跳蛛狩猎行为启发,提出了跳蛛优化算法(Jumping Spider Optimization Algorithm,JSOA)。

2.算法原理

2.1算法思想

JSOA模拟了跳蛛的捕猎行为,主要包括跳蛛捕猎时的迫害、跳向猎物、搜索行为,并通过信息素来优化位置不佳的跳蛛。
在这里插入图片描述

2.2算法过程

迫害

当跳蛛跳跃距离不够捕捉猎物时,它会通过一些隐蔽的移动靠近猎物:
x ⃗ i ( g + 1 ) = 1 2 ( x ⃗ i ( g ) − x ⃗ r ( g ) ) (1) \vec{x}_{i}(g+1)=\frac{1}{2}(\vec{x}_{i}(g)-\vec{x}_{r}(g))\tag{1} x i(g+1)=21(x i(g)x r(g))(1)
其中,xr为不等于xi的随机跳蛛。

跳向猎物

跳蛛扑向猎物的行为可以表示为初速度为V0,与水平夹角为φ 的 抛 物 线 运 动。该抛物线运动水平方向速度与竖直方向速度为:
x ⃗ i = V 0 cos ⁡ ( α ) t i ⃗ y ⃗ i = ( V 0 sin ⁡ ( α ) t − 1 2 g t 2 ) j ⃗ (2) \begin{aligned}&\vec{x}_{i}=V_{0}\cos(\alpha)t\vec{i}\\&\vec{y}_{i}=\left(V_{0}\sin(\alpha)t-\frac{1}{2}gt^{2}\right)\vec{j}\end{aligned}\tag{2} x i=V0cos(α)ti y i=(V0sin(α)t21gt2)j (2)
当时间间隔为1时,可以得到:
y = x tan ⁡ ( α ) − g x 2 2 V 0 2 cos ⁡ 2 ( α ) (3) y=x\tan(\alpha)-\frac{gx^2}{2V_0^2\cos^2(\alpha)}\tag{3} y=xtan(α)2V02cos2(α)gx2(3)
跳向猎物过程可以表述为:
x ⃗ i ( g + 1 ) = x ⃗ i ( g ) tan ⁡ ( α ) − g x ⃗ i 2 ( g ) 2 V 0 2 cos ⁡ 2 ( α ) α = ϕ π 180 (4) \begin{aligned}&\vec{x}_{i}(g+1)=\vec{x}_{i}(g)\tan(\alpha)-\frac{g\vec{x}_{i}^{2}(g)}{2V_{0}^{2}\cos^{2}(\alpha)}\\&\alpha=\frac{\phi\pi}{180}\end{aligned}\tag{4} x i(g+1)=x i(g)tan(α)2V02cos2(α)gx i2(g)α=180ϕπ(4)

搜索猎物:

跳蛛在周围环境进行随机搜索以找到猎物,算法提供了局部搜索和全局搜索。局部搜索表述为:
x ⃗ i ( g + 1 ) = x ⃗ b e s t ( g ) + W A L K ( 1 2 − ε ) (5) \vec{x}_i(g+1)=\vec{x}_{\mathrm{best}}(g)+WALK\left(\frac{1}{2}-\varepsilon\right)\tag{5} x i(g+1)=x best(g)+WALK(21ε)(5)
全局搜索表述为:
x ⃗ i ( g + 1 ) = x ⃗ b e s t ( g ) + ( x ⃗ b e s t ( g ) − x ⃗ w o r s t ( g ) ) λ (6) \vec{x}_i(g+1)=\vec{x}_{\mathrm{best}}(g)+(\vec{x}_{\mathrm{best}}(g)-\vec{x}_{\mathrm{worst}}(g))\lambda \tag{6} x i(g+1)=x best(g)+(x best(g)x worst(g))λ(6)
在这里插入图片描述

信息素:

第i只跳蛛信息素为:
p h e r o m o n e ( i ) = F i t n e s s max ⁡ − F i t n e s s ( i ) F i t n e s s max ⁡ − F i t n e s s min ⁡ (7) pheromone\left(i\right)=\frac{Fitness_{\max}-Fitness\left(i\right)}{Fitness_{\max}-Fitness_{\min}}\tag{7} pheromone(i)=FitnessmaxFitnessminFitnessmaxFitness(i)(7)
当信息素小于或等于0.3时:
x ⃗ i ( g ) = x ⃗ best ( g ) + 1 2 ( x ⃗ r 1 ( g ) − ( − 1 ) σ x ⃗ r 2 ( g ) ) \vec{x}_i(g)=\vec{x}_{\text{best}}(g)+\frac{1}{2}(\vec{x}_{r1}(g)-(-1)^{\sigma}\vec{x}_{r2}(g)) x i(g)=x best(g)+21(x r1(g)(1)σx r2(g))

伪代码:
在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Peraza-Vázquez H, Peña-Delgado A, Ranjan P, et al. A bio-inspired method for mathematical optimization inspired by arachnida salticidade[J]. Mathematics, 2021, 10(1): 102.

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

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

相关文章

【Kaggle】练习赛《鲍鱼年龄预测》(上)

前言 上一篇文章,讲解了《肥胖风险的多类别预测》机器学习方面的文章,主要是多分类算法的运用,本文是一个回归的算法,本期是2024年4月份的题目《Regression with an Abalone Dataset》即《鲍鱼年龄预测》,在此分享高手…

C++数据结构与算法——回溯算法组合问题

C第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更…

特征增强自蒸馏卷积神经网络

目录 1.1 模型总体架构 1.2 特征增强金字塔模块 1.3 辅助分类器 1.1 模型总体架构 与自然图像相比,遥感场景图像地物较为复杂,具有类间相似度高和类内差异大的特点,这导致常用的网络模型难以有效学习遥感场景图像的表征特征。此外&#xf…

springboot之mybatisPlus多表查询及分页查询

文章目录 一、多表查询二、mybatis-plus条件查询三、分页查询 一、多表查询 可能会用到的注解 这里的场景是,查询每个用户及其所有的订单。就是查询你的id号的同时,把你所有的历史订单信息都拉出来。 表结构这样 CREATE TABLE User ( id INT PRIMARY…

【可靠性】陷阱电荷对TDDB影响的多尺度模拟

【From Accelerated to Operating Conditions: How Trapped Charge Impacts on TDDB in SiO2 and HfO2 Stacks】 文章总结: 本研究深入探讨了在SiO2和HfO2介质堆叠中,陷阱电荷对时间依赖介电击穿(TDDB)现象的影响。通过引入载流子…

位运算-191. 位1的个数- 136. 只出现一次的数字

位1的个数 已解答 简单 相关标签 相关企业 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。 示例 1: 输入:n 11 输…

Git 术语及中英文对照

完毕!!感谢您的收看 ----------★★历史博文集合★★---------- 我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字…

C++从入门到精通——类的定义及类的访问限定符和封装

类的定义及类的访问限定符和封装 前言一、类的定义类的两种定义方式成员变量命名规则的建议示例 二、类的访问限定符和封装访问限定符访问限定符说明C为什么要出现访问限定符例题 封装例题 前言 类的定义是面向对象编程中的基本概念,它描述了一类具有相同属性和方法…

MyBatis-Plus的学习笔记

MyBatis-Plus 一、MyBatis-Plus快速入门 1.1 简介 课程版本:3.5.3.1 https://baomidou.com/ MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变&…

基于Vision Transformer的迁移学习在乳腺X光图像分类中的应用

乳房X线摄影(MG)在乳腺癌的早期发现中起着重要作用。MG可以在早期阶段发现乳腺癌,即使是感觉不到肿块的小肿瘤。基于卷积神经网络(CNN)的DL最近吸引了MG的大量关注,因为它有助于克服CAD系统的限制(假阳性、不必要的辐射暴露、无意义的活组织检查、高回调…

51单片机入门_江协科技_21.1_开发板USB口连接建议

1. 目前我自己用的普中A2版本的开发板,操作失误导致在开发板连接电脑并通电的情况下误将跳线帽触碰到开发板的3.3V与GND,导致USB口浪涌,2个电脑上面的USB口烧毁,开发板暂时没有任何问题,电脑USB口现在只是接通后有电&a…

8_springboot_shiro_jwt_多端认证鉴权_多Reaml管理

1. 目标 前面一直讨论的是只有一个Reaml的场景,Shiro是可以管理多个Realm的。那么什么场景下,我们需要定义多个Realm,以及Shiro框架是如何管理多个Realm的,他们是如何工作的。本章将会解释上面的问题,最后会配置前面章…

基于python爬虫与数据分析系统设计

**单片机设计介绍,基于python爬虫与数据分析系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于Python爬虫与数据分析系统的设计是一个结合了网络数据抓取、清洗、存储和数据分析的综合项目。这样的系统通常…

jenkins+docker实现可持续自动化部署springboot项目

目录 一、前言 二、微服务带来的挑战 2.1 微服务有哪些问题 2.2 微服务给运维带来的挑战 三、可持续集成与交付概述 3.1 可持续集成与交付概念 3.1.1 持续集成 3.1.2 持续交付 3.1.3 可持续集成与交付核心理念 3.2 可持续集成优点 3.3 微服务为什么需要可持续集成 四…

Java栈和队列的实现

目录 一.栈(Stack) 1.1栈的概念 1.2栈的实现及模拟 二.队列(Queue) 2.1队列的概念 2.2队列的实现及模拟 2.3循环队列 2.4双端队列(Deque) 一.栈(Stack) 1.1栈的概念 栈:一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操作…

回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测

回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测 目录 回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于CPO-GPR基于冠豪猪算法优化高斯…

顺序表相关习题

🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…

平衡二叉树,红黑树,B树和B+树的区别及其应用场景

平衡二叉树 基础数据结构左右平衡高度差大于1会自旋每个节点记录一个数据 平衡二叉树(AVL) AVL树全称G.M. Adelson-Velsky和E.M. Landis,这是两个人的人名。 平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree…

58 vue-cli 以及 webpack 提供的默认的插件, 配置

前言 vue-cli 这边作为驱动 webpack 的一个应用 它需要构造 webpack 所需要的上下文, 以及参数 这里 我们来关注一下 vue-cli 这边为 webpack 构造的参数 的相关处理 webpack 这边上下文的配置, 主要分为了几个部分, Entry, Output, Module, Resolve, Plugin, DevServer, O…

入门MyBatis

文章目录 入门MyBatisMyBatis快速入门创建user表添加数据创建模块导入坐标编写Mybatis核心配置文件编写SQL映射文件编码 使用idea编写sql代码链接数据库调出console控制台 Mapper代理开发定义与SQL映射文件同名的Mapper接口编码 MyBatis核心配置文件安装mybatisx插件配置文件完…