【智能算法】火烈鸟搜索算法(FSA)原理及实现

在这里插入图片描述

目录

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


1.背景

2021年,W Zhiheng等人受到火烈鸟迁徙觅食行为启发,提出了火烈鸟搜索算法(Flamingo Search Algorithm, FSA)。

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

2.算法原理

2.1算法思想

FSA受到火烈鸟的觅食和迁徙行为的启发,火烈鸟通过互相鸣叫传递关于食物供应的信息并更新其位置,FSA在未知的搜索空间中通过模拟火烈鸟之间的交互,不断更新位置以探索并寻找全局最优解。FSA主要包含两个阶段:喙的扫描和脚的移动

在这里插入图片描述

2.2算法过程

交际行为允许火烈鸟通过呼叫传递关于食物丰富位置的信息,从而引导群体更新位置,即使个体不完全知晓全局最优位置。喙扫描行为则模拟火烈鸟在富含食物的区域进行更密集的搜索,通过嘴部和脚部动作调整扫描范围和频率。这两种行为结合,使得FSA能在不确定和动态的环境中有效寻找最优解,平衡全局探索与局部利用。
火烈鸟觅食的移动步长为火烈鸟喙的扫描范围加上脚的移动距离:
b i j t = ε 1 × x b j t + G 2 × ∣ G 1 × x b j t + ε 2 × x i j t ∣ (1) b_{ij}^t=\varepsilon_1\times xb_j^t+G_2\times\left|G_1\times xb_j^t+\varepsilon_2\times x_{ij}^t\right|\tag{1} bijt=ε1×xbjt+G2× G1×xbjt+ε2×xijt (1)
更新火烈鸟觅食行为位置:
x i j t + 1 = ( x i j t + ε 1 × x b j t + G 2 × ∣ G 1 × x b j t + ε 2 × x i j t ∣ ) / K (2) x_{ij}^{t+1}=(x_{ij}^{t}+\varepsilon_{1}\times xb_{j}^{t}+G_{2}\times\left|G_{1}\times xb_{j}^{t}+\varepsilon_{2}\times x_{ij}^{t}\right|)/K\tag{2} xijt+1=(xijt+ε1×xbjt+G2× G1×xbjt+ε2×xijt )/K(2)
当前觅食区域食物匮乏时,火烈鸟种群会迁移到下一个食物更丰富的区域:
x i j t + 1 = x i j t + ω × ( x b j t − x i j t ) (3) x_{ij}^{t+1}=x_{ij}^{t}+\omega\times(xb_{j}^{t}-x_{ij}^{t})\tag{3} xijt+1=xijt+ω×(xbjtxijt)(3)
其中,xbj表示第t次迭代种群中适应度最好的火烈鸟的第j维位置,ω = N(0, N)是一个N个自由度的高斯随机数,用于增加火烈鸟迁徙过程中的搜索空间,模拟特定迁徙过程中火烈鸟个体行为的随机性。

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Zhiheng W, Jianhua L. Flamingo search algorithm: a new swarm intelligence optimization algorithm[J]. IEEE Access, 2021, 9: 88564-88582.

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

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

相关文章

C++|STL简介-string-vector基础运用

目录 什么是STL STL里面有什么 容器 string 序列式容器 vector deque list 关联式容器 set multiset map multimap 算法 非可变序列算法 可变序列算法 排序算法 数值算法 什么是STL STL(标准模板库):是C标准库的重要组成部分,不仅是一…

MVC架构简述

MVC简介 MVC 是一种非常常见且常用的分层架构,主要包括;M - mode 对象层,封装到 domain 里。V - view 展示层,但因为目前都是前后端分离的项目,几乎不会在后端项目里写 JSP 文件了。C - Controller 控制层&#xff0c…

站群SEO优化策略及其遭遇DDoS攻击时的应对方法

一、站群SEO优化策略 站群优化主要是指通过合理布局和内容优化提升一系列网站在搜索引擎中的整体排名表现。以下是一些关键步骤与相关代码示例(以WordPress为例): 差异化内容建设: 每个站点的内容必须具有独立性和价值性&#x…

CSS-vminvmax单位

vmin 和 vmax 单位 vmin 是相对于视口宽度和高度中较小值进行计算,它的值为视口宽度和高度中的较小值的百分比。 例如,如果视口宽度为 800px,高度为 1000px,那么 1vmin 等于 8px(800px 的 1%)。 vmax 是…

【Unity基础】TextMeshPro组件学习过程记录

目录 1.TextMeshPro组件渲染创建文本RTL Editor字体Font Asset字体加粗,下划线等字体大小控制字体颜色控制字体渐变控制字符间隔、单词间隔、行间距、段落间距控制WrappingUV映射控制代码 2.TextMeshPro组件AssetFace InfoGeneration Setting 3.使用Dynamic SDF Sys…

11_Scala函数柯理化惰性函数

1.函数柯里化 def test(a: Int, b: Int): Unit {for (i <- 1 to a) println(i)for (i <- 1 to b) println(i)}var a 10;var b 100test(a, b)2.构成柯里化 **函数柯里化的做法&#xff0c;就是将无关的参数进行分离&#xff0c;可以设定多个参数列表&#xff1b;** **…

【可视化3D卷积计算过程】

