JCR一区文章,壮丽细尾鹩莺算法Superb Fairy-wren Optimization-附Matlab免费代码

本文提出了一种新颖的基于群体智能的元启发式优化算法——壮丽细尾鹩优化算法(SFOA),SFOA从精湛的神仙莺的生活习性中汲取灵感。融合了精湛的神仙莺群体中幼鸟的发育、繁殖后鸟类喂养幼鸟的行为以及它们躲避捕食者的策略。通过模拟幼鸟生长、繁殖和摄食阶段对应的精湛的三种自然行为以及躲避天敌,建立了数学模型。该算法结合了壮丽细尾鹩莺群体中幼鸟的发育,繁殖后喂养幼鸟的行为,以及它们躲避捕食者的策略,于2025年2月最新发表在JCR 1区,中科院3区 SCI计算机类期刊 Cluster Computing。
在这里插入图片描述

3.2 初始化

所提出的 SFOA 方法是一种基于种群的技术,它通过模拟评估时间的变化来模拟其在空间中的搜索能力,以有效地解决现实环境中的优化问题。每个 SFOA 成员将根据搜索空间中问题文章确定问题决策变量的值。每个 SFOA 成员是问题的候选解决方案,并使用向量进行数学建模。向量的每个元素对应于决策变量,所有 SFOA 成员共同构成整个算法 (公式 (1))。同时,每个 SFOA 成员将在算法开始时使用公式 (2) 初始化为初始位置。

X = ( u b − l b ) × r a n d ( 0 , 1 ) + l b X = (ub - lb) \times rand(0, 1) + lb X=(ublb)×rand(0,1)+lb

其中 X 是 SFOA 全局矩阵, X i X_i Xi 是第 i 个 SFOA 成员(候选解), x i , d x_{i,d} xi,d 是搜索空间中 SFOA 的 D 维(决策变量),N 是全局成员的数量,rand 是区间 [0,1] 中的随机数,ub 和 lb 分别表示决策变量的上界和下界。

3.3 SFOA 的数学模型

在所提出的 SFOA 方法的设计中,问题求解空间中种群成员的位置基于壮丽细尾鹩莺幼鸟和成鸟之间自然行为的模拟进行更新。在这个自然过程中,幼鸟首先进入生长阶段,然后使用喂食代码孵化幼鸟至成熟,或使用其防御机制来吓跑捕食者。因此,在评估中,SFOA 种群成员的位置将在三个阶段进行更新:(i) 基于幼鸟生长的广泛探索,(ii) 基于喂食代码繁殖的探索,以及 (iii) 基于模拟捕食者防御行为的探索。

3.3.1 幼鸟生长阶段

在 SFOA 的生长阶段中,种群成员的位置根据需要大量经验的幼鸟生长动态模拟进行更新。由于种群中幼鸟的数量很大,这对种群的生存不利,因此通过不断学习大量经验并不断更新幼鸟快速生长时的位置来模拟 SFOA 成员在问题求解空间中的位置。学习经验是一系列过程运动,模拟导致 SFOA 成员位置的广泛变化,从而增加全局搜索算法的探索能力。SFOA 将通过公式 (3) 确定每个成员的位置,以获得更好的目标函数。

X n e w i , j = X i , j t + ( l b + ( u b − l b ) × r a n d ) , r > 0.5 X_{new_{i,j}} = X_{i,j}^t + (lb + (ub - lb) \times rand), \quad r > 0.5 Xnewi,j=Xi,jt+(lb+(ublb)×rand),r>0.5

其中 X n e w i , j X_{new_{i,j}} Xnewi,j 表示种群更新后 j 维中壮丽细尾鹩莺的位置, X i , j X_{i,j} Xi,j 表示迭代后 j 维中壮丽细尾鹩莺的位置,rand 是 [0,1] 之间的随机数。

3.3.2 繁殖和喂养阶段

在第二阶段中,种群成员的位置通过模拟繁殖和喂养期间壮丽细尾鹩莺的教学机制进行更新。当风险阈值较低时,雌鸟将进入繁殖阶段,并使用独特的父性测试孵化卵以防止外来物种入侵。危险阈值的计算方法如公式 (5) 所示。

