捕鱼优化算法(CFOA)-2024年SCI一区新算法-公式原理详解与性能测评 Matlab代码免费获取

        声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~

目录

原理简介

一、种群初始化

二、勘探阶段(EFs/MaxEFs<0.5)

(1)独立搜索(p<a)

(2)群体捕鱼(p≥a)

三、开发阶段(EFs/MaxEFs≥0.5)

算法伪代码

性能测评

参考文献

完整代码


捕鱼优化算法(Catch Fish Optimization Algorithm, CFOA)是一种新型的元启发式算法(智能优化算法),灵感来源于农民在池塘里的捕鱼过程,算法简单高效,思路清晰,值得一试!该成果由贾鹤鸣于2024年6月发表在SCI期刊《Cluster Computing上!

图片

由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!

图片

原理简介

灵感:在农村捕鱼的过程包括几个步骤。在钓鱼之前,人们通常会把池塘里的水放干,以降低水位。然后,他们进入池塘,用手或工具抓鱼。

当水位下降时,鱼倾向于寻找藏身之处,而池塘内人们的活动使水变得浑浊。在浑浊的水中,鱼需要浮出水面呼吸空气,这样渔民就更容易看到它们。这为渔民创造了有利的条件,但对鱼却不利,因为它们在这种环境中更容易被捕获。

CFOA的核心理念是通过小组内的合作努力实现最大限度的渔获。个人可以使用工具并合作在复杂的水体中捕鱼,分享各自的捕捞经验。根据这些经验,他们可以辨别最佳的捕鱼方向,并找到更有利的鱼群聚集点。

一、种群初始化

与其他算法一样,初始化公式为:

图片

fisheri,j是第i个渔夫在第j维的位置,ubj和lbj是第j维的上界和下界,r是(0,1)之间的随机数。

作者使用0.5来在迭代过程中公平分配开发和探索的比例。在这个过程中,个体在阶段的前半段(EFs/MaxEFs<0.5)探索全局,随后在阶段的后半段(EFs/MaxEFs≥0.5)进行局部搜索。

二、勘探阶段(EFs/MaxEFs<0.5)

在捕鱼刚开始的时候,鱼类最丰富,渔获率最高,但随着渔民渔获量逐渐减少,导致渔获率下降。该模式中的转换是使用捕获速率参数模拟的,表示为a:

图片

EFs是当前评估的数量,MaxEFs是评估的最大数量。

渔民可以自由选择独立搜索或群体捕获,但当捕获率a较高时,渔民的捕获策略倾向于独立搜索方法,当捕获率a降低时,渔民转向群体捕获方法,我们使用随机数(0,1)进行模拟。当p<a时选择独立搜索,当p≥a时选择群体捕获,p是概率,在(0,1)之间的随机数。

(1)独立搜索(p<a)

渔民根据他人的捕获情况调整自己的探索方向和位置。如果自己所在位置的捕获情况与参考捕获情况相似,则侧重于局部探索。如果参考捕获情况是有利的,他们继续在那个方向搜索。在个人捕获情况良好的情况下,他们进行反向搜索。下图显示了该方法的原理图。更新公式如下:

图片

其中,Exp是渔民以任意posth (pos = 1或2或…或N, p = i)渔民为参考对象获得的经验分析值,取值范围为(- 1,1)。fitmax和fitmin分别为第t次完全位置更新后的最差和最佳适应度值。T表示渔民位置的迭代次数。fishterijT和fishterijT+1表示第i个渔民在第j维和T和T+1迭代后的位置。Rs是(0,1)之间的随机数。Dis是个体与参照物之间的欧几里得距离。s为d维的随机单位向量。根据经验分析,确定主要的行进方向(以渔民到参照人的方向为正方向)和距离。勘探范围R也随Exp的绝对值和当前评价EFs的数量而变化,R小于等于Dis。

图片

(2)群体捕鱼(p≥a)

