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

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

文章目录

  • 智能优化算法:白鲨优化算法
    • 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.hqwc.cn/news/63878.html

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

相关文章

【二分+贪心】CF1665 C

Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 一开始想太简单wa6了 只想到先感染大的分量&#xff0c;然后最后把最大的分量剩下的染色 但是可能会有别的分量更大&#xff08;因为最后给最大的染色之后可能不再是最大的&#xff09; 可以用堆维护&#xf…

前端笔试题1

HTML/CSS 题1&#xff1a; 1&#xff0e;使用CSS 让该节点不可见&#xff0c;方法越多越好。 <div class"hidden">Hi</div> 使用CSS 让节点不可见的方法有以下几种&#xff1a; 把 visibility 属性设置为 hidden&#xff0c;这样元素框不会被绘制&…

PHP 之房贷计算器、组合贷

一、等额本金 // &#xff08;等额本金&#xff09; //$loanAmount>贷款金额 //$loanPeriod>贷款年限 //$interestRate>贷款利息 function calculateEqualPrincipalPayment($loanAmount, $loanPeriod, $interestRate) {$monthlyPrincipal $loanAmount / ($loanPerio…

分享一个计算器

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计算器</title><style>* {box-sizing: border-box;}body…

JVM 基础

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 JVM 类加载机制 JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&am…

积木报表集成前端加载js文件404

项目场景&#xff1a; 在集成积木报表和shiro时候&#xff1a; 集成积木报表&#xff0c;shrio&#xff0c;shrio是定义在另一个模块下的&#xff0c;供另一个启动类使用&#xff0c;积木报表集成shrio的时候&#xff0c;需要依赖存放shrio的核心包&#xff0c;该核心包除了存…

7.利用matlab完成 符号方阵的特征值分解和 符号矩阵的奇异值分解 (matlab程序)

1.简述 &#xff08;1&#xff09;特征值分解&#xff1a;函数eig 格式&#xff1a;[V,D] eig(A) %计算A的特征值对角阵D和特征向量V&#xff0c;使AVVD成立。 注意&#xff1a;特征值分解时&#xff0c;使用eig&#xff0c;矩阵A必须是方阵。 A [0 1;1 1]; [V,D] ei…

ADM2587E在RS485和RS422接口的应用(ADM2587E电路原理图和程序开发)

最近做一个项目使用到ADM2587E&#xff0c;为了解决公司历史遗留的问题&#xff08;ADM2587E芯片发烫&#xff0c;容易烧毁&#xff0c;485设备只能手拉手连接三四个&#xff0c;就通信不正常现象&#xff09;&#xff0c;认真阅读了Datasheet和官网LayOut的一些设计文档&#…

Springboot04--vue前端部分+element-ui

注意点&#xff1a; 这边v-model和value的区别&#xff1a;v-model是双向绑定的&#xff0c;value是单向绑定 li的key的问题 vue的组件化开发&#xff1a; 1. NPM&#xff08;类似maven&#xff0c;是管理前段代码的工具&#xff09; 安装完之后可以在cmd里面使用以下指令 2.…

数据库中的连表更新和连表删除

1.连表更新 准备两张表,id一样,但是姓名不一样, 需求根据id让姓名保持一致 执行的sql UPDATE teacher_copy1 AS b INNER JOIN teacher c ON b.TId c.TId set b.tnamec.tname 执行结果 2.连接删除 DELETE a FROMteacher_copy1 AS aINNER JOIN teacher b ON a.TId b.TId

flutter 初识(开发体验,优缺点)

前言 最近有个跨平台桌面应用的需求&#xff0c;需要支持 windows/linux/mac 系统&#xff0c;要做个更新应用的小界面&#xff0c;主要功能就是下载更新文件并在本地进行替换&#xff0c;很简单的小功能。 花了几分钟构建没做 UI 优化的示例界面&#xff1a; 由于我们的客…

STM32F429IGT6使用CubeMX配置串口通信

1、硬件电路 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置USART1引脚 4、生成工程配置 5、部分代码 //重定向printf函数 int fputc(int ch, FILE *f) {HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);return ch; } /* USER CODE BE…