智能优化算法:蝠鲼觅食优化算法 - 附代码

智能优化算法:蝠鲼觅食优化算法


摘要:蝠鲼觅食优化 (Manta ray foraging optimization,
MRFO)是由 Zhao 等,在 2019 年提出的新型智能仿生群体算法。具有寻优能力强,收敛快的特点。

1.算法原理

该算法是模仿蝠鲼在海洋中的觅食过程,针对不同捕食策略进行数学建模,对蝠鲼个体位置更新的方式进行数学描述,从而实现在复杂解空间中对最优解的搜索。由于位置更新方式的独特性,MRFO 的求解精度与鲁棒性相比于传统群体智能仿生算法也有显著的提升。MRFO 可描述为 3 种觅食行为,包括链式觅食、螺旋觅食以及翻滚觅食。

1.1 链式觅食

链式捕食过程中,蝠鲼种群从头到尾排成一条捕食链。蝠鲼个体下一位置的移动方向与步长是由当前最优解与前一个体位置共同决定。该种位置更新方式数学模型如下:
x i d ( t + 1 ) = { x i d ( t ) + r ( x b e s t d ( t ) − x i d ( t ) ) + α ( x b e s t d − x i d ( t ) ) , i = 1 x i d ( t ) + r ( x i − 1 d ( t ) − x i d ( t ) ) + α ( x b e s t d − x i d ( t ) ) , i = 2 , 3 , . . . , N (1) x_i^d(t+1)=\begin{cases} x_i^d(t) + r(x_{best}^d(t)-x_i^d(t))+\alpha(x_{best}^d - x_i^d(t)),i=1\\ x_i^d(t) + r(x_{i-1}^d(t)-x_i^d(t))+\alpha(x_{best}^d - x_i^d(t)),i=2,3,...,N \end{cases}\tag{1} xid(t+1)={xid(t)+r(xbestd(t)xid(t))+α(xbestdxid(t)),i=1xid(t)+r(xi1d(t)xid(t))+α(xbestdxid(t)),i=2,3,...,N(1)

α = 2 r ∣ l o g ( r ) ∣ (2) \alpha = 2r\sqrt{|log(r)|}\tag{2} α=2rlog(r) (2)

式中, x i d ( t ) x_i^d(t) xid(t)表示第 t t t 代、第 i i i 个个体在 d d d 维上的位置;r表示在[0,1]上均匀分布的随机数; x b e s t d ( t ) x_{best}^d(t) xbestd(t)表示第 t t t 代最优个体在第 d d d 维上的位置; N N N表示个体数量。

1.2 螺旋觅食

当蝠鲼个体发现某猎物之后,其会采用螺旋的方式向其靠近。MRFO 中蝠鲼个体由于链式捕食方式的存在,其在向当前解螺旋移动的过程中,同样还受到前一个个体的影响。该种位置更新方式数学模型如下:

t / T > r a n d t/T>rand t/T>rand,描述蝠鲼螺旋状运动的数学方程可以定义为:
x i d ( t + 1 ) = { x b e s t d ( t ) + r ( x b e s t d ( t ) − x i d ( t ) ) + β ( x b e s t d − x i d ( t ) ) , i = 1 x b e s t d ( t ) + r ( x i − 1 d ( t ) − x i d ( t ) ) + β ( x b e s t d − x i d ( t ) ) , i = 2 , 3 , . . . , N (3) x_i^d(t+1)=\begin{cases} x_{best}^d(t) + r(x_{best}^d(t)-x_i^d(t))+\beta(x_{best}^d - x_i^d(t)),i=1\\ x_{best}^d(t) + r(x_{i-1}^d(t)-x_i^d(t))+\beta(x_{best}^d - x_i^d(t)),i=2,3,...,N \end{cases} \tag{3} xid(t+1)={xbestd(t)+r(xbestd(t)xid(t))+β(xbestdxid(t)),i=1xbestd(t)+r(xi1d(t)xid(t))+β(xbestdxid(t)),i=2,3,...,N(3)

β = 2 e r 1 T − i + 1 T s i n ( 2 π r 1 ) (4) \beta = 2e^{r_1\frac{T-i+1}{T}}sin(2\pi r_1)\tag{4} β=2er1TTi+1sin(2πr1)(4)

中, T T T 为迭代总次数; r 1 r_1 r1 在[0,1]上均匀分布随机数。当
t / T ≤ r a n d t/T\leq rand t/Trand,描述蝠鲼螺旋状运动的数学方程可以定义为:
x i d ( t + 1 ) = { x r a n d d ( t ) + r ( x r a n d d ( t ) − x i d ( t ) ) + β ( x r a n d d − x i d ( t ) ) , i = 1 x r a n d d ( t ) + r ( x i − 1 d ( t ) − x i d ( t ) ) + β ( x r a n d d − x i d ( t ) ) , i = 2 , 3 , . . . , N (5) x_i^d(t+1)=\begin{cases} x_{rand}^d(t) + r(x_{rand}^d(t)-x_i^d(t))+\beta(x_{rand}^d - x_i^d(t)),i=1\\ x_{rand}^d(t) + r(x_{i-1}^d(t)-x_i^d(t))+\beta(x_{rand}^d - x_i^d(t)),i=2,3,...,N \end{cases} \tag{5} xid(t+1)={xrandd(t)+r(xrandd(t)xid(t))+β(xranddxid(t)),i=1xrandd(t)+r(xi1d(t)xid(t))+β(xranddxid(t)),i=2,3,...,N(5)

x r a n d d = L b d + r ( U b d − L b d ) (6) x_{rand}^d = Lb^d+r(Ub^d-Lb^d)\tag{6} xrandd=Lbd+r(UbdLbd)(6)

x r a n d d ( t ) x_{rand}^d(t) xrandd(t)表示第 t t t代、第 d d d维的随机位置。 U b d , L b d Ub^d,Lb^d Ubd,Lbd表示变量取值上、下界。

1.3 翻滚觅食

在翻滚捕食中,蝠鲼个体以当前最优解作为翻滚支点,翻滚至与其当前位置成镜像关系的另一侧。其数学模型表达如下:
x i d ( t + 1 ) = x i d ( t ) + S ( r 2 x b e s t d − r 3 x i d ( t ) ) , i = 1 , 2 , . . . , N (7) x_i^d(t+1) = x_i^d(t)+S(r_2x_{best}^d-r_3x_i^d(t)),i=1,2,...,N \tag{7} xid(t+1)=xid(t)+S(r2xbestdr3xid(t)),i=1,2,...,N(7)

S = 2 (7) S = 2\tag{7} S=2(7)

中, r 2 r_2 r2 r 3 r_3 r3都是在[0,1]上均匀分布的随机数。

算法流程

step1.设定算参数,初始化种群

step2. 计算适应度值

step3.判断rand<0.5。如果成立,则执行螺旋觅食。如果不成立则执行链式觅食。

step4.计算适应度值,更新最优位置

step5.执行翻滚觅食,更新位置

step6.计算适应度值,更新最优位置

step7.判断是否满足结束条件,如果满足则输出最优值,否则重复执行step2-step7.

2.实验结果

在这里插入图片描述

3.参考文献

[1]李璟楠,乐美龙.多种群蝠鲼觅食优化求解多跑道机场航班排序[J].航空计算技术,2020,50(06):47-51.

[1]Zhao Weiguo,Zhang Zhenxing,Wang Liying. Manta Ray Foraging Optimization:An Effective Bio-inspired Optimizer for Engineering Applications[J]. Engineering Applications of Artificial Intelligence,2020,87:103300.

4.Matlab代码

个人资料介绍

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值