渔民扩大捕鱼能力,并随机组成3-4人一组,相互合作,包围可疑地点。随着鱼的不断捕获和人的逐渐聚集,渔民运动的偏差程度减小。通过利用每个人独特的移动能力,更精确地探索该地区。该方法的原理图如下图所示。建立模型和公式如下:

图片

c是一组3-4个人,他们的位置没有更新。Centrec为c群包围圈的目标点,即下图中的红橙色点。FishtrcijT+1和FishtrcijT表示在T+1次和T次更新后,c组中第i个渔民在j维中的位置。R2是渔民接近中心的速度,因人而异,取值范围为(0,1)。r3为移动的偏移量,其取值范围为(- 1,1),随着EFs的增加逐渐减小。下图中蓝色箭头是渔民移动的最终方向和距离的二维显示。

图片

三、开发阶段(EFs/MaxEFs≥0.5)

经过上述阶段,一些鱼逃脱而没有被渔民捕获。因此,在此阶段,渔民的分布为:以鱼群为中心,由中部向周边聚集程度逐渐稀疏,向外分布范围逐渐缩小。中心的渔民捕获鱼群,而外围的渔民捕获逃跑的鱼。渔民进行战略性捕捞,共同努力提高捕捞率。我们用高斯分布来模拟这个分布。其分布如下图所示。更新公式如下:

图片

其中,GD为高斯分布函数,总体均值μ在0处,总体方差σ随着评价次数从0-1增大。第i位渔民在T+1次更新后的位置。mean(Fisher)是渔民中心各维均值的矩阵。Gbest为全局最优位置,即下图中的红色圆圈,r4为值为{1,2或3}的随机数,将渔民分布在三个范围内。

图片

算法伪代码

为了使大家更好地理解,这边给出作者算法的流程图和伪代码,非常清晰!

图片

图片

如果实在看不懂,不用担心,可以看下源代码,再结合上文公式理解就一目了然了!

性能测评

原文作者通过CEC2014和CEC2020测试函数,与其他11种优化算法进行了比较,并CFOA应用于数据聚类问题,实验结果表明,CFOA总体上表现出优异而稳定的优化能力,并在面对不同的优化问题时均表现出优异的优化效果。

这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,设置种群数量为30,迭代次数为1000,进行测试!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!

图片

图片

图片

图片

图片

可以看到,这个算法有明显的跳出局部最优的能力!大家应用到各类预测、优化问题中也是一个不错的选择~

参考文献

[1]Jia H, Wen Q, Wang Y, et al. Catch fish optimization algorithm: a new human behavior algorithm for solving clustering problems[J]. Cluster Computing, 2024: 1-38.

完整代码

如果需要免费获得图中的完整测试代码,只需后台回复关键字,不区分大小写:

CFOA

也可后台回复个人需求(比如CFOA-BP)定制以下CFOA算法优化模型(看到秒回):

1.回归/时序/分类预测类:SVM、RVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、SAE、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~

2.组合预测类:CNN/TCN/BiTCN/DBN/Adaboost结合SVM、RVM、ELM、LSTM、BiLSTM、GRU、BiGRU、Attention机制类等均可(可任意搭配非常新颖)~

3.分解类:EMD、EEMD、VMD、REMD、FEEMD、TVFEMD、CEEMDAN、ICEEMDAN、SVMD、FMD等分解模型均可~

4.路径规划类:机器人路径规划、无人机三维路径规划、冷链物流路径优化、VRPTW路径优化等等~

5.优化类:光伏电池参数辨识优化、储能容量配置优化、微电网优化、PID参数整定优化、无线传感器覆盖优化、故障诊断等等均可~~

6.原创改进优化算法(适合需要创新的同学):原创改进2024年的捕鱼优化算法CFOA以及蛇鹫SBOA、蜣螂DBO等任意优化算法均可,保证测试函数效果!

更多免费代码链接:更多代码链接

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值