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

news2024/12/23 9:51:10

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

文章目录

  • 智能优化算法:白鲨优化算法
    • 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.coloradmin.cn/o/868894.html

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

相关文章

第二十三章 原理篇:Pix2Seq

大夏天我好像二阳了真是要命啊。 现在找到工作了&#xff0c;感觉很快乐&#xff0c;但是也有了压力。 《论你靠吹牛混进公司后该怎么熬过试用期》 希望自己能保持学习的习惯&#xff01;加油&#xff01; 参考教程&#xff1a; https://arxiv.org/pdf/2109.10852.pdf https://…

动捕系统mockup_optitrack替换为VRPN传递信息

motive&#xff1a;启动→载入已有→layout选择capture→view选择data streming→复选marker右键create刚体→rename刚体→修改local interface为本机ip→勾选vrpn ROS端&#xff1a;roslaunch vrpn_client_ros vrpn_efy.launch 记得修改server地址为motiveip地址 关掉motive…

并查集、树状数组

并查集、树状数组、线段树 并查集树状数组树状数组1 (单点修改&#xff0c;区间查询)树状数组2 (单点查询&#xff0c;区间修改) 并查集 【模板】并查集 题目描述 如题&#xff0c;现在有一个并查集&#xff0c;你需要完成合并和查询操作。 输入格式 第一行包含两个整数 …

GIF制作器-gif动图制作助手、格式转换软件

GIF制作器​​​​​​​-无水印制作gif动态图片&#xff01; 一步轻松制作GIF&#xff0c;将视频、Live Photo、照片轻松转换成GIF动图&#xff0c;超级简单好用~ 【功能简介】 视频转GIFLive Photo转GIF图片转GIFGIF编辑 【编辑工具】 自由裁剪GIF内容调节GIF播放速度添加文…

C++ 网络编程项目fastDFS分布式文件系统(一)

目录 1.项目架构图 1.1 一些概念 1.2 项目架构图 2. 分布式文件系统 2.1 传统文件系统 2.2 分布式文件系统 3. FastDFS 3.1 fastDFS介绍 3.2 fastDFS安装 3.3 fastDFS配置文件 3.4 fastDFS的启动 4. fastDFS状态检测 4.1 对file_id的解释 4. 2上传下载代码实现 …

电流的测量(分流电流表)

在当今的大多数仪器应用中&#xff0c;可以使用两种常见的电流测量方法&#xff1a;分流电流表方法和反馈电流表方法。分流电流表方法通常与通用数字万用表 (DMM)一起使用&#xff0c;用于测量分流电阻器上的电压测量值。该电压测量结果与已知的电阻值相结合&#xff0c;得出电…

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

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

4、基于mysql实现分布式锁

目录 4.1. 基本思路4.2. 代码实现4.3 缺陷及解决方案 4.1. 基本思路 synchronized关键字和ReetrantLock锁都是独占排他锁&#xff0c;即多个线程争抢一个资源时&#xff0c;同一时刻只有一个线程可以抢占该资源&#xff0c;其他线程只能阻塞等待&#xff0c;直到占有资源的线程…

棒球和垒球的区别·棒球联盟

棒球和垒球的区别 1. 定义和起源 棒球起源于19世纪中叶的美国&#xff0c;最初被认为是一种游戏&#xff0c;而并非体育运动。那时&#xff0c;棒球常常被孩子们用来进行休闲娱乐。在20世纪初&#xff0c;它才开始被纳入体育运动的范畴。 垒球则是棒球的近亲&#xff0c;同样…

Java | 字符串

目录 一、String类 1.1 声明字符串 1.2 创建字符串 二、连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三、获取字符串信息 3.1 获取字符串长度 3.2 字符串查找 3.3 获取指定索引位置的字符 四、字符串操作 4.1 获取字符串 4.2 去除空格 4.3 字符串替换 …

Android JNI开发从0到1,java调C,C调Java,保姆级教程详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 第一步首先配置Android studio的NDK开发环境&#xff0c;首先在Android studio中下载NDK…

QT-基于Buildroot构建系统镜像下实现QT开发

QT-基于Buildroot构建系统镜像下实现QT开发 BuildRootUboot的仓库地址和commit idKernel 的仓库地址和commit id BuildRoot已编译库在Windows上的Create上创建项目编译QT项目 BuildRoot 这部分按照100ask官网的教程走即可: Uboot的仓库地址和commit id https://e.coding.net/…

如何使用ChatGPT设计LOGO,只需知道品牌名字就能完成傻瓜式操作

​独特且引人注目的LOGO对于引导用户/消费者快速识别并与你建立联系至关重要。然而&#xff0c;聘请专业的设计师来创建个性化LOGO可能非常昂贵。这里可以使用使用ChatGPT。[1] 你只需要&#xff1a; 准备好公司名称&#xff1b; 能用ChatGPT&#xff0c;用来给BingChat喂log…

WebAPIs 第一天

1.声明变量const优先&#xff08;补充&#xff09; 2.WebAPI基本认知 作用和分类 DOM树和DOM对象 3.获取DOM元素 4.DOM修改元素内容 5.操作元素属性 6.定时器-间歇函数 一.声明变量const优先 ① 变量声明有var let const ② 建议const优先&#xff0c;尽量使用const…

【枚举+推式子】牛客小白月赛 63 E

登录—专业IT笔试面试备考平台_牛客网 题意&#xff1a; 思路&#xff1a; 首先是个计数问题&#xff0c;考虑组合数学 组合数学就是在考虑枚举所有包含1和n的区间 这个典中典就是枚举1和n的位置然后算贡献 双指针超时&#xff0c;考虑推式子&#xff1a; Code&#xff1a…

分类过程中的一种遮挡现象

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;让A&#xff0c;B中各有3个点&#xff0c;且不重合&#xff0c;统计迭代次数并排序。 其中有10组数据 差值结构 迭代次数 构造平均列A 构造平均列AB…

C++笔记之函数参数列表中设置默认值

C笔记之函数参数列表中设置默认值 code review! 代码 #include <iostream>// 函数声明时设置默认值 void printInfo(std::string name "Unknown", int age 0);int main() {printInfo(); // 使用默认参数值printInfo("Alice", 25);…

Scractch3.0_Arduino_ESP32_学习随记_蓝牙鼠标(四)

蓝牙鼠标 目的器材程序联系我们 目的 通过C02实现蓝牙鼠标。 器材 硬件: 齐护机器人C02 购买地址 软件:scratch3.0 下载地址:官网下载 程序 蓝牙鼠标使用使用ESP32自带的BLE蓝牙&#xff0c;不需要再外接模块。可以实现鼠标移动&#xff0c;左右键的点击动作。 联系我们…

C++进阶 智能指针

本篇博客简介&#xff1a;介绍C中的智能指针 智能指针 为什么会存在智能指针内存泄露内存泄漏定义内存泄漏的危害如何检测内存泄漏如何避免内存泄漏 智能指针的使用及其原理RAII设计一个智能指针C官方的智能指针 定制删除器智能指针总结 为什么会存在智能指针 我们首先来看下面…

消息队列(11) - 通信协议的设计

目录 通信协议设计代码实现 通信协议设计 对于我们客户端与服务器之间的通信协议我们约定如下&#xff1a; 具体的协议设计: 之后我们传递的参数也是这些 关于 type其实是在描述当前这个请求 、 响应是在调用那个API 约定如下 对于channel ,是tcp链接中的一个逻辑上的链接,…