s = r 1 ∗ 20 + r 2 ∗ 20 s = r_1 * 20 + r_2 * 20 s=r120+r220

其中, r 1 r_1 r1 r 2 r_2 r2 都是正态分布的随机数。

由于 SFOA 的合作繁殖特性,卵全年由多只鸟孵化以实现识别教学。在这个周期 (m) 中,每个 SFOA 都不是静止的,而是轮流进行喂养和教学。模拟这种现象导致 SFOA 成员位置的微小变化,增加了算法对局部搜索的探索能力。同时,定义一个因子 p 表示成熟度,教学周期越接近成熟,每个 SFOA 成员的活动范围越大。基于教学繁殖期间位置变化的建模,每个 SFOA 成员的新位置通过公式 (5) 计算。然后,如果这个新位置提高了目标函数的值,则替换相应的成员。

X n e w i , j = X G + ( X b X i , j t ) × p , r < 0.5 and s < 20 X_{new_{i,j}} = X_G + (X_b X_{i,j}^t) \times p, \quad r < 0.5 \quad \text{and} \quad s < 20 Xnewi,j=XG+(XbXi,jt)×p,r<0.5ands<20
X G = X b × C X_G = X_b \times C XG=Xb×C

其中 X b X_b Xb 表示当前最优位置,C 是值为 0.8 的常数。

p = sin ⁡ ( ( u b − l b ) × 2 + ( u b − l b ) × m ) p = \sin((ub - lb) \times 2 + (ub - lb) \times m) p=sin((ublb)×2+(ublb)×m)

m = ( F E s M a x F E s ) × 2 m = \left( \frac{FEs}{MaxFEs} \right) \times 2 m=(MaxFEsFEs)×2

其中,FEs 表示当前评估次数,MaxFEs 表示评估的最大次数。

3.3.3 避免自然敌人阶段

在 SFOA 的捕食者回避阶段中,种群成员的位置根据壮丽细尾鹩莺对捕食者攻击的防御机制进行更新。当壮丽细尾鹩莺被捕食者发现时,它会快速奔跑,不断拍打翅膀以扰乱捕食者的视线。同时,会发出警告声以提醒其他 SFOA 成员。在这种情况下,被捕食者盯上的 SFOA 成员会迅速逃脱,导致成员位置发生轻微变化。其他成员则会在空中盘旋以避免捕食者,导致位置发生较大变化。SFOA 成员的这两种不同表现力增强了算法在问题求解空间中的搜索范围,并提高了利用局部搜索的能力,它们的运动模式由数学公式 (9) 描述。

X n e w i , j = X b + X i , j × l × k , r < 0.5 and s > 20 X_{new_{i,j}} = X_b + X_{i,j} \times l \times k, \quad r < 0.5 \quad \text{and} \quad s > 20 Xnewi,j=Xb+Xi,j×l×k,r<0.5ands>20

其中l是莱维飞行随机步长,控制算法跳转到局部最优 k 是自适应飞行平衡因子,公式如公式 (10) 所示,该公式调节了鸟群与l的飞行距离。同时, X b X_b Xb 被添加以控制鸟群的运动方向,防止鸟群移动到不良位置,导致评估次数增加。

k = 0.2 × sin ⁡ ( π 2 − w ) k = 0.2 \times \sin \left( \frac{\pi}{2} - w \right) k=0.2×sin(2πw)

w = π 2 × F E s M a x F E s w = \frac{\pi}{2} \times \frac{FEs}{MaxFEs} w=2π×MaxFEsFEs

其中 w 是呼叫频率值,在躲避自然敌人的飞行过程中起到早期预警的作用。

3.4 SFOA 的实现

种群的初始化:定义了种群 N、维度 D、最大评估次数 FEs、上界 ub 和下界 lb。可以通过公式 (2) 获得搜索空间中种群 X 的初始化。

