SCI二区TOP|蜘蛛黄蜂优化算法(SWO)原理及实现【免费获取Matlab代码】

目录

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


1.背景

2023年,M Abdel-Basset受到蜘蛛黄蜂优化社会行为启发,提出了蜘蛛黄蜂优化算法(Spider Wasp Optimizer, SWO)。

在这里插入图片描述

在这里插入图片描述

2.算法原理

2.1算法思想

SWO模拟自然中雌性蜘蛛黄蜂的狩猎、筑巢和交配行为

在这里插入图片描述

2.2算法过程

捕猎和筑巢行为

雌性蜘蛛黄蜂开始他们的旅程,寻找猎物喂养他们的幼虫。它们在搜索空间内随机进行搜索,寻找最合适的猎物,这被称为探索阶段。雌性黄蜂以恒定的步长随机探索搜索空间:
S W ‾ i t + 1 = S W ‾ i t + μ 1 ∗ ( S W ‾ a t − S W ‾ b t ) (1) \overline{SW}_i^{t+1}=\overline{SW}_i^t+\mu_1*\left(\overline{SW}_a^t-\overline{SW}_b^t\right)\tag{1} SWit+1=SWit+μ1(SWatSWbt)(1)
其中,a和b是从种群中随机选取的两个指标来确定探索方向。参数表述为:
μ 1 = ∣ r n ∣ ∗ r 1 (2) \mu_1=|rn|*r_1\tag{2} μ1=rnr1(2)

雌黄蜂有时会找不到从球上掉下来的蜘蛛;因此,他们搜索了蜘蛛掉落的确切地点周围的整个区域:
S W ‾ i t + 1 = S W ‾ c t + μ 2 ∗ ( L ⃗ + r 2 ⃗ ∗ ( H ⃗ − L ⃗ ) ) (3) \overline{SW}_{i}^{t+1}=\overline{SW}_{c}^{t}+\mu_{2}*\left(\vec{L}+\vec{r_{2}}*\left(\vec{H}-\vec{L}\right)\right)\tag{3} SWit+1=SWct+μ2(L +r2 (H L ))(3)
各参数:
μ 2 = B ∗ cos ⁡ ( 2 π l ) B = 1 1 + e l (4) \mu_2=B*\cos(2\pi l)\\ B=\frac{1}{1+e^l}\tag{4} μ2=Bcos(2πl)B=1+el1(4)

跟随和逃离阶段

找到猎物后,蜘蛛黄蜂试图攻击他们在网络的中心:
S W ‾ i t + 1 = S W ‾ i t + C ∗ ∣ 2 ∗ r 5 ‾ ∗ S W ‾ a t − S W ‾ i t ∣ C = ( 2 − 2 ∗ ( t t m a x ) ) ∗ r 6 (5) \overline{SW}_{i}^{t+1}=\overline{SW}_{i}^{t}+C*\left|2*\overline{r_{5}}*\overline{SW}_{a}^{t}-\overline{SW}_{i}^{t}\right|\\C=\left(2-2*\left(\frac{t}{t_{max}}\right)\right)*r_{6}\tag{5} SWit+1=SWit+C 2r5SWatSWit C=(22(tmaxt))r6(5)
当蜘蛛逃离雌黄蜂时,雌黄蜂和蜘蛛之间的距离逐渐增加:
S W ‾ i t + 1 = S W ‾ i t ∗ ν c ‾ (6) \overline{SW}_i^{t+1}=\overline{SW}_i^t*\overline{\nu c}\tag{6} SWit+1=SWitνc(6)
其中,vc是根据正态分布在k和- k之间生成的向量。逐渐增大雌蜂与蜘蛛之间的距离:
k = 1 − ( t t m a x ) (7) k=1-\left(\frac{t}{t_{max}}\right)\tag{7} k=1(tmaxt)(7)

筑巢行为

雌性黄蜂将瘫痪的蜘蛛拉入预先准备好的巢穴:
S W ‾ i t + 1 = S W ‾ ∗ + cos ⁡ ( 2 π l ) ∗ ( S W ‾ ∗ − S W ‾ i t ) (8) \overline{SW}_{i}^{t+1}=\overline{SW}^{*}+\cos(2\pi l)*\left(\overline{SW}^{*}-\overline{SW}_{i}^{t}\right)\tag{8} SWit+1=SW+cos(2πl)(SWSWit)(8)
从种群中随机选择的雌性蜘蛛的位置上建造巢穴,使用额外的步长来避免在同一位置上建造两个巢穴:
S W ‾ i t + 1 = S W ‾ a t + r 3 ∗ ∣ γ ∣ ∗ ( S W ‾ a t − S W ‾ i t ) + ( 1 − r 3 ) ∗ U → ∗ ( S W ‾ b t − S W ‾ c t ) (9) \overline{SW}_{i}^{t+1}=\overline{SW}_{a}^{t}+\mathrm{r}_{3}*|\gamma|*\left(\overline{SW}_{a}^{t}-\overline{SW}_{i}^{t}\right)+\left(1-r_{3}\right)*\overrightarrow{U}*\left(\overline{SW}_{b}^{t}-\overline{SW}_{c}^{t}\right)\tag{9} SWit+1=SWat+r3γ(SWatSWit)+(1r3)U (SWbtSWct)(9)