目录 1. 可视化过程2. 代码验证 前言&#xff1a;开始处理视频数据&#xff0c;遇到了陌生又熟悉的3D卷积&#xff0c;但对其计算过程有点疑惑&#xff0c;网上也没找到什么可视化动画&#xff0c;所以研究明白并做个记录&#xff0c;方便日后复习。有点简化&#xff0c;但认真…

Java知识点汇总

数据类型: 计算机中存储数据的最小单位为比特位(b),其值为0或1,8个比特位组成一个字节(B),KB、MB、GB、TB 1个英文字母占一个字节,一个汉子占两个字节,字节的取值为-128–127,数字分为整数、浮点、长整,12488421 关键字 this 调用当前对象的属性、构造方法和方法 …

基于FCN网络实现的多类别图像分割任务

1、前言 FCN 作为图像分割的开山之作&#xff0c;将分割任务作为逐个像素点的分类任务 之前完成了基于unet、resnetunet、deeplab等等网络的分割任务&#xff0c;具体的可以参考本专栏&#xff1a; 图像分割_听风吹等浪起的博客-CSDN博客 因为FCN网络的实现较为复杂&#xf…

杰发科技AC7840——CAN通信简介(7)_波形分析

参考&#xff1a; CAN总线协议_stm32_mustfeng-GitCode 开源社区 0. 简介 隐形和显性波形 整帧数据表示 1. 字节描述 CAN数据帧标准格式域段域段名位宽&#xff1a;bit描述帧起始SOF(Start Of Frame)1数据帧起始标志&#xff0c;固定为1bit显性(b0)仲裁段dentify(ID)11本数…

网安行业拐点!网络安全6大企业2023年报盘点

回顾2023&#xff1a;寒冬中的市场概览 2023年&#xff0c;网络安全行业经历了前所未有的挑战。全球经济波动与行业竞争加剧&#xff0c;加之下游客户预算收紧&#xff0c;招投标流程延长&#xff0c;使得整个行业感受到了冬日的严寒。裁员和不发年终奖金的决定在行业中成为普…

记录些RAG-Fusion、Agent、NL2SQL的问题

RAG-Fusion RAG-Fusion 的实现原理 Query Duplication with a Twist&#xff1a;用 LLM 根据用户的 Query 生成几个相关的但不同的 Queries。Vector Search Unleashed&#xff1a;对原 Query 和生成的 Queries 都进行向量&#xff08;或者其他方式的&#xff09;搜索。Intell…

DiffusionGAN ——最快的小波扩散模型应用研究

介绍 扩散模型最近出现并迅速发展&#xff0c;吸引了许多研究人员的兴趣。这些模型能从随机的噪声输入生成高质量的图像。在图像生成任务中&#xff0c;它们的表现尤其优于最先进的生成模型&#xff08;GANs&#xff09;。扩散模型可以灵活地处理各种条件输入&#xff0c;从而…

GO语言核心30讲 基础知识

原站地址&#xff1a;Go语言核心36讲_Golang_Go语言-极客时间 1. 两种声明变量方式的差异&#xff1a; 短变量声明 name : "abc" 只能在函数体内部使用。 var name "abc" 这方式才可以用在所有地方。 2. 类型推断有什么好处&#xff1f; 代码重构时更方…

meterpreter运行run getgui -e报错

meterpreter运行run getgui -e报错 meterpreter > run getgui -e [!] Meterpreter scripts are deprecated. Try post/windows/manage/enable_rdp. [!] Example: run post/windows/manage/enable_rdp OPTIONvalue [...] [-] The specified meterpreter session script cou…

【C++第三阶段】list容器排序

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 构造函数赋值和交换大小操作插入和删除数据存取反转和排序排序案例 list容器在STL中是双向循环链表。 如图所示&#xff0c;每一个节点三个域&#xff0c;前向指针域&#xff0c;后…

用户中心(上)

文章目录 企业做项目流程需求分析技术选型计划初始化项目数据库设计登录/注册⽤户管理&#xff08;仅管理员可⻅&#xff09; 初始化项目⼀、前端初始化1.下载nodejs2.Ant Design Pro相关问题1.前端项目启动时报错、无法启动&#xff1f;2.如何初始化前端项目&#xff1f;为什么…

vue 模板字符串

1.模板字符串换行问题 white-space: pre-wrap; 2. 鼠标移入 显示提示框 点击手动隐藏 myChart.on("mouseover", function (params) {myChart.dispatchAction({type: "downplay",}); }); tooltip: {show: true, //是否显示提示框组件&#xff0c;包括…

机器人实验室CNRS-AIST JRL, IRL介绍

一、背景 作为搞机器人方向的学生&#xff0c;必须时常关注国际上顶尖实验室的研究成果&#xff0c;以免自己做的方向out&#xff0c;除了大家耳熟能详的Boston Dynamics&#xff0c;还有许多非常厉害的机器人实验室值得我们关注&#xff0c;如日本的CNRS-AIST JRL, IRL实验室…

spring cache(一)介绍

一、介绍 1、背景 项目中使用最多的缓存技术就是Redis,用Redis就可以实现了&#xff0c;为什么需要使用spring cache&#xff1f; 先看下我们使用缓存步骤: &#xff08;1&#xff09;查寻缓存中是否存在数据&#xff0c;如果存在则直接返回结果 &#xff08;2&#xff09…