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

波搜索算法(WSA)-2024年SCI新算法-公式原理详解与性能测评 Matlab代码免费获取

​       声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 

目录

原理简介

一、初始化阶段

二、全局开发阶段

三、局部勘探阶段

(1)发射电磁波

(2)反射电磁波

(3)接收电磁波

算法伪代码

性能测评

参考文献

完整代码


        波搜索算法(Wave Search Algorithm, WSA)是一种新型的元启发式算法(智能优化算法),灵感来源于雷达技术的启发,采用了新的初始化方法和边界约束规则以及各种改进的贪心机制,总体上看性能不错~作者23个标准测试函数和CEC2017上对WSA进行了测试,证明了WSA算法的优越性。该成果由Haobin Zhang等人于2024年4月发表在SCI期刊The Journal of Supercomputing上!

        由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!

原理简介

        灵感:雷达技术是一种利用电磁波探测目标位置、速度和形状的无线通信技术。它通过发射无线电波,接收反射回波,并对回波进行处理和分析,实现对目标的检测、定位、跟踪和识别。

一、初始化阶段

        首先,我们需要执行一系列初始化准备。我们设粒子数为n,待优化问题维数为d,用矩阵模拟电磁波粒子W的位置:

        并用f ([Wn1, Wn2,⋯Wnd])表示第n个个体的适应度值,种群的适应度值可以用以下向量表示:

        最后,准备n个随机数k1, k2......Kn从0到1,初始化粒子位置。

        其中xi是均匀化的ki, xi*是x中的随机值,lb和ub为搜索空间的上下边界。

二、全局开发阶段

        式中,Wmin是由W各维上的最小值组成的向量,Wmax是由W各维上的最大值组成的向量,fmean是所有粒子适应度值的平均值,r1是0到1之间的随机数,t是当前迭代次数,t是总迭代次数。

        式(5)的好处是可以逐步缩小搜索范围,新生成的点在缩小的范围内生成,提高了搜索效率。式(6)是一种改进的贪心机制,控制种群在全局最优位置附近的位置。

三、局部勘探阶段

(1)发射电磁波

        式中σ=−(5t∕T−2)/√(25(5t∕T−2)2) + 0.7,σ为波形大小控制系数,m为元素服从正态分布并按顺序排列的列向量,Wbest为当前最优位置,Wl为W按与Wbest的接近程度重新排列后的位置矩阵,fmax为群中最大的适合度值。式(7)的作用是模拟电磁波向外扩散,减少陷入局部最优的可能性,提高搜索效率。式(8)是一种改进的贪心机制,其作用是当群体位置向外波动时,使群体位置不劣于当前群体位置。

(2)反射电磁波

        式中β= 0.75 + e−i∕nw2,β为反射强度系数,r2为0 ~ 1的随机值,nw2为模拟反射电磁波的粒子数。Wfi是W按照适应度值从小到大的顺序重新排列后的位置矩阵。式(9)模拟了部分粒子(适应度值较低的粒子)遇到障碍物向Wbest反射,而剩余粒子(适应度值较高的粒子)远离Wbest继续向外扩散。

(3)接收电磁波

        式中δ为接收系数,δ= 0.6 +(1.2−0.5)sin (tπ/2T),η为服从正态分布的随机数,nw3为模拟接收电磁波的粒子数。Wbest*是由通过卷积得到的历史最优位置,Wbest*= [Wbest1;Wbest2;Wbest3⋯Wbestt]∗([I1;I2;I3⋯It]),I1=I2= I3⋯It=1∕t。λ为校正因子,λ= (2t∕T−0.7)∕(0.78+|2t∕T−0.7|)+1。r3、r4、r5、r6是0到1的随机数。式(11)模拟了雷达通常正常接收电磁波,但有时会受到干扰,需要进行校正和处理。其作用是使粒子群体向当前最优方向搜索。同时,有一定的概率会向W方向偏转,以减少陷入局部最优的可能性。

        最后,引入了一种确定性优化技术:基于中心差分法的拟合梯度下降法。其数学表达式为:

        式中,W+εi = Wi +ε,W−εi = Wi−ε,ε= 10−6,g为梯度,α为步长系数,将α的初始值设为α0=0.3,通过步长试验确定最终的步长。步长试验方法如下:如果初始步长迭代后的适应度值小于等于当前适应度值,则α=α0∕c,否则α=α0*c,其中c为缩放因子。式(14)采用中心差分法拟合待优化问题的解析信息,用于搜索最优解,以提高搜索效率和精度。值得注意的是,该策略是一种确定性优化技术。WSA算法通过引入该策略,结合了确定性和不确定性优化技术。

        另外,广义的边界限制规则是将越过边界的粒子放在边界上。我们发现这种方法降低了粒子群的多样性。因此,我们建议将超出边界的粒子随机设置在搜索范围内。数学表达式为:

        其中,lb和ub分别为搜索范围的下边界和上边界,r是一个d维随机化列向量,其元素值范围为0到1。

