2025年新算法——人工旅鼠优化算法,MATLAB代码免费获取
注:该算法已按照智能优化算法APP标准格式进行整改,可直接集成到APP中,方便大家与自己的算法进行对比。
人工旅鼠算法(Artificial lemming algorithm,ALA)可以对自然界中旅鼠的四种不同行为进行数学建模:长途迁移,挖洞,觅食和躲避捕食者。具体而言,长距离迁移和挖洞行为致力于高度探索搜索域,而觅食和逃避捕食者行为在优化过程中提供利用。此外,ALA采用了一种能量减少机制,可以动态调整勘探和开发之间的平衡,从而增强其规避局部最优解并更稳健地收敛到全局解的能力。该成果于2025年发表在计算机领域2区期刊Artificial Intelligence Review上,目前被引6次。
根据旅鼠的特性,它们的主要习性包括长途迁徙、挖坑、觅食、躲避天敌。旅鼠及其独特的行为可以在自然界中观察到,如下图所示。
第一种行为是长距离迁移,通常发生在人口过剩导致食物短缺的时候。这种迁徙并不是刻意寻找新的栖息地,而是一种自然的种群波动。第二个行为,挖坑,是旅鼠生存和繁衍的关键策略。旅鼠是一种特殊的挖掘者,它们用强壮的前肢和锋利的爪子在地下挖掘复杂的隧道和洞穴系统。第三种行为是觅食。作为食草动物,旅鼠主要以草、种子、浆果和植物根为食。牠们会在地表或地下觅食,利用牠们敏锐的嗅觉和听觉来寻找食物。冬天,旅鼠会在雪地里挖隧道寻找食物。此外,旅鼠会储存食物以备不时之需。旅鼠的觅食行为使它们能够适应多种环境,在自然生态系统中发挥着至关重要的作用。通过觅食,旅鼠获得了生存和繁殖所需的营养和能量。
1、算法原理详解
(1)初始化
ALA是一种基于种群的算法,在进入迭代过程之前需要初始化所有搜索代理的位置。所有初始候选解的集合是由给定问题的上界和下界之间的N(总体大小)行和Dim(维度数)列组成的矩阵,如下式所示:
其中,rand是0-1范围内的随机值,LBj表示第j维的下限,UBj是第j维的上限。
(2) 长距离迁移(勘探)
在第一种行为中,旅鼠会随机地进行长距离的迁徙,当食物因人口过剩而稀缺时,旅鼠会根据当前位置和随机个体在种群中的位置,探索搜索空间,寻找食物资源丰富的栖息地,从而获得更好的生存条件和资源。同时,值得注意的是,旅鼠迁徙的方向和距离并不是一成不变的,会受到生态环境等多种因素的影响。为了对这种行为进行建模,提出了以下等式:
其中, 表示第i个搜索代理在第(t + 1)次迭代时的位置。 表示当前最优解。F被用作改变搜索方向的标志, 代表表征布朗运动的随机数向量,它利用动态和统一的步长来探索搜索空间中的一些潜在区域。
标准布朗运动的步长是通过方差为1、均值为0的正态分布的概率密度函数得到的,如下式所示
是一个大小为1 ×Dim的向量,其元素是在区间[-1,1]中均匀分布的随机数,该向量控制种群中当前最优个体和随机个体的移动,并用于表示迁移过程中个体之间的相互作用。下图说明了二维长距离迁移行为的数学建模原理。
(3) 挖洞(勘探)
旅鼠的第二种行为是在栖息地挖掘洞穴,形成复杂的隧道,提供安全的住所和食物储存。旅鼠会根据当前洞穴的位置和种群中随机个体的位置随机挖掘新的洞穴。这种设计有助于它们迅速逃离捕食者的威胁,更有效地寻找食物。下图显示了一个简单的挖洞示例,该行为的数学表达如下式:
其中L是与当前迭代次数相关的随机数。 表示从总体中随机选择的搜索个体,b是1和N之间的随机整数索引值。L和 被用来描述旅鼠个体在挖掘新洞穴时的相互作用。L的值计算如下:
(4) 觅食(开发)
在觅食行为中,旅鼠在其栖息地的洞穴内广泛而随意地移动,依靠其敏锐的嗅觉和听觉来定位食物来源。旅鼠通常在其栖息地内建立一个相对较小的觅食区,这取决于食物的丰富程度和可用性。为了摄取尽可能多的食物,旅鼠会在觅食区域内随机游荡。下图显示旅鼠的随机觅食行为。螺旋缠绕机制被认为是对该阶段进行建模,如下所示:
其中,螺旋表示觅食期间随机搜索的螺旋形状。
其中,半径表示觅食范围的半径,其为当前位置与最优解之间的欧几里得距离。
(5)躲避天敌(开发)
在最后阶段,建模重点关注旅鼠在遇到危险时的回避和保护行为。洞穴是旅鼠的避难所。一旦发现敌人,旅鼠会用它们非凡的奔跑能力逃回洞穴。与此同时,旅鼠也会做出欺骗性的动作来逃避捕食者的追捕。下图说明旅鼠躲避捕食者的行为。相应的数学表达式如下:
其中G是旅鼠的逃逸系数,代表它们的逃逸能力,随着迭代次数的增加而降低、Tmax表示最大迭代次数。Levy(·)是Lévy飞行函数,用来模拟旅鼠在逃跑时的欺骗性动作。Lévy飞行函数表示如下:
其中u和ν是0-1区间内的随机值,β是等于1.5的常数。
ALA算法的流程图如下图所示:
ALA算法的伪代码如下图所示:
2 结果展示
在23个经典函数中对比一下吧!






