一、灰狼优化器算法
灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法。该算法受到了灰狼捕食猎物活动的启发而开发的一种优化搜索方法,它具有较强的收敛性能、参数少、易实现等特点。近年来受到了学者的广泛关注,它己被成功地应用到了车间调度、参数优化、图像分类等领域中。
二、小龙虾优化算法
小龙虾优化算法(Crayfish optimization algorithm,COA)是由Heming Jia教授等人于2023年提出的,该算法模拟了小龙虾的避暑行为、竞争行为和觅食行为。这三种行为被划分为三个不同的阶段,以平衡算法的探索和利用。三个阶段分别是避暑期、竞争期和觅食期。避暑山庄阶段是COA的探索阶段。竞争阶段和觅食阶段代表了COA的开发阶段。COA的勘探开发是有规律的。
部分主函数代码如下:
%% 设置起始点
startPoint = [0,0,20];
endPoint = [200,200,20];
plot3(startPoint(1),startPoint(2),startPoint(3),'ro');
text(startPoint(1),startPoint(2),startPoint(3),'起点','Color','k','FontSize',15)
plot3(endPoint(1),endPoint(2),endPoint(3),'r*');
text(endPoint(1),endPoint(2),endPoint(3),'终点','Color','k','FontSize',15)
title('地图信息')
%% 灰狼优化参数设置
NodesNumber = 2;%起点与终点之间节点的个数
dim = 2*NodesNumber; %维度,一组坐标点为[x,y,z]3个值,,其中X等间隔分布,所以总的数据个数为2*NodesNumber
lb = [20.*ones(1,NodesNumber),0.*ones(1,NodesNumber)];%x,y,z的下限[20,20,0]
ub = [180.*ones(1,NodesNumber),50.*ones(1,NodesNumber)];%x,y,z的上限[200,200,50]
fobj = @(x)fun(x,NodesNumber,startPoint,endPoint,ThreatAreaPostion,ThreatAreaRadius);%适应度函数
SearchAgents_no=70; % 种群数量
Max_iteration=50; % 设定最大迭代次数
[Best_pos_GWO,Best_score_GWO,GWO_curve]=GWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
[Best_pos_COA,Best_score_COA,COA_curve]=COA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
%根据寻优获得的节点,获取插值后的路径
[X_seq_COA,Y_seq_COA,Z_seq_COA,x_seq_COA,y_seq_COA,z_seq_COA] = GetThePathLine(Best_pos_COA,NodesNumber,startPoint,endPoint);
[X_seq_GWO,Y_seq_GWO,Z_seq_GWO,x_seq_GWO,y_seq_GWO,z_seq_GWO] = GetThePathLine(Best_pos_GWO,NodesNumber,startPoint,endPoint);
实验结果如下:
三、完整代码获取
https://mbd.pub/o/bread/ZpWUm5lvhttps://mbd.pub/o/bread/ZpWUm5lv