吸血水蛭优化算法(BSLA)-2024年9月SCI新算法-公式原理详解与性能测评 Matlab代码免费获取

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

目录

原理简介

一、种群初始化

二、BSLO的数学模型

(1)定向水蛭的勘探策略

(2)定向水蛭的开发策略

(3)定向水蛭的转换机制

(4)无方向水蛭的搜索策略

(5)Re-tracking策略

算法伪代码

性能测评

参考文献

完整代码


吸血水蛭优化算法(Blood-sucking leech optimizer, BSLO)是一种新型的元启发式算法(智能优化算法),灵感来自吸血水蛭的这些觅食行为。这个算法包含了莱维飞行等策略,公式相对来说也比较新颖,值得一试!该成果由Jianfu Bai等人于2024年9月发表在SCI二区期刊《Advances in Engineering Software》上!

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

原理简介

吸血水蛭可以有效地定位猎物并捕获猎物。当吸血水蛭在稻田里咬人的脚,吸人的血一段时间后,就会被人类移走,随机扔回稻田里。这些水蛭会再次寻找人类。BSLO的灵感来自吸血水蛭的这些觅食行为。

一、种群初始化

BSLO首先在解空间中初始化一组随机分布的候选解:

其中rand取[0,1]中的一个随机值,ub和lb分别表示优化问题的上界和下界。

二、BSLO的数学模型

吸血水蛭的觅食行为如图1所示。水蛭分为定向水蛭和无定向水蛭两种,分别如式(4)和式(5)所示。当水蛭接触到人类产生的圆波刺激时,定向水蛭可以向α摄氏度的猎物游去。其他无方向的水蛭在搜索空间中随机游动。在叮咬人类一段时间后,水蛭会被人类随机扔回稻田,再次寻找人类。

其中N1和N2是定向水蛭的数量和无方向的水蛭。floor是MATLAB中的四舍五入函数。T和t分别表示最大迭代和当前迭代。M为比值参数,决定定向水蛭和无方向水蛭的数量,本文设为0.8。因此,由于它们的觅食行为,大多数水蛭一开始都能定向搜寻人类。而且,由于越来越多的水蛭可以找到人类,它们的数量随着迭代的增加而增加。

(1)定向水蛭的勘探策略

水蛭可以在远离人类的L区域进行搜索,这被认为是水蛭的探索阶段。对水蛭的探索如式(6)所示。

其中t表示当前迭代次数,Xt (i,j)和Xt+1(i,j)分别是第i条水蛭在当前和下一次迭代中的第j个位置。k是[1,D]中的随机整数。Xt(i,k)表示第i条水蛭的第k个随机位置。Xt+1(i,j)的后两个公式提供了当前维度与其他维度之间的联系,这意味着第i个水蛭的其他维度位置可以影响第i个水蛭的下一个当前维度位置。该方法可以增加勘探阶段的多样性,但对第i条水蛭的下第j条位置的主要影响仍然是当前的维度位置。因此,a非常接近于1,本文设为0.97。rand是[0,1]范围内的随机值。当rand小于a时,由前两个公式计算Xt+1(i,j)。否则,由后两个公式计算Xt+1(i,j)。猎物(j)表示到目前为止得到的最优解的第j个位置。对于水蛭来说,W1是一个微小的干扰系数,这也增加了水蛭在勘探阶段的多样性,如式(7)所示。L1和L2是L的两种大小,由式(8)和式(9)计算得出。当第i条水蛭的下一个第j个位置受到当前维度位置的影响时,选择L1。否则,选择L2。

其中b为一个小值,以确保扰动系数W1非常小,设为0.001。LV(i,j)是由式(10)计算的随机向量,它可以提供随机扰动。

其中r1表示[-1,1]中的随机值,k2是随机整数,从[1,floor(N×(1+t))]给出。PD称为感知距离,用来模拟水蛭感知到的距离,由式(12)计算。

其中Levy(y)为levy飞行分布函数,μ和v取[0,1]中的随机值,σ根据式(11)中的第二个表达式计算,β由式(14)计算。

其中r2是[-1,1]中的随机值。

其中β随着迭代次数的增加从1.5增加到2,这可以使Levy(y)的值减小。因此,水蛭可以在开始时大踏步地寻找空间解,在随后的迭代中以小步骤开发潜在区域,这有助于水蛭寻找人类。

(2)定向水蛭的开发策略

