2024最新算法:鳑鲏鱼优化算法(Bitterling Fish Optimization,BFO)求解23个基准函数(提供MATLAB代码)

一、鳑鲏鱼优化算法

鳑鲏鱼优化算法(Bitterling Fish Optimization,BFO)由Lida Zareian 等人于2024年提出。鳑鲏鱼在交配中,雄性和雌性物种相互接近,然后将精子和卵子释放到水中,但这种方法有一个很大的缺点。幼鱼暴露在各种外部危害中,很容易成为其他动物的猎物。换句话说,这些卵中只有少数会变成鱼------不幸的是,大多数鱼都是被其他水生动物猎杀的。苦鱼有不同的繁殖机制。这种鱼从牡蛎开始。寻找合适的产卵壳的任务是雄性物种的责任。他们需要找到更大的牡蛎,并有更多的空间来容纳它们的卵。当这些鱼找到一个或多个受害者(牡蛎)时,它们就会与敌人对抗。雄性物种具有攻击性行为的原因是其他一些雄性物种也倾向于将牡蛎用于自己。在战斗模式中,雄鱼的体色变暗,并尽其所能保卫自己的领地。在交配阶段,会发生一种称为性选择的现象。在性选择过程中,雌性物种根据颜色和体力选择雄性鱼。

该算法通过创建初始种群、更新参数、评估解决方案、搜索和捕获牡蛎、从其他鱼类中逃脱、走向鱼类积累、鱼类生产、繁殖和不需要的鱼类灭绝,实现优化。

参考文献:

1\] Zareian, L., Rahebi, J. \& Shayegan, M.J. Bitterling fish optimization (BFO) algorithm. Multimed Tools Appl (2024). [https://doi.org/10.1007/s11042-024-18579-0.](https://doi.org/10.1007/s11042-024-18579-0. "https://doi.org/10.1007/s11042-024-18579-0.") ### 二、23个函数介绍 ![](https://file.jishuzhan.net/article/1764141332420366338/3ea3af6a4cb623b78dd28fe776bae638.webp) 参考文献: \[1\] Yao X, Liu Y, Lin G M. Evolutionary programming made faster\[J\]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102. ### 三、BFO求解23个函数 #### 3.1部分代码 ``` close all ; clear clc Npop=30;                 Function_name='F1';     % Name of the test function that can be from F1 to F23 (  Tmax=300;               [lb,ub,dim,fobj]=Get_Functions_details(Function_name); [Best_fit,Best_pos,Convergence_curve]=BFO(Npop,Tmax,lb,ub,dim,fobj); figure('Position',[100 100 660 290]) %Draw search space subplot(1,2,1); func_plot(Function_name); title('Parameter space') xlabel('x_1'); ylabel('x_2'); zlabel([Function_name,'( x_1 , x_2 )']) %Draw objective space subplot(1,2,2); semilogy(Convergence_curve,'Color','r','linewidth',3) title('Search space') xlabel('Iteration'); ylabel('Best score obtained so far'); axis tight grid on box on legend('BFO') saveas(gca,[Function_name '.jpg']); display(['The best solution is ', num2str(Best_pos)]); display(['The best fitness value is ', num2str(Best_fit)]); ``` #### 3.2部分结果 ![](https://file.jishuzhan.net/article/1764141332420366338/5796a159067a343f04f909a9833af5e5.webp) ![](https://file.jishuzhan.net/article/1764141332420366338/f1fc10ed500b4ec2d019dfbbb719b085.webp) ![](https://file.jishuzhan.net/article/1764141332420366338/b1dd185ed1a262441ac3359170ebc982.webp) ![](https://file.jishuzhan.net/article/1764141332420366338/d7015134497305fae991c7ba23dd5a53.webp) ![](https://file.jishuzhan.net/article/1764141332420366338/718e083f8aff48989c9ca6a5a0b67a41.webp) ![](https://file.jishuzhan.net/article/1764141332420366338/ebfe847902bd2453e55b49e06c07f576.webp) ![](https://file.jishuzhan.net/article/1764141332420366338/037c8ffd13e1445e04c3d3bc488ed02d.webp) ![](https://file.jishuzhan.net/article/1764141332420366338/1c709203d6b77f00123a4bba421cd605.webp) ### 四、完整MATLAB代码

相关推荐
地平线开发者8 分钟前
ReID/OSNet 算法模型量化转换实践
算法·自动驾驶
地平线开发者21 分钟前
开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎
算法·自动驾驶
cui__OaO1 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
星星火柴9361 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
鱼鱼说测试2 小时前
Jenkins+Python自动化持续集成详细教程
开发语言·servlet·php
艾莉丝努力练剑2 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
CHEN5_023 小时前
【Java基础面试题】Java基础概念
java·开发语言
闪电麦坤953 小时前
数据结构:迭代方法(Iteration)实现树的遍历
数据结构·二叉树·
C++、Java和Python的菜鸟4 小时前
第六章 统计初步
算法·机器学习·概率论
Cx330❀4 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法