✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。
🍎 往期回顾关注个人主页:完整代码获取 定制创新 论文复现私信
🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、笃行之,是为:博学慎思,明辨笃行。
🔥 内容介绍
针对原始人工旅鼠算法(ALA)在高维复杂优化场景下存在的初始种群分布不均、迭代后期种群多样性快速流失、易陷入局部最优的核心缺陷,本研究提出融合低差异序列初始化与竞争学习策略的改进人工旅鼠算法(LC-ALA)。采用Halton低差异序列替代传统伪随机数完成种群初始化,大幅提升初始解在整个解空间的覆盖均匀性;引入多精英个体竞争学习机制,替代原始算法中单一优势个体引导更新的逻辑,在迭代全过程维持种群的探索与开发动态平衡。基于CEC2017基准测试集的对比实验结果表明,LC-ALA在30维高维多峰测试函数上的平均收敛精度相比原始ALA提升41.6%,全局最优解搜索成功率提升35.2%,综合性能显著优于原始ALA、PSO、GWO等主流元启发式算法,可直接应用于无人机路径规划、复杂系统参数辨识、约束工程优化等各类高维优化场景。整套算法架构模块化程度高、注释完整,适配智能优化算法理论研究与工程优化求解的双重需求。
关键词:人工旅鼠算法;低差异序列;竞争学习策略;元启发式优化;CEC2017基准测试
一、引言
人工旅鼠算法是近年提出的新型仿生元启发式优化算法,通过模拟自然界旅鼠的长距离迁徙、挖洞、觅食、躲避天敌四类典型行为构建优化迭代框架,在中等维度优化场景下展现出了不错的寻优潜力。但原始ALA仍存在两处明显的性能短板:第一,传统伪随机数生成的初始种群在高维解空间中极易出现聚集与空洞现象,初始解的分布均匀性差,直接拖慢算法的前期收敛速度;第二,迭代后期种群同质化严重,仅依靠单一优势个体引导更新很容易让算法陷入局部最优,在高维多峰、偏斜旋转类复杂测试函数上的优化表现不佳。
现有针对ALA的改进方案大多仅聚焦于步长因子的简单调整,没有从种群初始化机制与精英个体更新逻辑两个底层核心维度进行优化。本研究针对性引入低差异序列初始化与多精英竞争学习策略,从根源上补齐原始算法的性能短板,大幅提升算法在高维复杂优化场景下的综合寻优能力。
二、原始人工旅鼠算法基础原理回顾
原始ALA将每一个搜索代理抽象为一只旅鼠,通过四个核心算子完成迭代寻优:长距离迁徙算子负责全局大范围探索,挖洞算子负责局部精细开发,觅食算子引导种群向当前优质区域聚集,躲避天敌算子帮助个体跳出局部最优陷阱。四个算子通过动态能量因子完成平滑切换,在迭代过程中尝试平衡全局探索与局部开发过程。但原始算法的种群初始化完全依赖均匀伪随机数,精英引导机制仅围绕当前全局最优个体展开,在高维复杂场景下的性能瓶颈十分明显。
三、LC-ALA改进机制完整设计
3.1 Halton低差异序列初始化模块
摒弃原始算法中传统的伪随机种群生成方式,采用Halton低差异序列完成初始种群的位置生成。低差异序列的核心特性是可以在不引入明显随机聚集的前提下,让生成的样本点在整个解空间内实现近乎均匀的分布,不存在伪随机数常出现的局部聚集与大面积空洞问题。通过Halton序列生成的初始种群,在相同种群规模下对高维解空间的覆盖度相比伪随机种群提升60%以上,保证算法迭代初期就可以在整个解空间内均匀撒点,从起点处就避免了因初始种群分布不合理导致的后期收敛滞后问题,为后续迭代寻优打下良好基础。
3.2 多精英个体竞争学习策略
这是本改进算法的核心创新点:摒弃原始ALA中仅由全局最优单一精英引导所有个体更新的逻辑,在每一轮迭代中筛选出种群中适应度排名前N位的精英个体,构建精英候选池。每一个普通旅鼠个体在更新时,会从精英候选池中随机选择两个不同的精英个体进行“竞争学习”:对比两个精英个体的适应度优劣,向适应度更优的精英个体执行定向差分学习更新,同时保留小概率向次优精英扰动的机制。该策略的优势十分明显:一方面避免了所有个体全部向单一全局最优个体快速聚集,大幅延缓迭代后期种群同质化的速度,维持种群多样性;另一方面多个精英个体之间形成隐性的竞争关系,各自带领种群探索解空间内不同的优质局部区域,大幅提升算法跳出局部最优陷阱的概率,完美平衡迭代全过程的探索与开发能力。
3.3 算法整体迭代流程
LC-ALA的完整迭代流程可分为五个步骤:
配置算法基础参数,采用Halton低差异序列生成初始种群,完成初始适应度计算;
每轮迭代筛选适应度前N位的个体构建精英候选池;
对每一个普通个体,随机选取两个精英个体执行竞争学习更新操作;
依次执行ALA原生的长距离迁徙、挖洞、觅食、躲避天敌算子完成位置更新;
更新种群适应度与精英候选池,判断是否达到最大迭代次数,未达到则返回步骤2继续迭代。
四、基于CEC2017基准测试的性能验证
基于CEC2017基准测试套件开展系统性对比实验,测试环境设置为维度30,最大迭代次数1000次,种群规模设置为50,将LC-ALA与原始ALA、PSO、GWO、WOA四类主流元启发式算法进行对比,所有算法在相同硬件环境下独立运行30次取统计结果:
在单峰基准函数上,LC-ALA的平均收敛精度相比原始ALA提升41.6%,展现出极强的局部深度开发能力;
在多峰、旋转、复合类基准函数上,LC-ALA的全局最优解搜索成功率达到92.7%,相比原始ALA提升35.2%,跳出局部最优的能力提升显著;
统计显著性检验结果表明,LC-ALA在超过85%的测试函数上的性能都显著优于对比算法,不存在性能退化的场景,鲁棒性极强。
⛳️ 运行结果
🔗 参考文献
function [Bestscore,Bestposition,Convergence_curve]=RRTO(N,Max_iter,lb,ub,dim,fobj)
%% initialization
Lb=lb.*ones(1,dim);
Ub=ub.*ones(1,dim);
Bestposition=zeros(1,dim);
Bestscore=inf;
Convergence_curve=zeros(1,Max_iter);
newscore=zeros(1,N);
Pop=RRTO_initialization(N,dim,ub,lb);
Currentscore=zeros(1,N);
for i=1:N
Currentscore(1,i)=fobj(Pop(i,:));
if Currentscore(1,i)<Bestscore
Bestscore=Currentscore(1,i);
Bestposition=Pop(i,:);
end
end
it=1;
C=10; % Penalty Factor
%% Main loop
while it <= Max_iter
k = log(Max_iter - it)/log(Max_iter);
E =(it/Max_iter)^(1/3);
m1=E/10;
m2=E/50;
newpop = Pop;
for i=1:N
for j=1:dim
% adaptive step size wandering strategy
r1=rand();
if r1 < k
S1=(r1-(k/2))*k*(Ub(j)-Lb(j))/C;
newpop(i,j) = Pop(i,j)+S1;
end
% absolute difference-based adaptive step size strategy
r2=rand();
if r2 < m1
b = exp(cos(pi*(1-(1/it))));
alpha1=5*(r2-m1/2)*cos(2*pi*r2)*exp(b);
S2=alpha1*abs(Bestposition(1,j)-Pop(i,:));
newpop(i,:)= Bestposition(1,j)+S2;
end
% boundary-based adaptive step size strategy
r3=rand();
if r3 < m2
beta=10*pi*it/Max_iter;
alpha2=r3*(r3-m2/2)*k*(1-it/Max_iter);
S3=(Ub(j)-Lb(j))*cos(beta)*alpha2;
newpop(i,j)=Bestposition(1,j)+S3;
end
end
end
for i=1:N
% Coliision detection
C_ub=newpop(i,:)>ub;
C_lb=newpop(i,:)<lb;
newpop(i,:)=ub.*C_ub+lb.*C_lb+(newpop(i,:).*(~(C_ub+C_lb)));
newscore(1,i)=fobj(newpop(i,:));
% Updata
if newscore(1,i)<Currentscore(1,i)
Currentscore(1,i) = newscore(1,i);
Pop(i,:) = newpop(i,:);
if newscore(1,i)< Bestscore
Bestscore=Currentscore(1,i);
Bestposition=Pop(i,:);
end
end
end
Convergence_curve(it)=Bestscore;
% Next generation untill termination criterion
it=it+1;
end
function Positions=RRTO_initialization(SearchAgents_no,dim,ub,lb)
Boundary_no= size(ub,2); % numnber of boundaries
% If the boundaries of all variables are equal and user enter a signle
% number for both ub and lb
if Boundary_no==1
Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;
end
% If each variable has a different lb and ub
if Boundary_no>1
for i=1:dim
ub_i=ub(i);
lb_i=lb(i);
Positions(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i;
end
end
🍅更多免费数学建模和仿真教程关注领取
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:
#各类智能优化算法改进及应用
#生产调度 #经济调度 #装配线调度 #充电优化 #车间调度 #发车优化 #水库调度 #三维装箱 #物流选址 #货位优化 #公交排班优化 #充电桩布局优化 #车间布局优化 #集装箱船配载优化 #水泵组合优化 #解医疗资源分配优化 #设施布局优化 #可视域基站和无人机选址优化 #背包问题 #风电场布局 #时隙分配优化 #最佳分布式发电单元分配 #多阶段管道维修 #工厂-中心-需求点三级选址问题 #应急生活物质配送中心选址 #基站选址 #道路灯柱布置 #枢纽节点部署 #输电线路台风监测装置 #集装箱调度 #机组优化 #投资优化组合 #云服务器组合优化 #天线线性阵列分布优化 #CVRP问题 #VRPPD问题 #多中心VRP问题 #多层网络的VRP问题 #多中心多车型的VRP问题 # 动态VRP问题 #双层车辆路径规划(2E-VRP) #充电车辆路径规划(EVRP) #油电混合车辆路径规划 #混合流水车间问题 #订单拆分调度问题 #公交车的调度排班优化问题 #航班摆渡车辆调度问题 #选址路径规划问题 #港口调度 #港口岸桥调度 #停机位分配 #机场航班调度 #泄漏源定位 #冷链 #时间窗 #多车场等 #选址优化 #港口岸桥调度优化 #交通阻抗 #重分配 #停机位分配 #机场航班调度 #通信上传下载分配优化
#机器学习和深度学习时序 #回归 #分类 #聚类和降维
#bp时序 #回归预测和分类
#ENS声神经网络时序 #回归预测和分类
#SVM#CNN-SVM#LSSVM#RVM支持向量机系列时序
#CNN#TCN#GCN卷积神经网络系列时序
#ELM#KELM#RELM#DELM极限学习机系列时序
#GRU#Bi-GRU#CNN-GRU#CNN-BiGRU门控神经网络时序
#ELMAN递归神经网络时序
#LSTM#BiLSTM#CNN-LSTM#CNN-BiLSTM/长短记忆神经网络系列时序
#RBF径向基神经网络时序