海星优化算法(SFOA)-2024年12月SCI最新算法-公式原理详解与性能测评
海星优化算法(SFOA)-2024年12月SCI最新算法-公式原理详解与性能测评
导读:海星优化算法(SFOA)是一种新型的元启发式算法,灵感来源于海星的探索、捕食和再生等行为。该算法采用五维和一维搜索模式相结合的混合搜索模式,提高了计算效率。本文将详细介绍SFOA算法的原理、公式推导及性能测评。
原理简介
海星优化算法(StarFish Optimization Algorithm,SFOA)是一种新型的元启发式算法(智能优化算法),灵感来源于海星的探索、捕食和再生等行为。该算法采用五维和一维搜索模式相结合的混合搜索模式提高了计算效率,且原文对比的算法达到了100种,不得不说越来越卷了!该成果由Changting Zhong于2024年12月发表在SCI期刊《Neural Computing and Applications》上!
一、初始化
随机初始化的公式可以用如下方式描述:
式中,Xij表示第i只海星的第j维位置,r表示(0,1)之间的随机数,uj和lj分别为第j维设计变量的上界和下界。
二、勘探阶段
为了模拟海星的探索行为,SFOA算法中建立了探索阶段,模拟海星的五条手臂的搜索能力。在SFOA的探索阶段,提出了一种新的搜索模式,将不同优化问题中五维搜索模式与一维搜索模式相结合。
如果优化问题的维数大于5,则该问题的搜索空间很广,需要海星移动所有五个臂来探索周围环境。因此,建立了这一阶段的数学模型:
式中,ytip和xtip分别表示海星的获得位置和当前位置。XTbestp表示当前最佳位置的p维,p是D维中随机选择的5个维,r表示(0,1)之间的随机数;T为当前迭代次数,Tmax为最大迭代次数,θ在[0, π/2]的范围内。
如果优化问题的维数不大于5 ,则探索阶段采用一维搜索模式更新位置。在这种情况下,海星只有一只手臂移动来搜索食物来源,利用其他海星的位置信息。更新后的位置可以建立为:
式中,XTk1p和XTk2p分别为随机选择的两只海星在p维的位置,A1和A2分别为(- 1,1)之间的两个随机数,p为D维随机选择的数。Et为海星的能量。
三、开发阶段
SFOA在开发阶段考虑了捕食和再生行为,寻求全局解,因此在开发阶段设计了两种更新策略。为了模拟海星的捕食阶段,SFOA采用了平行的双向搜索策略,该策略需要利用其他海星的信息和当前种群的最佳位置。首先计算最佳位置与其他海星之间的五个距离,然后随机选择两个距离作为确认,利用并行双向搜索策略更新每只海星的位置。距离计算公式为:
其中dm是5个获得的全局最佳海星与其他海星之间的距离,mp是5个随机选择的海星。因此,将每只海星在捕食行为中的更新规律建模为:
其中r1和r2为(0,1)之间的随机数,dm中随机选取dm1和dm2。基于并行双向搜索策略,在同一迭代中,候选海星向更好的引导解移动,而其他候选海星则向后退。
如果捕食者捕获海星,海星可能会切断并失去一条手臂以逃避捕获。因此,SFOA的再生阶段只在种群中的最后一个海星中实施(i = N)。由于再生阶段需要几个月的生命,海星的移动速度非常缓慢。因此,我们对再生阶段的更新规则进行建模,位置更新为:
式中T为当前迭代,Tmax为最大迭代次数,N为总体大小。如果得到的位置超出了设计变量的边界,将其位置设为:
算法流程图和伪代码
为了使大家更好地理解,这边给出作者算法的流程图和伪代码,非常清晰!
如果实在看不懂,不用担心,可以看下源代码,再结合上文公式理解就一目了然了!
性能测评
原文作者测试了算法在经典函数、CEC2017和CEC2022上的性能,并比较了100种不同的元启式算法,如海洋捕食者算法、水流优化器(WFO)、LSHADE、LSHADE- cnepsin和LSHADE- spacma。结果表明,SFOA具有求解高维基准函数的能力。
这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,设置种群数量为30,迭代次数为1000,和23年新出的沙猫群优化算法SCSO进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!
可以看到,这个算法在大部分函数上均优于23年新出的SCSO算法,说明该算法性能还是比较不错的!大家应用到各类预测、优化问题中也是一个不错的选择~
参考文献
[1]Zhong C, Li G, Meng Z, et al. Starfish optimization algorithm (SFOA): a bio-inspired metaheuristic algorithm for global optimization compared with 100 optimizers[J]. Neural Computing and Applications, 2024: 1-43.