在勘探阶段后,N1水蛭逐渐接近人类,暴露于更强烈的刺激,然后获得人类的电位区。之后,水蛭在靠近人类的L区域进入开采阶段,由式(15)计算:

其中W1是猎物的一个很小的扰动系数,同样由式(7)计算得到。W1的值与探索阶段的差值是基于迭代的。当t<0.1×t时,b的值与勘探阶段相同。经过多次迭代(t≥0.1×t),水蛭找到了势区。扰动系数越小,求最优解的精度越高。因此,b被设置为0.00001。L3和L4是L的两种大小,由式(16)和式(17)计算。如勘探阶段所述,当前尺寸位置仍然是影响开采阶段下一个第i水蛭第j位的主要因素。因此,当rand<a时选择L3,否则选择L4:

其中r3是[-1,1]范围内的随机值,PD由式(12)计算。

(3)定向水蛭的转换机制

勘探和开发阶段需要一个转换机制。感知距离PD是为了模仿水蛭对人类的感知距离而设计的。大多数定向水蛭一开始都会探索人类。因此,大多数水蛭在一开始就感觉到自己离人类很远,所以大多数PD值都很大。由于一些水蛭初始化后更接近人类,所以PD在开始时很少值很小。为了完全模拟这种情况,我们用式(12)来计算PD,其中式(12)是基于如式(13)所示的两种场景。

随着迭代次数的增加,越来越多的水蛭最终可以找到或接近最优解。因此,PD逐渐接近于零。当PD>1时,水蛭感知到离人类较远,BSLO进入勘探阶段。否则,水蛭会觉得自己更接近人类,BSLO就会进入开发阶段。迭代得到的PD值如图3所示。可以看出,定向水蛭主要在开始时进行勘探,在后期迭代中进行开发。而且,开发存在于整个迭代中。

(4)无方向水蛭的搜索策略

没有方向的水蛭可以随意地在自己周围徘徊,远离人类,或者在人类周围徘徊。这些水蛭的下一个位置由式(18)得到。

两种情况的选择概率是相等的。LV2(i,j)也是Levy飞行分布函数。为了避免在只有正界的问题上浪费太多无意义的分布,将LV2(i,j)分为两种情况,如式(19)所示。

当问题只有非负界(lb≥0)时,LV2(i,j)取LV(i,j)的绝对值,否则,LV2(i,j)等于LV(i,j)。

(5)Re-tracking策略

一些水蛭在多次探索和开发阶段(记为t1)后,成功找到人类并进行吸血。当在稻田播种的人感到刺痛时,他们会随机地将附着在脚上的水蛭甩到稻田中。这个过程会周期性地发生(记为t2),因此需要比较最优解(Preyt-t2)和Xti的适应度值,看它们是否相等。之后,这些被扔出的水蛭可以再次寻找人类。本文将t1和t2设定为20。这些被扔出水蛭的位置由公式(20)给出:

其中F(Xti)和F(Preyt-t2)是Xt i和Preyt¶t2的适应度值。当t>t1且F(Xti)= F(Preyt-t2)时,Xi被重新分配,这有利于逃避局部最优解。

算法伪代码

以下提供APO算法的伪代码,非常清晰!

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

性能测评

原文作者在23个经典基准函数、CEC2017、CEC2019以及5个经典工程问题,验证了BSLO的优越性与有效性。

这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与经典的鲸鱼优化算法WOA进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!

可以看到,这个算法和其他算法有些不同,在F1-F4的时候能直接找到最优值0,因此后面的迭代曲线没有显示,不知道是不是作者在设计算法的时候有直接趋向于0点的策略~另外,在其他函数中表现也都是非常不错的,大家应用到各类预测、优化问题中是一个不错的选择~

参考文献

[1]Bai J, Nguyen-Xuan H, Atroshchenko E, et al. Blood-sucking leech optimizer[J]. Advances in Engineering Software, 2024, 195: 103696.

完整代码

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

BSLO

也可点击下方小卡片,再后台回复个人需求(比如BSLO-SVM)定制以下BSLO算法优化模型(看到秒回):

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路径优化、DBSCAN聚类、微电网优化、无线传感器覆盖优化、故障诊断等等均可~

5.原创改进优化算法(适合需要创新的小伙伴):原创改进2024年的BSLO优化算法以及黑翅鸢BKA、蜣螂DBO等任意优化算法均可,保证测试函数效果!

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

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值