智能优化算法:白鲨优化算法-附代码

智能优化算法:白鲨优化算法

文章目录

  • 智能优化算法:白鲨优化算法
    • 1.白鲨优化算法
      • 1.1 初始化
      • 1.2 速度更新
      • 1.3位置更新
      • 1.4鱼群行为
    • 2.实验结果
    • 3.参考文献
    • 4.Matlab
    • 5.python

摘要:WSO 算法是 Braik 等于 2022 年提出一种基于白鲨深海觅食策略的新型优化算法 .该算法灵感来自于白鲨敏锐的听觉和嗅觉功能,这些功能有助于白鲨探索整个搜索空间来追踪、定位和捕获猎物,并通过白鲨位置的不断更新来达到求解优化问题的目的 。具有寻优能力强,收敛速度快等特点。

1.白鲨优化算法

1.1 初始化

WSO 是一种基于种群的优化算法, 该算法通过 式 (3) 随机生成均匀分布的白鲨种群个体位置 w j i w_j^i wji.
w j i = l j + R × ( u j − l j ) (3) w_j^i=l_j+R \times\left(u_j-l_j\right) \tag{3} wji=lj+R×(ujlj)(3)
式中: w j i w_j^i wji 为第 i i i 头白鲨第 j j j 维位置, i = 1 , 2 , ⋯ , n i=1,2, \cdots, n i=1,2,,n, 其 中 n n n 为白鲨种群规模; u j 、 l j u_j 、 l_j ujlj 分别为第 j j j 维搜索空间 上、下限; R R R 为介于 0 和 1 之间的随机数.

1.2 速度更新

白鲨大部分时间都在狩猎和追踪猎物 .WSO 算法中,白鲨根据猎物移动来感知其位置,并更新自身速度. 数学描述如下:
v k + 1 i = μ [ v k i + p 1 ( w gbest  k − w k i ) × c 1 + p 2 ( w best  v k i − w k i ) × c 2 ] (4) \begin{gathered} v_{k+1}^i=\mu\left[v_k^i+p_1\left(w_{\text {gbest }_k}-w_k^i\right) \times c_1+\right. \left.p_2\left(w_{\text {best }}^{v_k^i}-w_k^i\right) \times c_2\right] \end{gathered} \tag{4} vk+1i=μ[vki+p1(wgbest kwki)×c1+p2(wbest vkiwki)×c2](4)
式中: v k + 1 i v_{k+1}^i vk+1i 为第 i i i 头白鲨第 ( k + 1 ) (k+1) (k+1) 次迭代速度; v k i v_k^i vki 为 第 i i i 头白鲨第 k k k 次迭代速度; w gbest  k w_{\text {gbest }_k} wgbest k 为迄今为止白鲨 在第 k k k 次迭代中获得的全局最优位置; w k i w_k^i wki 为第 i i i 头 白鲨第 k k k 次迭代位置; w best  v k i w_{\text {best }}^{v_k^i} wbest vki 为第 i i i 头白鲨第 k k k 次迭代 速度对应的最优位置; c 1 、 c 2 c_1 、 c_2 c1c2 为介于 0 和 1 之间的随 机数; p 1 、 p 2 p_1 、 p_2 p1p2 分别为 w gbest  k 、 w best  v k i w_{\text {gbest }_k} 、 w_{\text {best }}^{v_k^i} wgbest kwbest vki 控制系数, 描述为 p 1 = p max  + ( p max  − p min  ) × e − ( 4 k / K ) 2 , p 2 = p min  + ( p max  − p_1=p_{\text {max }}+\left(p_{\text {max }}-p_{\text {min }}\right) \times \mathrm{e}^{-(4 k / K)^2}, p_2=p_{\text {min }}+\left(p_{\text {max }}-\right. p1=pmax +(pmax pmin )×e(4k/K)2,p2=pmin +(pmax  p min  ) × e − ( 4 k / K ) 2 ; k 、 K \left.p_{\text {min }}\right) \times \mathrm{e}^{-(4 k / K)^2} ; k 、 K pmin )×e(4k/K)2;kK 分别为当前迭代次数和最大迭 代次数; p max  、 p min  p_{\text {max }} 、 p_{\text {min }} pmax pmin  分别为控制系数最大、最小值; μ \mu μ 表 示收缩因子.

