SCI一区TOP|电鳗觅食优化算法(EEFO)原理及实现【免费获取Matlab代码】

目录

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


1.背景

2024年,W Zhao受到自然界中电鳗群体觅食行为启发,提出了电鳗觅食优化算法(Electric Eel Foraging Optimization, EEFO)。

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

2.算法原理

2.1算法思想

EEFO灵感来自于自然界中电鳗群体觅食行为,其对交互行为、休息行为、狩猎行为和迁移行为四种关键觅食行为进行数学建模。

在这里插入图片描述

2.2算法过程

交互行为

在EEFO中,每条电鳗都是一个候选解,每一步得到的最佳候选解被认为是目标猎物。这种相互作用表明,每条鳗鱼都利用鳗鱼的位置信息与其他个体进行合作互动。电鳗可以通过使用种群中所有个体的位置信息,与从种群中随机选择的任何鳗鱼进行互动。
{ { v i ( t + 1 ) = x j ( t ) + C × ( x ˉ ( t ) − x i ( t ) ) p 1 > 0.5 v i ( t + 1 ) = x j ( t ) + C × ( x r ( t ) − x i ( t ) ) p 1 ⩽ 0.5 f i t ( x j ( t ) ) < f i t ( x i ( t ) ) { v i ( t + 1 ) = x i ( t ) + C × ( x ˉ ( t ) − x j ( t ) ) p 2 > 0.5 v i ( t + 1 ) = x i ( t ) + C × ( x r ( t ) − x j ( t ) ) p 2 ⩽ 0.5 f i t ( x j ( t ) ) ⩾ f i t ( x i ( t ) ) (1) \begin{cases} \begin{cases} v_i(t + 1) = x_j(t)+C\times(\bar{x}(t)-x_i(t)) p_1 > 0.5\\ v_i(t + 1) = x_j(t)+C\times(x_r(t)-x_i(t)) p_1 \leqslant 0.5\end{cases} fit\big(x_j(t)\big) < fit(x_i(t)\big)\\ \\ \begin{cases} v_i(t + 1) = x_i(t)+C\times(\bar{x}(t)-x_j(t)) p_2 > 0.5\\ v_i(t + 1) = x_i(t)+C\times(x_r(t)-x_j(t)) p_2 \leqslant 0.5\end{cases} fit\big(x_j(t)\big) \geqslant fit(x_i(t))\end{cases}\tag{1} {vi(t+1)=xj(t)+C×(xˉ(t)xi(t))p1>0.5vi(t+1)=xj(t)+C×(xr(t)xi(t))p10.5fit(xj(t))<fit(xi(t)){vi(t+1)=xi(t)+C×(xˉ(t)xj(t))p2>0.5vi(t+1)=xi(t)+C×(xr(t)xj(t))p20.5fit(xj(t))fit(xi(t))(1)
其中,平均位置和随机个体表述为:
x ‾ ( t ) = 1 n ∑ i = 1 n x i ( t ) x r = L o w + r × ( U p − L o w ) (2) \overline{x}(t)=\frac1n\sum_{i=1}^nx_i(t)\\x_r=Low+r\times(Up-Low)\tag{2} x(t)=n1i=1nxi(t)xr=Low+r×(UpLow)(2)

休息行为

为了提高搜索效率,将鳗鱼位置向量的任意一维投影到搜索空间的主对角线上,在该区域建立一个休息区域。为了确定鳗鱼的休息区域,搜索空间和鳗鱼的位置都归一化为0-1的范围。鳗鱼位置的一个随机选择的维度被投射到归一化搜索空间的主对角线上。投影位置被认为是鳗鱼休息区域的中心。
{ X ∣ X − Z ( t ) ∣ ⩽ α 0 × ∣ Z ( t ) − x p r e y ( t ) ∣ } α 0 = 2 ⋅ ( e − e t T ) (3) \begin{aligned}&\left\{X|X-Z(t)|\leqslant\alpha_{0}\times\left|Z(t)-x_{prey}(t)\right|\right\}\\&\alpha_{0}=2\cdot\left(e-e^{\frac{t}{T}}\right)\end{aligned}\tag{3} {XXZ(t)α0×Z(t)xprey(t)}α0=2(eeTt)(3)

在这里插入图片描述

Z ( t ) = L o w + z ( t ) × ( U p − L o w ) z { t = x r a n d { n r a n d { d { t − L o w r a n d { d U p r a n d { d − L o w r a n d { d (4) Z(t)=Low+z(t)\times(Up-Low)\\z\{t=\frac{x_{rand\{n}^{rand\{d}\{t-Low^{rand\{d}}{Up^{rand\{d}-Low^{rand\{d}}\tag{4} Z(t)=Low+z(t)×(UpLow)z{t=Uprand{dLowrand{dxrand{nrand{d{tLowrand{d(4)
在进行休息行为之前,在其休息区域内获得鳗鱼的休息位置:
R i ( t + 1 ) = Z ( t ) + α × ∣ Z ( t ) − x p r e y ( t ) ∣ α = α 0 × sin ⁡ ( 2 π r 2 ) (5) \begin{aligned}&R_{i}(t+1)=Z(t)+\alpha\times\left|Z(t)-x_{prey}(t)\right|\\&\alpha=\alpha_{0}\times\sin(2\pi r_{2})\end{aligned}\tag{5} Ri(t+1)=Z(t)+α×Z(t)xprey(t)α=α0×sin(2πr2)(5)
其中α为静息区的尺度,r2为(0,1)内的随机数。尺度α使静息区的范围随着迭代的进行而减小,休息行为:
ν i ( t + 1 ) = R i ( t + 1 ) + n 2 × ( R i ( t + 1 ) r o u n d ( r a n d ) × x i ( t ) ) n 2 ∼ N ( 0 , 1 ) (6) \begin{aligned}&\nu_{i}(t+1)= R_{i}(t+1)+n_{2}\times(R_{i}(t+1)round(rand)\times x_{i}(t))\\&n_{2}\sim N(0,1)\end{aligned}\tag{6} νi(t+1)=Ri(t+1)+n2×(Ri(t+1)round(rand)×xi(t))n2N(0,1)(6)

狩猎行为
当鳗鱼发现猎物时,它们通过低电器官放电不断地与同伴交流和合作:
{ X ∣ X − x p r e y ( t ) ∣ ⩽ β 0 × ∣ x ‾ ( t ) − x p e r y ( t ) ∣ } β 0 = 2 × ( e − e t T ) (7) \begin{Bmatrix}X\big|X-x_{prey}(t)\big|\leqslant\beta_0\times\big|\overline{x}(t)-x_{pery}(t)\big|\end{Bmatrix}\\\beta_0=2\times\begin{pmatrix}e-e^{\frac{t}{T}}\end{pmatrix}\tag{7} {X Xxprey(t) β0× x(t)xpery(t) }β0=2×(eeTt)(7)
其中,β0为狩猎区域的初始尺度。猎物位置为:
H p r e y ( t + 1 ) = x p r e y ( t ) + β × ∣ x ‾ ( t ) − x p e r y ( t ) ∣ β = β 0 × sin ⁡ ( 2 π r 3 ) (8) \begin{aligned}&H_{prey}(t+1) = x_{prey}(t)+\beta\times\left|\overline{x}(t)-x_{pery}(t)\right|\\&\beta=\beta_{0}\times\sin(2\pi r_{3})\end{aligned}\tag{8} Hprey(t+1)=xprey(t)+β×x(t)xpery(t)β=β0×sin(2πr3)(8)
其中,β为狩猎区域的尺度,r3为(0,1)范围内的随机数。尺度β使狩猎区域的范围随着时间的推移而变小。鳗鱼在狩猎过程中所表现出的卷曲行为:
v i ( t + 1 ) = H p r e y ( t + 1 ) + η × ( H p r e y ( t + 1 ) − r o u n d ( r a n d ) × x i ( t ) ) (9) \begin{matrix}v_i(t+1)&=&H_{prey}(t+1)+\eta\times(H_{prey}(t+1)-round(rand)\times x_i(t))\end{matrix}\tag{9} vi(t+1)=Hprey(t+1)+η×(Hprey(t+1)round(rand)×xi(t))(9)
η表示卷曲因子:
η = e r 4 ( 1 − t ) T × cos ⁡ ( 2 π r 4 ) (10) \eta=e^{\frac{r_4(1-t)}{T}}\times\cos(2\pi r_4)\tag{10} η=eTr4(1t)×cos(2πr4)(10)

在这里插入图片描述

迁移行为

当鳗鱼发现猎物时,它们往往会从休息区迁移到捕猎区,迁徙行为:
ν i ( t + 1 ) = − r 5 × R i ( t + 1 ) + r 6 × H r ( t + 1 ) − L × ( H r ( t + 1 ) − x i ( t ) ) H r ( t + 1 ) = x p r e y ( t ) + β × ∣ x ˉ ( t ) − x p r e y ( t ) ∣ (11) \begin{aligned}&\nu_{i}(t + 1) = - r_{5}\times R_{i}(t+1) + r_{6}\times H_{r}(t+1)-L\times(H_{r}(t+1) - x_{i}(t))\\&H_{r}(t+1)=x_{prey}(t)+\beta\times\left|\bar{x}(t)-x_{prey}(t)\right|\end{aligned}\tag{11} νi(t+1)=r5×Ri(t+1)+r6×Hr(t+1)L×(Hr(t+1)xi(t))Hr(t+1)=xprey(t)+β×xˉ(t)xprey(t)(11)
鳗鱼可以通过低放电感知猎物的位置,因此它可以随时调整自己的位置。如果鳗鱼在觅食过程中感觉到猎物的靠近,它们就会移动到候选位置;否则,鳗鱼将停留在当前位置。
x i ( t + 1 ) = { x i ( t ) f i t ( x i ( t ) ) ⩽ f i t ( ν i ( t + 1 ) ) v i ( t + 1 ) f i t ( x i ( t ) ) > f i t ( ν i ( t + 1 ) ) (12) x_i(t+1)=\left\{\begin{array}{ccc}x_i(t)&&fit(x_i(t) )\leqslant fit(\nu_i(t+1) )\\v_i(\text{t} + 1)&&fit(x_i(t) )>fit(\nu_i(t+1) )\end{array}\right.\tag{12} xi(t+1)={xi(t)vi(t+1)fit(xi(t))fit(νi(t+1))fit(xi(t))>fit(νi(t+1))(12)

在这里插入图片描述

流程图

在这里插入图片描述

伪代码

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

3.结果展示

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b55c18d69e474069b1ce88398a80897a.png

4.参考文献

[1] Zhao W, Wang L, Zhang Z, et al. Electric eel foraging optimization: A new bio-inspired optimizer for engineering applications[J]. Expert Systems with Applications, 2024, 238: 122200.

5.代码获取

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

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

相关文章

SSRF漏洞原理与案例分析

一、什么是SSRF漏洞 SSRF (Server-Side Request Forgery&#xff1a;服务器端请求伪造)是一种由攻击者构造请求&#xff0c;由服务端发起请求的安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的&#xff0c;所以服务端能请…

Marin说PCB之如何在CST仿真软件中添加三端子的电容模型?--02

小编我在上期文章的结尾给大家留下一个小问题就是&#xff1a;在三端子电容创建模型中间的部分我有说了一句就是&#xff1a;&#xff08;其中有一个creat reference pin 设置我们也默认不勾选&#xff09;&#xff0c;这个勾选不勾选有啥区别呢&#xff1f;这期文章就来给大家…

提高LabVIEW程序可靠性

​提高LabVIEW程序的可靠性是确保系统稳定运行、减少故障和维护成本的重要措施。以下从多个方面详细分析如何提高LabVIEW程序的可靠性 1. 选择合适的架构 1.1 状态机架构 适用情况&#xff1a; 多状态、多步骤操作。 具体例子&#xff1a;在一个自动测试系统中&#xff0c;…

[汇总] Docker容器详解 Macvlan 创建不同容器独立跑仿真(持续更新中)

一、概念介绍 1.1 什么是macvlan macvlan是一种网卡虚拟化技术&#xff0c;能够将一张网卡&#xff08;Network Interface Card, NIC&#xff09;虚拟出多张网卡&#xff0c;这意味着每个虚拟网卡都能拥有独立的MAC地址和IP地址&#xff0c;从而在系统层面表现为完全独立的网络…

mybatisplus字段注入MetaObjectHandler扫描不到我的指定填充字段

使用mybatisplus自带的字段填充策略注入值的时候&#xff0c;发现并没有扫描到我的指定字段。 1. 初始代码 Component Slf4j public class MyMetaObjectHandler implements MetaObjectHandler {private static final String createByFiled "createBy";private stati…

Python数据可视化---pygal模块(基础篇)

pygal模块 安装pygal模块 pygal模块的安装非常简单&#xff0c;只需输入一行pip命令即可 pip install pygal安装完成&#xff1a; pygal模块介绍 pygal官网地址 pygal是Python的第三方库&#xff0c;他的主要功能就是数据可视化&#xff0c;即将数字转化成图表的形式来呈…

情绪管理篇:让七情自然流露,不过分压抑也不掺杂极端的想法即可来去自如

情绪管理篇&#xff1a; 人有七情&#xff0c;本属常理&#xff0c;该哭的时候哭、该笑的时候笑、该怒的时候怒、该忧的时候忧 学习圣贤之学&#xff0c;并非让我们像木头人一样&#xff0c;枯木死灰&#xff0c;而要让自己不要被七情所缠缚、被七情所乱心&#xff0c;我们的喜…

ONLYOFFICE 文档 8.1 现已发布:功能全面的 PDF 编辑器、幻灯片版式等等

0、前言 在技术的快速发展和工作方式的持续演进下&#xff0c;现代办公软件正变得越来越强大和多样化。ONLYOFFICE&#xff0c;作为市场上备受瞩目的一体化办公解决方案&#xff0c;以其全面的文档编辑、表格处理和演示制作功能&#xff0c;满足了用户在不同办公场景下的需求。…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS Mutex

CMSIS 2.0接口中的Mutex&#xff08;互斥锁&#xff09;是用于在多线程环境中保护共享资源的访问机制。Mutex&#xff08;互斥锁&#xff09;是一种特殊的信号量&#xff0c;用于确保同一时间只有一个线程可以访问特定的共享资源。 在嵌入式系统或多线程应用中&#xff0c;当多…

Mysql索引底层数据结构——Java全栈知识(28)

Mysql索引底层数据结构 1、什么是索引 索引在项目中还是比较常见的&#xff0c;它是帮助MySQL高效获取数据的数据结构&#xff0c;主要是用来提高数据检索的效率&#xff0c;降低数据库的IO成本&#xff0c;同时通过索引列对数据进行排序&#xff0c;降低数据排序的成本&…

arduino按钮

Arduino - Button Arduino - 按钮 参考&#xff1a; ezButton-按钮库从按钮开关看上拉pull-up电阻、下拉电阻按键的防抖动处理 The button is also called pushbutton, tactile button or momentary switch. It is a basic component and widely used in many Arduino projec…

【gif制作】Win下视频生成GIF;工具GifCam单色保存,灰度保存,调速,编辑删除帧添加文本

下载地址 https://blog.bahraniapps.com/gifcam/#download https://gifcam.en.softonic.com/ 界面功能 GifCam 简洁、小巧的 gif 录制软件。GifCam就像照相机一样位于所有窗口的顶部&#xff0c;可以移动它并调整其大小录屏所需的区域。 如图&#xff1a;空闲状态下窗口内…

给XPTABLE添加右键菜单(XPTable控件使用说明十一)

用户右键点击TABLE控件&#xff0c;弹出一个菜单&#xff0c;选择菜单对应到相关的操作 1、增加一个contextMenuStrip6控件&#xff0c;在里面增加2个ITEM&#xff0c;名称用中文命名 2、给两个ITEM添加点击后的事件 3、在XPTABLE上增加点击事件&#xff1a; 4、当用户右键点击…

vantUI upload 上传组件v-model绑定问题

直接绑定一个数组会有问题,删除失效/上传不了等等 解决在v-model绑定的数组外包一个对象即可

零基础MySQL完整学习笔记

零基础MySQL完整学习笔记 1. 基础操作(必须会!)1.1 修改密码(4种方法)1.2 创建新用户1.3 导入数据库 2. SQL四种语言介绍2.1 DDL(数据库定义语言)2.2 DML(数据操纵语言)2.3 DCL(数据库控制语言)2.4 TCL(事务控制语言) 3. 数据库操作3.1 创建数据库3.2 查询数据库3.3 删除数据库…

聊聊 oracle varchar2 字段的gbk/utf8编码格式和字段长度问题

聊聊 oracle varchar2 字段的gbk/utf8编码格式和字段长度问题 1 问题现象 最近在排查某客户现场的数据同步作业报错问题时&#xff0c;发现了部分 ORACLE 表的 varchar2 字段&#xff0c;因为上游 ORACLE数据库采用 GBK 编码格式&#xff0c;而下游 ORACLE 数据库采用UTF8 编…

封装了一个优雅的iOS转场动画

效果图 代码 // // LBTransition.m // LBWaterFallLayout_Example // // Created by mac on 2024/6/16. // Copyright © 2024 liuboliu. All rights reserved. //#import "LBTransition.h"interface LBPushAnimation:NSObject<UIViewControllerAnimated…

【服务器02】之【阿里云平台】

百度一下阿里云官网 点击注册直接使用支付宝注册可以跳过认证 成功登录后&#xff0c;点击产品 点击免费试用 点击勾选 选一个距离最近的 点满GB 注意&#xff1a;一般试用的时用的是【阿里云】&#xff0c;真正做项目时用的是【腾讯云】 现在开始学习使用&#xff1a; 首先…

2024年综合艺术与媒体传播国际会议(ICIAMC 2024)

2024年综合艺术与媒体传播国际会议(ICIAMC 2024) 2024 International Conference on Integrated Arts and Media Communication (ICIAMC 2024) 会议地点&#xff1a;贵阳&#xff0c;中国 网址&#xff1a;www.iciamc.com 邮箱: iciamcsub-conf.com 投稿主题请注明:ICIAMC…

【Python机器学习】DBSCAN(具有噪声的基于密度的空间聚类应用)

DBSCAN&#xff08;具有噪声的基于密度的空间聚类应用&#xff09;是一种非常有用的聚类算法&#xff0c;它的主要优点是不需要用户先验地设置簇的个数&#xff0c;可以划分具有复杂形状的簇&#xff0c;还可以找出不属于任何簇的点。DBSCAN比凝聚聚类和k均值稍慢&#xff0c;但…