幼鸟生长阶段:在生长阶段,幼鸟将继续改变位置以学习大量经验以实现快速生长。因此,基于幼鸟生长建立模型使 SFOA 能够在有限的问题求解空间内进行广泛的探索。SFOA 位置变化将通过公式 (3) 计算。

繁殖和喂养阶段:当环境更安全时,SFOA 在繁殖期间进行教育,当几只成员轮流照顾卵直到它们孵化。这种行为导致 SFOA 在巢附近小范围内移动,并且每个 SFOA 成员都有机会外出寻找食物和照顾孩子。基于此,模型可以建立以使 SFOA 在一定局部范围内进行深入探索。繁殖和喂养阶段的计算公式如公式 (5) 所示。

避免自然敌人阶段:面对危险时,SFOA 会抖动羽毛以迷惑捕食者并提醒其他 SFOA 成员。基于 SFOA 避免自然敌人的特性建立模型,极大地增加了 SFOA 在空间探索中的随机性。SFOA 的计算公式如公式 (9) 所示。

X n e w i , j = { X i , j t + ( l b + ( u b − l b ) × r a n d ) , r > 0.5 X b × C + ( X b − X i , j t ) × p , r < 0.5 and  s > 20 X b + X i , j × l × k , r < 0.5 and  s < 20 X_{new_{i,j}} = \begin{cases} X_{i,j}^t + (lb + (ub - lb) \times rand), & r > 0.5 \\ X_b \times C + (X_b - X_{i,j}^t) \times p, & r < 0.5 \text{ and } s > 20 \\ X_b + X_{i,j} \times l \times k, & r < 0.5 \text{ and } s < 20 \end{cases} Xnewi,j= Xi,jt+(lb+(ublb)×rand),Xb×C+(XbXi,jt)×p,Xb+Xi,j×l×k,r>0.5r<0.5 and s>20r<0.5 and s<20

在本文中,提出了一种新的群体智能优化算法 SFOA,并建立了基于壮丽细尾鹩莺的生长、繁殖、喂养和捕食者回避行为的数学模型(图 3)。与其他群体智能算法相比,SFOA 引用了壮丽细尾鹩莺独特的教学技术和合作繁殖特征,这可以表明该算法具有一定的新颖性。在下一节中,我们将比较 SFOA 性能。

在这里插入图片描述

function[best_fitness,best_position,curve]=SFOA(N,MaxFEs,lb,ub,dim,fobj)curve=zeros(1,MaxFEs);X=initialization(N,dim,ub,lb);Xnew=zeros(N,dim);best_fitness = inf;best_position = zeros(1,dim);fitness=zeros(1,N);FEs=1;LB=ones(1,dim).*(lb);             % Lower limit for variablesUB=ones(1,dim).*(ub);             % Upper limit for variablesfor i=1:Nfitness(i)=fobj(X(i,:));if fitness(i)<best_fitnessbest_fitness=fitness(i);best_position=X(i,:);endFEs=FEs+1;curve(FEs)=best_fitness;endwhile(FEs<=MaxFEs)C=0.8;r1=rand;r2=rand;w=(pi/2)*(FEs/MaxFEs);k=0.2*sin(pi/2-w);l=0.5*levy(N,dim,1.5);y=randi(N);c1=rand;T=0.5;m=FEs/MaxFEs*2;p = sin(UB-LB)*2+(UB-LB)*m;Xb=best_position;XG=best_position*C;for i=1:Nif T<c1Xnew(i,:)=X(i,:)+(LB+(UB-LB).*rand(1,dim));elses=r1*20+r2*20;if s>20Xnew(i,:)=Xb+X(i,:).*l(y,:)*k;elseXnew(i,:)=XG+(Xb-X(i,:)).*(p);endendendX=Xnew;for i=1:NXnew(i,:) = max( Xnew(i,:),lb);Xnew(i,:) = min( Xnew(i,:),ub);fitness(i)=fobj(Xnew(i,:));if fitness(i)<best_fitnessbest_fitness=fitness(i);best_position=Xnew(i,:);endFEs=FEs+1;curve(FEs)=best_fitness;if FEs>=MaxFEsbreak;endendif FEs>=MaxFEsbreak;end end
endfunction [z] = levy(n,m,beta)num = gamma(1+beta)*sin(pi*beta/2); % used for Numerator den = gamma((1+beta)/2)*beta*2^((beta-1)/2); % used for Denominatorsigma_u = (num/den)^(1/beta);% Standard deviationu = random('Normal',0,sigma_u,n,m); v = random('Normal',0,1,n,m);z =u./(abs(v).^(1/beta));end

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

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

相关文章

使用Ubuntu18恢复群晖nas硬盘数据外接usb

使用Ubuntu18恢复群晖nas硬盘数据外接usb 1. 接入硬盘2.使用Ubuntu183.查看nas硬盘信息3. 挂载nas3.1 挂载损坏nas硬盘(USB)3.2 挂载当前运行的nas 4. 拷贝数据分批传输 5. 新旧数据对比 Synology NAS 出现故障&#xff0c;DS DiskStation损坏&#xff0c;则可以使用计算机和 U…

linux 安装 mysql记录

sudo apt-get install mysql-server 一直报错&#xff0c;按照下面的终于安装出来了 这个链接 https://cn.linux-console.net/?p13784 第 1 步&#xff1a;要删除 MySQL 及其所有依赖项&#xff0c;请执行以下命令&#xff1a; sudo apt-get remove --purge mysql* 第 2 步…

UE5学习笔记 FPS游戏制作35 使用.csv配置文件

文章目录 导入.csv要求首先创建一个结构体导入配置文件读取配置 导入 .csv要求 第一行必须包含标题 第一列的内容必须不能重复&#xff0c;因为第一列会被当成行的名字&#xff0c;在数据处理中发挥类似于字典的key的作用 当前的配置文件内容如下 首先创建一个结构体 结构…

谈谈策略模式,策略模式的适用场景是什么?

一、什么是策略模式&#xff1f;​​ 策略模式&#xff08;Strategy Pattern&#xff09;属于​​行为型设计模式​​。核心思路是将一组​​可替换的算法​​封装在独立的类中&#xff0c;使它们可以在运行时动态切换&#xff0c;同时使客户端代码与具体算法解耦。它包含三个…

AGI大模型(10):prompt逆向-巧借prompt

1 提示词逆向 明确逆向提示词⼯程概念 我们可以给ChatGPT提供⼀个简洁的提示词,让它能够更准确地理解我们所讨论的“逆向提示词⼯程”是什么意思,并通过这个思考过程,帮它将相关知识集中起来,进⽽构建⼀个专业的知识领域 提示词:请你举⼀个简单的例⼦,解释⼀下逆向pro…

IntelliJ IDEA全栈Git指南:从零构建到高效协作开发

文章目录 摘要 正文一、环境搭建&#xff1a;5分钟完成Git与IDEA的深度绑定二、基础操作&#xff1a;IDEA如何将Git效率提升300%三、分支管理&#xff1a;高并发团队的协作秘籍四、强制覆盖&#xff1a;高风险操作的生存指南五、实战避坑&#xff1a;血泪经验总结六、基于老项目…

指针的补充(用于学习笔记的记录)

1.指针基础知识 1.1 指针变量的定义和使用 指针也是一种数据类型&#xff0c;指针变量也是一种变量 指针变量指向谁&#xff0c;就把谁的地址赋值给指针变量 #include<stdio.h>int main() {int a 0;char b 100;printf("%p,%p \n", &a,&b); // …

【Cursor/VsCode】在文件列表中不显示.meta文件

打开设置文件 教程&#xff1a;【Cursor】打开Vscode设置 在settings.json里配置这个&#xff1a; "files.exclude": {"**/*.meta": true }

React-Diffing算法和key的作用

1.验证Diffing算法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…

Linux文件操作命令详解

各类资料学习下载合集 ​​https://pan.quark.cn/s/8c91ccb5a474​​ 在Linux操作系统中,文件操作命令是用户与系统交互的重要工具。掌握这些命令能够高效地管理文件和目录。本文将详细介绍常用的Linux文件操作命令,包括它们的用法、选项、具体示例及运行结果。 1. 查看文…

Redisson使用详解

一、Redisson 核心特性与适用场景 Redisson 是基于 Redis 的 Java 客户端&#xff0c;提供分布式对象、锁、集合和服务&#xff0c;简化分布式系统开发。 典型应用场景&#xff1a; 分布式锁&#xff1a;防止重复扣款、超卖控制&#xff08;如秒杀库存&#xff09;。数据共享…

从代码学习深度学习 - GRU PyTorch版

文章目录 前言一、GRU模型介绍1.1 GRU的核心机制1.2 GRU的优势1.3 PyTorch中的实现二、数据加载与预处理2.1 代码实现2.2 解析三、GRU模型定义3.1 代码实现3.2 实例化3.3 解析四、训练与预测4.1 代码实现(utils_for_train.py)4.2 在GRU.ipynb中的使用4.3 输出与可视化4.4 解析…

Flask学习笔记 - 项目结构 + 路由

前言 待业家中继续学习。 Flask 项目结构 my_flask_app/ │ ├── app/ │ ├── __init__.py │ ├── routes/ -- 将不同功能模块的路由分开管理 │ │ ├── __init__.py │ │ ├── main.py -- 主模块的路由 │ │ └── auth.py -- 认证相关的路…

SQL 转 PHP Eloquent、Doctrine ORM, 支持多数据库

SQL 转 PHP 说明 在 PHP 开发中&#xff0c;常使用 ORM&#xff08;如 Eloquent、Doctrine&#xff09;操作数据库。手写 ORM 模型繁琐&#xff0c;gotool.top 提供 SQL 转 PHP 工具&#xff0c;可自动生成 PHP 代码&#xff0c;提高开发效率。 特色 支持 Laravel Eloquent …

【Python】Python 环境 + Pycharm 编译器 官网免费下载安装(图文教程,新手安装,Windows 10 系统)

目录 Python 环境的下载安装第一步 进入官网第二步 找到匹配 windows 系统的 python 下载页面第三步 根据电脑 cpu 架构选择 python 版本第四步 安装 python 环境第五步 验证 python 环境变量 Pycharm 的下载安装第一步 进入官网第二步 安装 Pycharm Community Edition第三步 第…

基于javaweb的SpringBoot图片管理系统图片相册系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

局域网:电脑或移动设备作为主机实现局域网访问

电脑作为主机 1. 启用电脑的网络发现、SMB功能 2. 将访问设备开启WIFI或热点&#xff0c;用此电脑连接&#xff1b;或多台设备连接到同一WIFI 3. 此电脑打开命令行窗口&#xff0c;查看电脑本地的IP地址 Win系统&#xff1a;输入"ipconfig"&#xff0c;回车后如图 4.…

use_tempaddr 笔记250405

use_tempaddr 笔记250405 use_tempaddr 是 Linux 系统中用于控制 IPv6 临时隐私地址生成策略 的关键参数。以下是其详细说明&#xff1a; &#x1f4dc; 参数定义 路径&#xff1a; /proc/sys/net/ipv6/conf/<接口>/use_tempaddr默认值&#xff1a; 1&#xff08;大多数…

NO.66十六届蓝桥杯备战|基础算法-贪心-区间问题|凌乱的yyy|Rader Installation|Sunscreen|牛栏预定(C++)

区间问题是另⼀种⽐较经典的贪⼼问题。题⽬⾯对的对象是⼀个⼀个的区间&#xff0c;让我们在每个区间上做出取舍。 这种题⽬的解决⽅式⼀般就是按照区间的左端点或者是右端点排序&#xff0c;然后在排序之后的区间上&#xff0c;根据题⽬要求&#xff0c;制定出相应的贪⼼策略&…

用C语言控制键盘上的方向键

各位同学&#xff0c;大家好&#xff01;相信大家在学习C语言的过程中&#xff0c;都和我一样&#xff0c;经常使用scanf函数来接受字符&#xff0c;数字&#xff0c;这些标准输入信息&#xff0c;来实现自己设计的程序效果。 而我突然有一天&#xff08;对就是今天&#xff09…