评价:此算法的效果不得不说还是相当不错的,在F12\F13\F8这几个比较难的函数中表现出不错的寻优能力。
3 代码展示
function [Score,Position,Convergence_curve]=ALA(N,Max_iter,lb,ub,dim,fobj)lb=ones(1,dim).*(lb); % Lower limit for variablesub=ones(1,dim).*(ub);X=initialization(N,dim,ub,lb);% Initialize populationPosition=zeros(1,dim); % Best positionScore=inf; %Best score (initially infinite)fitness=zeros(1,size(X,1));% Fitness of each individualConvergence_curve=[];% Store convergence informationvec_flag=[1,-1]; % Directional flag%% Record the initial optimal solution and fitnessfor i=1:size(X,1) fitness(1,i)=fobj(X(i,:)); if fitness(1,i)<Score Position=X(i,:); Score=fitness(1,i); endendIter=1; %Iteration number%% Main optimization loopwhile Iter<=Max_iter RB=randn(N,dim); % Brownian motion F=vec_flag(floor(2*rand()+1)); % Random directional flag theta=2*atan(1-Iter/Max_iter); % Time-varying parameter for i=1:N E=2*log(1/rand)*theta; if E>1 if rand<0.3 r1 = 2 * rand(1,dim) - 1; Xnew(i,:)= Position+F.*RB(i,:).*(r1.*(Position-X(i,:))+(1-r1).*(X(i,:)-X(randi(N),:))); else r2 = rand ()* (1 + sin(0.5 * Iter)); Xnew(i,:)= X(i,:)+ F.* r2*(Position-X(randi(N),:)); end else if rand<0.5 radius = sqrt(sum((Position-X(i, :)).^2)); r3=rand(); spiral=radius*(sin(2*pi*r3)+cos(2*pi*r3)); Xnew(i,:) =Position + F.* X(i,:).*spiral*rand; else G=2*(sign(rand-0.5))*(1-Iter/Max_iter); Xnew(i,:) = Position + F.* G*Levy(dim).* (Position - X(i,:)) ; end end end %% Boundary check and evaluation for i=1:size(X,1) Flag4ub=Xnew(i,:)>ub; Flag4lb=Xnew(i,:)<lb; Xnew(i,:)=(Xnew(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb; % Boundary correction newPopfit=fobj(Xnew(i,:)); % Evaluate new solution if newPopfit<fitness(i) X(i,:)=Xnew(i,:); fitness(1,i)=newPopfit; end if fitness(1,i)<Score Position=X(i,:); Score=fitness(1,i); end end %% Record convergence curve Convergence_curve(Iter)=Score; Iter=Iter+1; endtocendfunction o=Levy(d)beta=1.5;sigma=(gamma(1+beta)*sin(pi*beta/2)/(gamma((1+beta)/2)*beta*2^((beta-1)/2)))^(1/beta);u=randn(1,d)*sigma;v=randn(1,d);step=u./abs(v).^(1/beta);o=step;end
参考文献
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.
本文算法完整代码获取
点击下方卡片,后台回复关键词:
TGDM840
更多推荐



所有评论(0)