交配行为

蜘蛛黄蜂的一个主要特征是它们能够确定性别,性别是根据卵所在的寄主的大小来决定的:
S W i t + 1 = C r o s s o v e r ( S W i t , S W m t , C R ) (10) SW_i^{t+1}=Crossover\big(SW_i^t,SW_m^t,CR\big)\tag{10} SWit+1=Crossover(SWit,SWmt,CR)(10)
其中Crossover表示均匀交叉算子,生成与雌性不同的雄性蜘蛛黄蜂:
S W ‾ m t + 1 = S W ‾ i t + e l ∗ ∣ β ∣ ∗ ν ‾ 1 + ( 1 − e l ) ∗ ∣ β 1 ∣ ∗ ν ‾ 2 (11) \overline{SW}_{m}^{t+1}=\overline{SW}_{i}^{t}+e^{l}*|\beta|*\overline{\nu}_{1}+\left(1-e^{l}\right)*|\beta_{1}|*\overline{\nu}_{2}\tag{11} SWmt+1=SWit+elβν1+(1el)β1ν2(11)
各参数表述为:
v ⃗ 1 = { x ⃗ a − x ⃗ i f ( x ⃗ a ) < f ( x ⃗ i ) x ⃗ i − x ⃗ a o t h e r w i s e v ⃗ 2 = { x ⃗ b − x ⃗ c f ( x ⃗ b ) < f ( x ⃗ c ) x ⃗ c − x ⃗ b o t h e r w i s e (12) \vec{v}_{1}=\left\{\begin{array}{c}\vec{x}_a-\vec{x}_if\big(\vec{x}_a\big)<f(\vec{x}_i)\\\vec{x}_i-\vec{x}_a otherwise\end{array}\right.\\\\\vec{v}_{2}=\left\{\begin{array}{c}\vec{x}_b-\vec{x}_cf\big(\vec{x}_b\big)<f(\vec{x}_c)\\\vec{x}_c-\vec{x}_b otherwise\end{array}\right.\tag{12} v 1={x ax if(x a)<f(x i)x ix aotherwisev 2={x bx cf(x b)<f(x c)x cx botherwise(12)

伪代码

在这里插入图片描述

3.结果展示

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

4.参考文献

[1] Abdel-Basset M, Mohamed R, Jameel M, et al. Spider wasp optimizer: a novel meta-heuristic optimization algorithm[J]. Artificial Intelligence Review, 2023, 56(10): 11675-11738.

5.代码获取

【资源清单】代码资源清单导航~

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

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

相关文章

视频监控技术在食品安全监管中的关键应用

视频监控技术在食品安全监管中的关键应用 1、视频监控技术在食品安全监管中的作用 在食品安全监管中&#xff0c;视频监控技术发挥着不可替代的作用。通过安装视频监控系统&#xff0c;可以实现对食品生产、运输、储存等各个环节的实时监控和录像存储。这不仅有助于监管部门及…

Linux的前世今生

Unix的起源和发展 1969年&#xff0c;AT&T贝尔实验室的Ken Thompson和Dennis Ritchie等人开发了Unix操作系统。Unix的设计理念强调小而简洁的工具&#xff0c;文本流和系统模块化&#xff0c;这些理念后来成为Linux开发的重要基础。1973年&#xff0c;Unix用C语言重新编写…

深度学习-数学基础(四)

深度学习数学基础 数学基础线性代数-标量和向量线性代数-向量运算向量加和向量内积向量夹角余弦值 线性代数-矩阵矩阵加法矩阵乘法矩阵点乘矩阵计算的其他内容 人工智能-矩阵的操作矩阵转置&#xff08;transpose&#xff09;矩阵与向量的转化 线性代数-张量&#xff08;tensor…

卷技术还是卷应用?李彦宏给出了明确答案

如何理解李彦宏说的“不要卷模型&#xff0c;要卷应用” 引言 7月4日&#xff0c;2024世界人工智能大会在上海世博中心召开。百度创始人兼CEO李彦宏在产业发展主论坛上呼吁&#xff1a;“大家不要卷模型&#xff0c;要卷应用&#xff01;”这句话引起了广泛讨论。李彦宏认为&a…

Python股票计算小程序(字符串格式化练习)

要求&#xff1a;打印的第一行使用f控制&#xff0c;第二行打印使用占位符&#xff0c;股价输出保留两位小数。 # 股价计算小程序 name"周氏集团" stock_price19.99 stock_code "9283" stock_price_daily_growth_factor1.2 growth_days7print(f"公司…

【Python进阶】继承进阶和私有权限

目录 一、继承进阶 1、方法重写 2、调用父类方法 3、多层继承 二、私有权限 1、私有属性 2、私有方法 面向对象基础&#xff1a;小白也能看懂的Python基础教程&#xff08;8&#xff09;-CSDN博客 一、继承进阶 1、方法重写 当父类的同名方法达不到子类的要求&#x…

Monaco 中添加 CodeLens

CodeLens 会在指定代码行上添加一行可点击的文字&#xff0c;点击时可以触发定义的命令&#xff0c;效果如下&#xff1a; 通过调用 API 注册 LensProvider&#xff0c;点击时触发 Command&#xff0c;首先要注册命令&#xff0c;通过 editor.addCommand () 方法进行注册。三个…

7月9日学习打卡-回文链表,交叉链表

大家好呀&#xff0c;本博客目的在于记录暑假学习打卡&#xff0c;后续会整理成一个专栏&#xff0c;主要打算在暑假学习完数据结构&#xff0c;因此会发一些相关的数据结构实现的博客和一些刷的题&#xff0c;个人学习使用&#xff0c;也希望大家多多支持&#xff0c;有不足之…

【微信小程序开发实战项目】——个人中心页面的制作

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

在 PostgreSQL 里如何处理数据的版本跟踪和回滚?

文章目录 一、事务二、保存点三、使用版本控制扩展四、审计表和触发器五、使用时间戳列六、比较和还原数据七、考虑数据备份和恢复八、结论 在数据库管理中&#xff0c;数据的版本跟踪和回滚是非常重要的功能&#xff0c;有助于在数据操作出现错误或需要回滚到特定状态时进行有…

HINet: Half Instance Normalization Network for Image Restoration

论文&#xff1a;HINet: Half Instance Normalization Network for Image Restoration Abstract&#xff1a; 在本文中&#xff0c;我们探讨了实例归一化在低级视觉任务中的作用。 具体来说&#xff0c;我们提出了一个新颖的块&#xff1a;半实例归一化块&#xff08;HIN 块&…

洛谷 数学进制 7.9

P1100 高低位交换 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码一 #include<bits/stdc.h> using namespace std; typedef long long ll; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)const ll N1e510; char a[N];int main() {IOS;ll a;int b[32]…

商品分页,商品模糊查询

一、商品分页 引入分页 定义分页主件的参数 在请求url上拼接参数 定义改变当前页码后触发的事件&#xff0c;把当前页码的值给到分页表单&#xff0c;重新查询 二、商品查询&#xff08;以商品的名称查询name为例&#xff09; 引入elementplus的from表单组件 定义一个FormData…

实现在列表框内及列表框间实现数据拖动:在工作表界面窗体的加载

《VBA高级应用30例》&#xff08;版权10178985&#xff09;&#xff0c;是我推出的第十套教程&#xff0c;教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开&#xff0c;这套教程案例与理论结合&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以…

three-platformize 微信小程序 uniapp 使用截图功能

最近需要将3d场景进行截图&#xff0c;但是网上的各种各样&#xff0c;看的我一团乱麻&#xff0c;因此在解决完后就将这些简单的分享一下&#xff1b; 原理&#xff1a;将3维场景的那个canvas中的像素提取出来&#xff0c;找一个空的canvas二维画布放上去&#xff0c;然后用二…

jitsi 使用JWT验证用户身份

前言 Jitsi Meet是一个很棒的会议系统,但是默认他运行所有人创建会议,这样在某种程度上,我们会觉得他不安全,下面我们就来介绍下使用JWT来验证用户身份 方案 卸载旧的lua依赖性sudo apt-get purge lua5.1 liblua5.1-0 liblua5.1-dev luarocks添加ubuntu的依赖源,有则不需…

运维锅总详解设计模式

本首先简介23种设计模式&#xff0c;然后用Go语言实现这23种设计模式进行举例分析。希望对您理解这些设计模式有所帮助&#xff01; 一、设计模式简介 设计模式是软件设计中用于解决常见设计问题的一套最佳实践。它们不是代码片段&#xff0c;而是解决特定问题的通用方案。设…

Apache AGE 安装部署

AGE概述 概述 我们可以通过源码安装、拉取docker镜像运行、直接使用公有云三种方式中的任意一种来使用Apache AGE 获取 AGE 发布版本 可以在 https://github.com/apache/age/releases 找到发布版本和发布说明。 源代码 源代码可以在 https://github.com/apache/age 找到…

PowerShell install 一键部署mysql 9.0.0

mysql 前言 MySQL 是一个基于 SQL(Structured Query Language)的数据库系统,SQL 是一种用于访问和管理数据库的标准语言。MySQL 以其高性能、稳定性和易用性而闻名,它被广泛应用于各种场景,包括: Web 应用程序:许多动态网站和内容管理系统(如 WordPress)使用 MySQL 存…

【割点 C++BFS】2556. 二进制矩阵中翻转最多一次使路径不连通

本文涉及知识点 割点 图论知识汇总 CBFS算法 LeetCode2556. 二进制矩阵中翻转最多一次使路径不连通 给你一个下标从 0 开始的 m x n 二进制 矩阵 grid 。你可以从一个格子 (row, col) 移动到格子 (row 1, col) 或者 (row, col 1) &#xff0c;前提是前往的格子值为 1 。如…