【智能算法】波搜索算法(WSA)原理及实现

目录

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


1.背景

2024年,H Zhang受到雷达技术启发,提出了波搜索算法(Wave Search Algorithm, WSA)。

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

2.算法原理

2.1算法思想

WSA模拟雷达工作时的发射、反射和接收波的过程,并且利用了被优化问题的梯度信息,采用了多种改进的贪心机制,具有准确、高效、灵活、适应性强的特点。

2.2算法过程

初始化

首秀按准备n个随机数k1, k2…Kn(0<Ki<1),初始化粒子位置:
x i = ∑ 1 i k i / ∑ 1 n k i (1) x_i=\sum_1^ik_i/\sum_1^nk_i\tag{1} xi=1iki/1nki(1)
其中xi为均匀化ki, x * 为x中的随机值:
W = l b + x ∗ ( u b − l b ) (2) W=lb+x^*\left(ub-lb\right)\tag{2} W=lb+x(ublb)(2)

全局探索

W i n e w = W m i n + r 1 ⋅ ( W m a x − W m i n ) { W i = W i n e w i f f ( W i n e w ) ≤ f m e a n W i = W i i f f ( W i n e w ) > f m e a n (3) W_{i}^{new}=W_{\mathrm{min}}+r_{1}\cdot(W_{\mathrm{max}}-W_{\mathrm{min}})\\\\\left\{\begin{array}{ll}W_i=W_i^{new}&if&f\left(W_i^{new}\right)\leq f_{mean}\\W_i=W_i&if&f\left(W_i^{new}\right)>f_{mean}\end{array}\right.\tag{3} Winew=Wmin+r1(WmaxWmin){Wi=WinewWi=Wiififf(Winew)fmeanf(Winew)>fmean(3)
其中,Wmin是由W各维上的最小值组成的向量,Wmax是由W各维上的最大值组成的向量,fmean是所有粒子适应度值的平均值。此策略可以逐步缩小搜索范围,新生成的点在缩小的范围内生成,提高了搜索效率,采用贪婪机制控制种群在全局最优位置附近的位置。

局部开发

发送电磁波

模拟电磁波向外扩散,减少陷入局部最优的可能性,提高搜索效率。

W i n e w = W b e s t + ( W l i − W b e s t ) ⋅ ( 1 + m i ) σ (4) W_i^{new}=W_{best}+\frac{(W_{l i}-W_{best})\cdot(1+m_i)}{\sigma}\tag{4} Winew=Wbest+σ(WliWbest)(1+mi)(4)
其中,σ为波形大小控制系数,表述为:
σ = − ( 5 t / T − 2 ) / 25 ( 5 t / T − 2 ) 2 + 0.7 (5) \sigma=-(5t/T-2)/\sqrt{25{\left(5t/T-2\right)}^{2}}+0.7\tag{5} σ=(5t/T2)/25(5t/T2)2 +0.7(5)

反射电磁波

g i = ( f ( W + ε i ) − f ( W − ε i ) ) / 2 ε W i = W i − α ⋅ g i (6) g_{i}=\left(f\left(W_{+\varepsilon i}\right)-f\left(W_{-\varepsilon i}\right)\right)/2\varepsilon\\W_{i}=W_{i}-\alpha\cdot g_{i}\tag{6} gi=(f(W+εi)f(Wεi))/2εWi=Wiαgi(6)
其中W εi = Wi ε, W−εi = Wi−ε, ε = 10−6,g为梯度,α为阶跃系数,α的初始值设为0.45。步长试验方法如下:如果初始步长迭代后的适应度值小于等于当前适应度值,则α = 1.5α,否则α = 0.5α。此策略采用中心差分法求解待优化问题的解析信息,用于搜索最优解。

接收电磁波

{ W i n e w = W i + δ ⋅ r 2 ⋅ ( W b e s t − W i ) + η ⋅ cos ⁡ ( π i n ) ⋅ ( W b e s t − W i ) i f r 5 ≤ 0.7 W i n e w = W i + λ ⋅ r 3 ⋅ ( W b e s t − W i ) + 0.5 ⋅ r 4 ⋅ ( 1 − λ ) ⋅ ( W b e s t ∗ − W i ) i f r 5 > 0.7 (7) \left\{\begin{array}{ll}W_i^{new}=W_i+\delta\cdot r_2\cdot(W_{best}-W_i)+\eta\cdot\cos(\frac{\pi i}{n})\cdot(W_{best}-W_i)&if r_5\leq0.7\\W_i^{new}=W_i+\lambda\cdot r_3\cdot(W_{best}-W_i)+0.5\cdot r_4\cdot(1-\lambda)\cdot(W_{best}^*-W_i)&if r_5>0.7\end{array}\right.\tag{7} {Winew=Wi+δr2(WbestWi)+ηcos(nπi)(WbestWi)Winew=Wi+λr3(WbestWi)+0.5r4(1λ)(WbestWi)ifr50.7ifr5>0.7(7)
其中δ是接受系数,表述为:
δ = 0.6 + ( 1.2 − 0.5 ) sin ⁡ ( t π 2 T ) (8) \delta=0.6+(1.2-0.5)\sin(\frac{t\pi}{2T})\tag{8} δ=0.6+(1.20.5)sin(2Ttπ)(8)

伪代码

在这里插入图片描述

3.结果展示

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

4.参考文献

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

5.代码获取

资源清单

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

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

相关文章

opencascade 笔记

opencascade 画一个无限大的面 在 OpenCascade 中&#xff0c;要绘制一个无限大的面&#xff0c;你可以使用 gp_Pln 类来定义一个平面&#xff0c;然后将其绘制出来。这里是一个示例代码&#xff0c;演示如何在 OpenCascade 中绘制一个无限大的平面&#xff1a; #include <…

学生管理系统 面向过程

#学生管理系统 面向过程 学生管理系统 面向过程 学生信息:name,tel 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.查询所有学生 6.退出系统 # 定义一个空列表 stu_list []# help 展示不同的功能 def helplist():print(欢迎使用学生管理信息)print(1.添加学生)print(2.删除学…

Hudi之数据读写探究

Hudi之数据读写深入探究 1. Hudi数据写入 1-1. 写操作 Hudi数据湖中的数据更新、插入和删除操作&#xff0c;是一个基于Apache Hadoop的库&#xff0c;为数据湖提供了一种有效的方法来处理更新和增量数据&#xff0c;并支持基于时间的快照和增量数据处理。Hudi支持三种主要的…

ts:交集类型 交叉类型

除联合类型的交集是取共同的部分外&#xff0c;其他类型的交集是取所有 type TypeA { a: string; b: number; }; type TypeB { b: number; c: boolean; }; type IntersectionType TypeA & TypeB; // { a: string; b: number; c: boolean; }type test2 (1 | 2) & …

N叉树遍历

E. 雪中楼 西安交通大学下雪了&#xff0c;所有楼顶都被积雪覆盖。 在梧桐道上有 n 座房子&#xff0c;自南向北第i座房子的标号是i&#xff0c;所有房子的高度互不相同。LNC从南向北&#xff0c;依次登上每栋楼楼顶&#xff0c;然后他会回头观察他已经到达过的房子&#xff0…

博物馆三维实景vr展示

VR技术应用到地产行业的优势不言而喻&#xff0c;随着购房政策的进一步放宽&#xff0c;购房刚需者借助VR商铺样板间展示系统看房&#xff0c;远比之前跑楼盘更便捷高效。那么VR商铺全景展示具体有哪些好处呢? VR技术与商铺的结合&#xff0c;为客户带来了前所未有的购房体验。…

前端学习Promise函数

前端学习Promise函数 一、前言1.示例2.调用与处理结果 一、前言 当需要处理异步操作时&#xff0c;Promise 是一种非常方便的解决方案。下面是一个简单的 Promise 函数示例&#xff0c;该函数会模拟异步获取数据的过程&#xff0c;并返回一个 Promise 对象&#xff1a; 1.示例…

Thingsboard规则链:Calculate Delta节点详解

在物联网(IoT)应用中&#xff0c;对设备数据的实时分析和处理是优化运营、预测维护的关键。Thingsboard作为一款功能强大的物联网平台&#xff0c;其规则引擎提供了丰富的节点来处理和分析数据流。其中&#xff0c;Calculate Delta节点是一个重要的工具&#xff0c;用于计算连续…

2024年西安交通大学程序设计校赛(ABCDEFO)

题目链接&#xff1a;https://vjudge.net/contest/630537#overview 文章目录 A题题意思路编程 B题题意思路编程 C题题意思路编程 D题题意思路编程 E题题意思路编程 F题题意思路编程 O题题意思路编程 写在前面&#xff1a;今天的训练赛出的题目偏简单&#xff0c;与XCPC的难度差…

经典面试题:什么是事物的隔离级别?什么是MVCC?

目录 前言一、事物的隔离级别二、隔离级别是如何实现的1. 锁定技术2. 多版本并发控制&#xff08;MVCC&#xff09;基本原理实现机制优缺点 3. 乐观锁与悲观锁 三、MySQL设置隔离级别MySQL数据库Java (使用JDBC) 前言 事务的四大特性&#xff08;ACID特性&#xff09;&#xf…

Git标签的使用

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

结巴分词原理

结巴分词是一种中文分词算法&#xff0c;采用基于词频和词汇概率的方法对文本进行切割&#xff0c;将连续的中文字符序列切分成有意义的词&#xff0c;结巴分词被称为“高性能的中文分词工具”。 其原理是通过对中文文本进行扫描&#xff0c;利用前缀词典和后缀词典构建起DAG(有…

C语言-----指针数组 \ 数组指针

一 指针数组 用来存放指针的数组 int arr[10]; //整型数组 char ch[5]; //字符数组 int * arr[6]; //存放整型指针的数组 char * arr[5]; //存放字符指针的数组 // 指针数组的应用 int main() {int arr1[] { 1,2,3,4,5 };int arr2[] { 2,3,4,5,6 };int arr3[] { 3,4,…

滴滴一季度营收同比增长14.9%至491亿元 经调整EBITA盈利9亿元

【头部财经】5月29日&#xff0c;滴滴在其官网发布2024年一季度业绩报告。一季度滴滴实现总收入491亿元&#xff0c;同比增长14.9%&#xff1b;经调整EBITA&#xff08;非公认会计准则口径&#xff09;盈利9亿元。其中&#xff0c;中国出行一季度实现收入445亿元&#xff0c;同…

第一课、Power BI 集成Python

1&#xff0c;下载安装python Python软件地址&#xff1a;Welcome to Python.org 双击自定义安装指定位置并勾选配置环境变量。 后续一直往下&#xff0c;安装完成。 检验是否成功&#xff0c;在cmd命令窗口下输入python 即可看到版本。 安装 pip install pandas 和 pip…

深入解析 JSONPath:从入门到精通

码到三十五 &#xff1a; 个人主页 在数据处理和交换领域&#xff0c;JSON已经成为了一种广泛使用的数据格式&#xff0c; 如何有效地查询和操作这些数据也变得越来越重要。在这种情况下&#xff0c;JSONPath 应运而生&#xff0c;成为了一种在JSON数据中定位和提取信息的强大工…

nginx学习记录-防盗链

1. 防盗链的概念 防盗链&#xff0c;顾名思义就是防止盗取链接&#xff0c;这里的链接一般是资源链接。 如图所示&#xff0c;我们访问一个网站时&#xff08;比如百度&#xff09;&#xff0c;我们第一个请求会获得一个html页面&#xff0c;页面中包含各种资源链接&#xff0…

【C++】C++中的比较工具:深入解析std::greater的用法与应用

文章目录 前言&#xff1a;1. greater的定义和功能2. 使用示例3. 实际应用场景3.1. 在 sort 中的使用3.2. 在 priority_queue 使用 总结&#xff1a; 前言&#xff1a; 在C编程中&#xff0c;标准模板库&#xff08;STL&#xff09;提供了强大的工具和算法&#xff0c;以简化和…

产品经理-原型绘制(五)

1. 概念 用线条、图形描绘出的产品框架&#xff0c;也称为线框图&#xff0c;是需求和功能的具体化表现 2. 常用工具 Axure 3. 类别 3.1 草图原型 手绘图稿&#xff0c;修改方便&#xff0c;规划的早期使用 3.2 低保真原型 简单交互&#xff0c;无设计图&#xff0c;无需…

SOLIDWORKS正版软件购买指南

在这个数字化的时代,SOLIDWORKS作为一种卓悦的三维计算机辅助设计&#xff08;CAD&#xff09;工具&#xff0c;赢得了众多设计师和工程领域专家的喜爱。为了帮大家更加快捷方便地掌握这一知名设计工具&#xff0c;本文写了更全面的SOLIDWORKS选购指导&#xff0c;向大家披露选…