小龙虾优化算法(Crayfsh optimization algorithm,COA)是2023新型智能优化算法-小龙虾优化算法,灵感来源于小龙虾的觅食、避暑和竞争行为。觅食阶段和竞争阶段是COA的开发阶段,避暑阶段是COC的探索阶段。
小龙虾算法的灵感和来源可以参考论文:Crayfish optimization algorithm | Artificial Intelligence Review;(Artifcial Intelligence Review),该期刊最新的影响因子是12,具有很好的研究价值。
透镜成像反向学习策略:
下式表示了基于透镜成像原理的反向学习策略:
k是自适应缩放因子,一般取值较大。
透镜成像反向学习策略的matlab代码实现:
k=(1+(t/T)^0.5)^10;
%创新点 透镜成像反向学习
Xnew1(i,:) = (ub+lb)/2+(ub+lb)/(2*k)-Xnew(i,:)/k;
main函数的代码如下:
% 原创改进——基于透镜反向学习改进的小龙虾优化算法(ECOA)
clc;clear;close all
N=50; %种群数量
T=500; % 最大迭代次数
F='F1'; % 选择函数F1-F23
%获取函数细节
[lb,ub,dim,fobj]=Get_F(F);
[Top_Score_1,Top_Position_1,Convergence_curve_1]=COA(N,T,lb,ub,dim,fobj);
[Top_Score_2,Top_Position_2,Convergence_curve_2]=ECOA(N,T,lb,ub,dim,fobj);
% 定义RGB颜色值
colors = {
[0, 0, 0], % 黑色
[1, 0, 0] % 红色
};
% 绘制每条曲线
semilogy(Convergence_curve_1, '-', 'Color', colors{1}, 'LineWidth', 2);
hold on;
semilogy(Convergence_curve_2, '-', 'Color', colors{2}, 'LineWidth', 2);
% 添加图例
legend('COA','ECOA');
% 设置图标题和坐标轴标签
title(['CEC2005-', F, ' (Dim=', num2str(dim), ')']);
xlabel('Iteration#');
ylabel('Best Fitness Value');
axis tight;
grid on;
box on;
hold off;
% 最优结果输出
disp('-------------------------------------');
display(['函数: ',F,' 维度: ', num2str(dim),' 种群数量: ', num2str(N), ' 最大迭代次数: ', num2str(T)])
disp('-------------------------------------');
disp(['COA 获得的最优解: ', num2str(Top_Position_1)]);
disp(['ECOA 获得的最优解: ', num2str(Top_Position_2)]);
disp('-------------------------------------');
disp(['COA 获得的最优值: ', num2str(Top_Score_1)]);
disp(['ECOA 获得的最优值: ', num2str(Top_Score_2)]);
原始COA和基于透镜反向学习改进的小龙虾优化算法(ECOA)在CEC2005的代码运行结果如下。不难看出,对于大多数函数,该策略都增强了原始算法的收敛速度和收敛精度。
所有代码文件如下,ECOA是基于透镜反向学习改进的小龙虾优化算法,可以很好的进行二次开发。