【智能算法】磷虾群算法(KHA)原理及实现

在这里插入图片描述


1.背景

2012年,Gandomi等人受到自然界中磷虾生存行为启发,提出了磷虾群算法(Krill Herd Algorithm, KHA)。

2.算法原理

2.1算法思想

KHA受南极鳞虾群觅食行为和运动规律的启发,磷虾群个体位置随时间不断变化,KHA目标是通过总结每次个体变化的规律去寻找磷虾群中最优磷虾个体的位置。

2.2算法过程

个体在运动过程中受到的影响因素主要包括:

  • 周围磷虾个体对它的影响Ni
  • 食物的影响Fi
  • 个体自身随机物理扩散Di

磷虾个体随时间的运动数学方程:
d X i / d t = N i + F i + D i (1) d_{X_{i}}/d_{t}=N_{i}+F_{i}+D_{i}\tag{1} dXi/dt=Ni+Fi+Di(1)

诱导运动:

磷虾个体的运动首先受到它周围磷虾对它的诱导,根据磷虾受周围环境影响的运动规律:
N i + 1 = N max ⁡ α i + ω n N i (2) N_{i+1}=N^{\max}\alpha_{i}+\omega_{n}N_{i}\tag{2} Ni+1=Nmaxαi+ωnNi(2)
其中,Ni+1为磷虾诱导更新后的位置;Nmax为最大诱导速度;Ni为磷虾诱导更新前的位置;wn为诱导运动惯性权重;ai为诱导运动系数:
α i = α i b e s t + α i l o c a l (3) \alpha_{i}=\alpha_{i}^{best}+\alpha_{i}^{local}\tag{3} αi=αibest+αilocal(3)
abest,alocal分别为全局最优磷虾的引导系数和周围磷虾引导系数。影响范围是以该磷虾为圆心的圆形区域:
r i j = 1 5 N P ∑ j = 1 N P ∥ x i − x j ∥ (4) r_{ij}=\frac{1}{5NP}\sum_{j=1}^{NP}\Bigl\Vert x_i-x_j\Bigr\Vert \tag{4} rij=5NP1j=1NP xixj (4)

觅食运动:

磷虾的运动规律第二是受到食物的影响:
F i + 1 = V f β i + ω f F i (5) F_{i+1}=V_{f}\beta_{i}+\omega_{f}F_{i}\tag{5} Fi+1=Vfβi+ωfFi(5)
其中,wf,Vf为觅食惯性系数和最大觅食速度, β i \beta_i βi为觅食运动方向:
β i = β i f o o d + β i b e s t (6) \beta_{i}=\beta_{i}^{food}+\beta_{i}^{best}\tag{6} βi=βifood+βibest(6)
其中, β f o o d , β b e s t \beta_{food},\beta_{best} βfood,βbest分别为“虚拟食物”的诱导方向和个体磷虾历史最优适应度的诱导方向。

自由扩散

磷虾个体运动的最后一个影响因素是个体随机物理扩散:
D i + 1 = D m a x ( 1 − t t m a x ) δ (7) D_{i+1}=D_{\mathrm{max}}(1-\frac{t}{t_{\mathrm{max}}})\delta \tag{7} Di+1=Dmax(1tmaxt)δ(7)
Dmax为最大随机物理扩散速度。

流程图
在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Gandomi A H, Alavi A H. Krill herd: a new bio-inspired optimization algorithm[J]. Communications in nonlinear science and numerical simulation, 2012, 17(12): 4831-4845.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值