算法伪代码

        为了使大家更好地理解,这边给出算法伪代码,非常清晰!

        如果实在看不懂,不用担心,可以看下源代码,再结合上文公式理解就一目了然了!

性能测评

        原文作者在经典的23个基准测试函数和30个CEC2017测试函数)对WSA算法进行测试,并将WSA算法应用于六个常见工程问题和移动机器人路径规划问题,将其与最先进和高引用算法进行比较。实验结果表明,WSA算法的优化能力优于其他最先进的优化算法,能够有效地解决实际工程问题。

        这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与性能较为广受认可的麻雀优化算法SSA进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!

        可以看到,WSA在许多高难度的函数上都超过了经典的SSA算法,表明该算法性能是非常优越的,很有说服力,大家应用到各类预测、优化问题中是一个不错的选择~

参考文献

        [1]Zhang H, San H, Sun H, et al. A novel optimization method: wave search algorithm[J]. The Journal of Supercomputing, 2024: 1-36.

完整代码

        如果需要免费获得图中的完整测试代码,只需点击下方小卡片,后台回复关键字:

WSA

        也可点击下方小卡片,后台回复个人需求(比如WSA-SVM)定制以下青蒿素算法优化模型(看到秒回):

        1.回归/时序/分类预测类:SVM、RVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~

        2.组合预测类:CNN/TCN/BiTCN/DBN/Adaboost结合SVM、RVM、ELM、LSTM、BiLSTM、GRU、BiGRU、Attention机制类等均可(可任意搭配非常新颖)~

        3.分解类:EMD、EEMD、VMD、REMD、FEEMD、TVFEMD、CEEMDAN、ICEEMDAN、SVMD等分解模型均可~

        4.其他:机器人路径规划、无人机三维路径规划、DBSCAN聚类、VRPTW路径优化、微电网优化、无线传感器覆盖优化、故障诊断等等均可~

        5.原创改进优化算法(适合需要创新的同学):2024年的波搜索算法WSA以及麻雀SSA、蜣螂DBO等任意优化算法均可,保证测试函数效果!

        更多免费代码链接:更多免费代码链接

相关文章:

波搜索算法(WSA)-2024年SCI新算法-公式原理详解与性能测评 Matlab代码免费获取

​ 声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 原理简介 一、初始化阶段 二、全…...

洛谷P1364 医院设置

P1364 医院设置 题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定&#xff0c…...

哈希表的理解和实现

目录 1. 哈希的概念 (是什么) 2. 实现哈希的两种方式 (哈希函数) 2.1. 直接定址法 2.2. 除留余数法 2.2.1. 哈希冲突 3. 补充知识 3.1. 负载因子 3.2. 线性探测和二次探测 4. 闭散列实现哈希表 (开放定址法) 4.1. 开放定址法的实现框架 4.2. Xq::hash_table::insert…...

分治算法(Divide-and-Conquer Algorithm)

分治算法(Divide-and-Conquer Algorithm)是一种重要的计算机科学和数学领域的通用问题解决策略。其基本思想是将一个复杂的大规模问题分割成若干个规模较小、结构与原问题相似但相对简单的子问题来处理。这些子问题相互独立,分别求解后再通过…...

Java项目:基于ssm框架实现的实验室耗材管理系统(B/S架构+源码+数据库+毕业论文+答辩PPT)

一、项目简介 本项目是一套基于ssm框架实现的实验室耗材管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 二、技术实现 jdk版本:1.8 …...

如何通过专业的二手机店erp优化手机商家运营!

在数字化浪潮席卷全球的大背景下,手机行业作为科技发展的前沿阵地,正经历着前所未有的变革。对于众多手机商家而言,如何在这场变革中抢占先机,实现数字化转型,成为了摆在他们面前的一大难题。幸运的是,途渡…...

CentOS常见的命令及其高质量应用

CentOS是一个流行的、基于Red Hat Enterprise Linux(RHEL)的开源服务器操作系统。由于其稳定性和强大的性能,CentOS被广泛应用于各种服务器环境中。为了有效地管理和维护CentOS系统,熟悉并掌握其常见命令是非常重要的。本文将介绍…...

nodeJs用ffmpeg直播推流到rtmp服务器上