1.3位置更新

(1)基于最优猎物的位置更新. WSO 算法中, 白渔 通过朝最优猎物移动来更新自身位置以找到最优或 次优猎物. 数学描述如下:
w k + 1 i = { w k i ⋅ ¬ ⊕ w o + u ⋅ a + l ⋅ b R < m v w k i + v k i / f R ⩾ m v (5) w_{k+1}^i=\left\{\begin{array}{cc} w_k^i \cdot \neg \oplus w_o+u \cdot a+l \cdot b & R<m_v \\ w_k^i+v_k^i / f & R \geqslant m_v \end{array}\right. \tag{5} wk+1i={wki¬wo+ua+lbwki+vki/fR<mvRmv(5)
式中: w k + 1 i w_{k+1}^i wk+1i 为第 i i i 头白渔第 ( k + 1 ) (k+1) (k+1) 次迭代位置; → \rightarrow 为 否定运算符; ⊕ \oplus 为位运算符; a 、 b a 、 b ab 为一维二进制向量, 描述为 a = sgn ⁡ ( w k i − u ) > 0 , b = sgn ⁡ ( w k i − l ) < 0 , sgn ⁡ a=\operatorname{sgn}\left(w_k^i-u\right)>0, b=\operatorname{sgn}\left(w_k^i-l\right)<0, \operatorname{sgn} a=sgn(wkiu)>0,b=sgn(wkil)<0,sgn ( - ) 为正负号返回函数; u , l u, l u,l 分别为搜索空间上、下 限; w 0 w_0 w0 为逻辑向量, 描述为 w 0 = ⊕ ( a , b ) ; f w_0=\oplus(a, b) ; f w0=(a,b);f 为白渻 波浪运动频率; m v m_v mv 为白鲨接近猎物时随迭代次数增 加而增加的动力; 其他参数意义同上.
(2)基于最好白鲨的位置更新. WSO 算法中, 白鲨 通过朝着最优白鲨位置移动以靠近猎物最优位置. 数 学描述如下:
w k + 1 ′ i = w gbest  k + r 1 D k sgn ⁡ ( r 2 − 0.5 ) r 3 < s s (6) w_{k+1}^{\prime i}=w_{\text {gbest }_k}+r_1 D_k \operatorname{sgn}\left(r_2-0.5\right) \quad r_3<s_s \tag{6} wk+1i=wgbest k+r1Dksgn(r20.5)r3<ss(6)
式中: w k + 1 i w_{k+1}^i wk+1i 为第 i i i 头白鲨第 ( k + 1 ) (k+1) (k+1) 次迭代相对于猎 物的新位置; r 1 、 r 2 、 r 3 r_1 、 r_2 、 r_3 r1r2r3 为介于 0 和 1 之间的随机数; D k D_k Dk 为猎物与白鲨之间的距离; s s s_s ss 为白鲨在接近最佳 猎物时的嗅觉和视觉强度参数; 其他参数意义同上.

1.4鱼群行为

WSO 算法通过模拟白鲨群受食行为来保留了前 两个最优解, 并根据这些最优位置来更新其他白鲨个 体位置. 数学描述如下:
w k + 1 i = w k i + w k + 1 i 2 × R (7) w_{k+1}^i=\frac{w_k^i+w_{k+1}^i}{2 \times R} \tag{7} wk+1i=2×Rwki+wk+1i(7)
式中,参数意义同上.

2.实验结果

在这里插入图片描述

3.参考文献

[1] BRAIK M, HAMMOURI A, ATWAN J, et al. White Shark Optimizer: a novel bio-inspired meta-heuristic algorithm for global optimization problems [ J ] [\mathrm{J}] [J]. Knowledge-based systems,2022,243(7): 108457.

[2]陈金红,崔东文.基于深度学习神经网络超参数优化的入库径流预测方法研究——以云南省暮底河水库为例[J].三峡大学学报(自然科学版),2023,45(04):25-32.DOI:10.13393/j.cnki.issn.1672-948x.2023.04.005.

4.Matlab

5.python

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

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

相关文章

算法与数据结构(二十二)动态规划解题套路框架

动态规划解题套路框架 此文只在个人总结 labuladong 动态规划框架&#xff0c;仅限于学习交流&#xff0c;版权归原作者所有&#xff1b; 动态规划问题&#xff08;Dynamic Programming&#xff09;应该是很多读者头疼的&#xff0c;不过这类问题也是最具有技巧性&#xff0c…

计算机网络实验2:网络嗅探

文章目录 1. 主要教学内容2. Wireshark介绍3. Wireshark下载4. 使用Wireshark捕获包4.1 选择网卡4.2 停止抓包4.3 保存数据 5. Wireshark的过滤规则6. Wireshark实例 1. 主要教学内容 实验内容&#xff1a;安装、学习使用网络包分析工具Wireshark。所需学时&#xff1a;1。重难…

基于概率神经网络的变压器故障诊断

1.案例背景 1.1 PNN概述 概率神经网络(probabilistic neural networks. PNN)是 D.F.Specht博士在1989年首先提出的,是一种基于Bayes分类规则与Parzen窗的概率密度函数估计方法发展而来的并行算法。它是一类结构简单、训练简洁,应用广泛的人工神经网络。在实际应用中,尤其是在解…

纯鸿蒙!华为HarmonyOS NEXT不再兼容安卓应用,无法安装Apk文件

8月7日消息&#xff0c;近日&#xff0c;华为举行2023年华为开发者大会&#xff08;HDC.Together&#xff09;上&#xff0c;除了发布HarmonyOS 4、全新升级的鸿蒙开发套件外&#xff0c;华为还带来了HarmonyOS NEXT开发者预览版。 据了解&#xff0c;HarmonyOS NEXT开发者预览…

豪越HYDO智能运维助力智慧医院信息化建设

随着国家政策的推动与支持&#xff0c;医疗行业信息化应用不断普及&#xff0c;大数据、AI、医疗物联网等技术的应用&#xff0c;快速推动了电子病历、智慧服务、智慧管理的智慧医院建设和医院信息标准化建设&#xff0c;通过不断探索创新“智慧医院”服务模式&#xff0c;实现…

FLatten Transformer 简化版Transformer

今天在找论文时&#xff0c;看到一篇比较新奇的论文&#xff0c;在这里跟大家分享一下&#xff0c;希望可以给一些人提供一些思路。虽然现在Transformer 比较火&#xff0c;在分割上面也应用的比较多&#xff0c;但是我一直不喜欢用&#xff0c;其中一个原因是结构太复杂了&…

Linux平台下搭建GB28181服务器(WVP+ZLMediakit)

文章目录 什么是GB28181平台依赖项搭建步骤配置Redis和MySQL配置ZLMediakit配置WVP 使用效果封装成Docker镜像 什么是GB28181 GB28181(国标28181)&#xff0c;全称为《中华人民共和国公共安全视频监控联网系统技术要求》&#xff0c;是中国国家标准委员会发布的一个针对公共安…

LeetCode面向运气之Javascript—第121题-买卖股票的最佳时机-97.77%

LeetCode第121题-买卖股票的最佳时机 题目要求 给定一个数组prices &#xff0c;它的第i个元素prices[i]表示一支给定股票第i天的价格。 你只能选择某一天买入这只股票&#xff0c;并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回…

面试题:ArrayList扩容时扩容多少?

大家好&#xff0c;我是你们的小米&#xff01;今天要和大家一起来探讨一个在Java面试中经常被问到的问题&#xff1a;“ArrayList扩容时扩容多少&#xff1f;”相信很多小伙伴都在面试中遇到过这个问题&#xff0c;那么接下来&#xff0c;我就为大家详细解析一下这个问题&…

OpenCV实例(八)车牌字符识别技术(三)汉字识别

车牌字符识别技术&#xff08;三&#xff09;汉字识别 1.代码实例2.遇到问题3.汉字识别代码实例 相较于数字和英文字符的识别&#xff0c;汽车牌照中的汉字字符识别的难度更大&#xff0c;主要原因有以下4个方面&#xff1a; (1)字符笔画因切分误差导致非笔画或笔画流失。 (2…

【C++】开源:CGAL计算几何库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍CGAL计算几何库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;…

MachineLearningWu_16/P72-P77_Diagnostic

x.1 导数&#xff0c;计算图&#xff0c;大型网络 计算图就是根据链式法则求取偏导&#xff0c;大型网络就是多层网络堆叠而成。 x.2 Diagnostic 在我们对深度学习有了一些认知后&#xff0c;最重要的就是模型的诊断&#xff0c;以带有L1正则化的线性回归为例&#xff0c;我…

Vue中使用Tailwind css

1.什么是Tailwind 就是一个CSS框架&#xff0c;和你知道的bootstrap&#xff0c;element ui&#xff0c;Antd&#xff0c;bulma。一样。将一些css样式封装好&#xff0c;用来加速我们开发的一个工具。 Tailwind解释 tailwind css 中文文档 2.Vue使用Tailwind配置 1. 新建vu…

探索FSM (有限状态机)应用

有限状态机&#xff08;FSM&#xff09; 是计算机科学中的一种数学模型&#xff0c;可用于表示和控制系统的行为。它由一组状态以及定义在这些状态上的转换函数组成。FSM 被广泛用于计算机程序中的状态机制。 有限状态机&#xff08;FSM&#xff09;应用场景 在各种自动化系统…

【iOS】RunLoop

前言-什么是RunLoop&#xff1f; 什么是RunLoop? 跑圈&#xff1f;字面上理解确实是这样的。 Apple官方文档这样解释RunLoop RunLoop是与线程息息相关的基本结构的一部分。RunLoop是一个调度任务和处理任务的事件循环。RunLoop的目的是为了在有工作的时候让线程忙起来&#…

SpringBoot案例-部门管理-新增

根据页面原型&#xff0c;明确需求 页面原型 需求 阅读接口文档 接口文档链接如下&#xff1a; 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 前端在输入要新增的部门名称后&#xff0c;会以JSON格式将数据传入至后端&#xf…

php使用get和post传递数据出现414 Request-URI Too Large的解决方案

递数据出现414 Request-URI Too Large的解决方案 一、Request-URI Too Large的原因二、GET与POST三、项目分析1.读取源数据2.将读取的到数据&#xff0c;进行传递3.ajax获取传递的数据并传递到后台4.传递数据5.解决方案 一、Request-URI Too Large的原因 “Request-URI Too La…

HTTP和HTTPS

目录 HTTP和HTTPS的基本概念(应用层协议&#xff09; HTTP的版本 HTTP状态码 HTTP请求报文 GET和POST请求 GET和POST请求的区别 条件GET方法 HTTP与HTTPS有什么区别&#xff1f; HTTP的工作原理 HTTP的长链接 http1.1长链接判断一个请求已经结束了 HTTP管线化 HTT…

分布式学习最佳实践:从分布式系统的特征开始

正文   在延伸feature&#xff08;分布式系统需要考虑的特性&#xff09;的时候&#xff0c;我逐渐明白&#xff0c;这是因为要满足这些feature&#xff0c;才设计了很多协议与算法&#xff0c;也提出了一些理论。比如说&#xff0c;这是因为要解决去中心化副本的一致性问题&…

iOS 使用build setting中的配置项配置info.plist

如图所示&#xff0c;选中build setting&#xff0c;由于我们这里是想要获取版本号&#xff0c; 所以这里获取current project version 选中info&#xff0c;将bundle version 设置为$&#xff08;CURRENT_PROJECT_VERSION&#xff09;,注意&#xff0c;要使用下划线链接&…