1.摘要
本文提出了一种人工旅鼠算法(ALA),这是一种基于自然界旅鼠行为的仿生元启发式算法,该算法通过数学建模模拟了旅鼠的四种关键行为:长距离迁徙、挖洞、觅食和躲避捕食者。长距离迁徙和挖洞行为专注于对搜索空间的广泛探索,而觅食和躲避捕食者行为则有助于在优化过程中实现局部开发。ALA还引入了能量递减机制,能够动态调整探索与开发之间的平衡,增强其避免局部最优解的能力,并提升全局收敛的鲁棒性。
2.算法原理
长途迁徙(探索)
在人工旅鼠算法(ALA)中,旅鼠的第一个行为是当食物因过度繁殖而匮乏时,随机进行长距离迁徙。旅鼠通过当前位置和种群中随机个体的位置来探索搜索空间,寻找食物资源丰富的栖息地,以改善其生存条件和获取更多资源:
Z ⃗ i ( t + 1 ) = Z ⃗ b e s t ( t ) + F × B M → × ( R ⃗ × ( Z ⃗ b e s t ( t ) − Z ⃗ i ( t ) ) + ( 1 − R ⃗ ) × ( Z ⃗ i ( t ) − Z ⃗ a ( t ) ) ) \vec{Z}_{i}\left(t+1\right)=\vec{Z}_{best}\left(t\right)+F\times\overrightarrow{BM}\times\left(\vec{R}\times\left(\vec{Z}_{best}\left(t\right)-\vec{Z}_{i}\left(t\right)\right)+\left(1-\vec{R}\right)\times\left(\vec{Z}_{i}\left(t\right)-\vec{Z}_{a}\left(t\right)\right)\right) Zi(t+1)=Zbest(t)+F×BM×(R×(Zbest(t)−Zi(t))+(1−R)×(Zi(t)−Za(t)))
挖洞(探索)
旅鼠的第二个行为是在人类栖息地中挖掘洞穴,形成复杂的隧道,为它们提供安全的庇护所和食物储存空间。旅鼠会根据当前洞穴的位置以及种群中随机个体的位置,随机挖掘新的洞穴:
Z ⃗ i ( t + 1 ) = Z ⃗ i ( t ) + F × L × ( Z ⃗ b e s t ( t ) − Z ⃗ b ( t ) ) \vec{Z}_{i}\left(t+1\right)=\vec{Z}_{i}\left(t\right)+F\times L\times\left(\vec{Z}_{best}\left(t\right)-\vec{Z}_{b}\left(t\right)\right) Zi(t+1)=Zi(t)+F×L×(Zbest(t)−Zb(t))
觅食(开发)
旅鼠的第三个行为是随机且广泛地在栖息地的洞穴内移动,依靠敏锐的嗅觉和听觉来寻找食物源。旅鼠通常会在栖息地内设立一个相对较小的觅食区域,其大小取决于食物的丰富程度和可获得性。为了尽可能多地获取食物,旅鼠会在觅食区域内随意游走:
Z ⃗ i ( t + 1 ) = Z ⃗ b e s t ( t ) + F × s p i r a l × r a n d × Z ⃗ i ( t ) \vec{Z}_{i}\left(t+1\right)=\vec{Z}_{best}\left(t\right)+F\times spiral\times rand\times\vec{Z}_{i}\left(t\right) Zi(t+1)=Zbest(t)+F×spiral×rand×Zi(t)
其中,螺旋表示觅食过程中随机搜索的螺旋形状,由参数表示:
s p i r a l = r a d i u s × ( sin ( 2 × π × r a n d ) + cos ( 2 × π × r a n d ) ) r a d i u s = ∑ j = 1 D i m ( z b e s t , j ( t ) − z i , j ( t ) ) 2 \begin{aligned} spiral= & radius\times\left(\sin\left(2\times\pi\times rand\right)+\cos\left(2\times\pi\times rand\right)\right) \\ \\ & radius=\sqrt{\sum_{j=1}^{Dim}\left(z_{best,j}\left(t\right)-z_{i,j}\left(t\right)\right)^{2}} \end{aligned} spiral=radius×(sin(2×π×rand)+cos(2×π×rand))radius=j=1∑Dim(zbest,j(t)−zi,j(t))2
躲避天敌(开发)
洞穴作为旅鼠的避难所,一旦探测到捕食者的存在,旅鼠会迅速利用其出色的奔跑能力逃回洞穴:
Z ⃗ i ( t + 1 ) = Z ⃗ b e s t ( t ) + F × G × L e v y ( D i m ) × ( Z ⃗ b e s t ( t ) − Z ⃗ i ( t ) ) G = 2 × ( 1 − t T m a x ) \begin{aligned} \vec{Z}_i\left(t+1\right) & =\vec{Z}_{best}\left(t\right)+F\times G\times Levy\left(Dim\right)\times\left(\vec{Z}_{best}\left(t\right)-\vec{Z}_i\left(t\right)\right) \\ G & =2\times\left(1-\frac{t}{T_{\mathrm{max}}}\right) \end{aligned} Zi(t+1)G=Zbest(t)+F×G×Levy(Dim)×(Zbest(t)−Zi(t))=2×(1−Tmaxt)
流程图
伪代码
3.结果展示
4.参考文献
[1] Xiao Y, Cui H, Khurma R A, et al. Artificial lemming algorithm: a novel bionic meta-heuristic technique for solving real-world engineering optimization problems[J]. Artificial Intelligence Review, 2025, 58(3): 84.