总结 最近在写直播项目 目前比较重要的点就是推拉流 自己也去了解了一下 ffmpeg FFmpeg 是一个开源项目,它提供了一个跨平台的命令行工具,以及一系列用于处理音频和视频数据的库。FFmpeg 能够执行多种任务,包括解封装、转封装、视频和音频…...

Django信号与扩展:深入理解与实践

title: Django信号与扩展:深入理解与实践 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 后端开发 tags: Django信号松耦合观察者扩展安全性能 第一部分:Django信号基础 Django信号概述 一. Django信号的定义与作用 Django信…...

使用Docker创建verdaccio私服

verdaccio官网 1.Docker安装 这边以Ubuntu安装为例Ubuntu 安装Docker​,具体安装方式请根据自己电脑自行搜索。 2.下载verdaccio docker pull verdaccio/verdaccio3.运行verdaccio 运行容器: docker run -it -d --name verdaccio -p 4873:4873 ver…...

Spring 使用 Groovy 实现动态server

本人在项目中遇到这么个需求,有一个模块的server方法需要频繁修改 经阅读可以使用 Groovy 使用java脚本来时pom坐标 <dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy</artifactId><version>3.0.9</version>…...

oracle不得不知道的sql

一、oracle 查询语句 1.translate select translate(abc你好cdefgdc,abcdefg,1234567)from dual; select translate(abc你好cdefgdc,abcdefg,)from dual;--如果替换字符整个为空字符 &#xff0c;则直接返回null select translate(abc你好cdefgdc,abcdefg,122)from dual; sel…...

算法-卡尔曼滤波之卡尔曼滤波的第二个方程:预测方程(状态外推方程)

在上一节中&#xff0c;使用了静态模型&#xff0c;我们推导出了卡尔曼滤波的状态更新方程&#xff0c;但是在实际情况下&#xff0c;系统都是动态&#xff0c;预测阶段&#xff0c;前后时刻的状态是改变的&#xff0c;此时我们引入预测方程&#xff0c;也叫状态外推方程&#…...

刘邦的创业团队是沛县人,朱元璋的则是凤阳;要创业,一个县人才就够了

当人们回顾刘邦和朱元璋的创业经历时&#xff0c;总是会感慨他们起于微末&#xff0c;都创下了偌大王朝&#xff0c;成就无上荣誉。 尤其是我们查阅史书时&#xff0c;发现这二人的崛起班底都是各自的家乡人&#xff0c;例如刘邦的班底就是沛县人&#xff0c;朱元璋的班底是凤…...

【Unity之FairyGUI】你了解FGUI吗,跨平台多功能高效UI插件

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;就业…...

基于51单片机的自动浇花器电路

一、系统概述 自动浇水灌溉系统设计方案&#xff0c;以AT89C51单片机为控制核心&#xff0c;采用模块化的设计方法。 组成部分为&#xff1a;5V供电模块、土壤湿度传感器模块、ADC0832模数转换模块、水泵控制模块、按键输入模块、LCD显示模块和声光报警模块&#xff0c;结构如…...

2024中国(重庆)商旅文化川渝美食暨消费品博览会8月举办

2024中国(重庆)商旅文化川渝美食暨消费品博览会8月举办 邀请函 主办单位&#xff1a; 中国航空学会 重庆市南岸区人民政府 招商执行单位&#xff1a; 重庆港华展览有限公司 展会背景&#xff1a; 2024中国航空科普大会暨第八届全国青少年无人机大赛在重庆举办&#xff…...

MacOS docker 安装与配置

orbstack 安装 官网&#xff1a; https://orbstack.dev 下载链接&#xff1a;Download OrbStack Fast, light, simple Docker Desktop alternative 选择是Apple M系列处理器&#xff0c; 或 Intel系列处理器 到这里就安装好了Orbstack软件&#xff0c;下面开始配置docker 下…...

【嵌入式大赛应用赛道】机械手臂

电机 进步电机&#xff1a;它的转动是以确定的步数进行的&#xff0c;只要计算好脉冲数量和频率&#xff0c;就可以准确预测和控制电机的转动角度、速度以及停止的位置 伺服电机&#xff1a;将输入的电信号&#xff08;如电压或电流指令&#xff09;转换成轴上的精确旋转运动…...

MES系统主要包括那些功能?

一开始接触MES系统&#xff0c;对MES细条的功能不清楚&#xff0c;这样很正常&#xff0c;因为MES系统相对于其他系统来讲&#xff0c;功能有多又复杂! 作为曾参与200企业MES系统架构的资深从业人员&#xff0c;我给大家选出了一款优秀模板——简道云MES系统&#xff0c;给大家…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...