主要内容
该程序采用黄金正弦和混沌映射思想改进减法优化器算法,由于减法优化器算法(缩写为SABO)为23年新提出来的智能优化算法,目前算法的直接应用还不是很多,对其进行改进的算法更是少之又少,因此,采用该算法发表文章会更加容易一些。通过改进算法(GSABO)与减法优化器原始算法(SABO)、灰狼算法(GWO)、鲸鱼优化算法(WOA)以及蜣螂优化算法(DBO)进行对比,验证改进算法具有显著优势,程序采用matlab编写,模块化编程,注释清晰。
(注:因智能算法存在随机性,不是每次效果都得到理想要求,可从统计学角度多次测试研究算法最优解均值、平均收敛时间、最优解迭代次数均值等维度做出更为严谨的结论)
1.减法优化器算法
该算法基于减法平均的原理,通过计算个体之间的差异以及目标函数值的差异,来更新和优化搜索代理的位置。如果新位置适应度值提高,则接受新位置,否则保持不变。
SABO具有寻优能力强、收敛速度快等特点,使其在解决优化问题时具有显著的优势。它可以应用于各种需要寻找最优解的场景,如机器学习、数据挖掘、工程设计等领域。
2.黄金正弦和混沌映射策略
%% 初始化参数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 这几个参数是黄金正弦算法的初始化参数
a=-pi;
b=pi;
gold=double((sqrt(5)-1)/2); % golden proportion coefficient, around 0.618
x1=a+(1-gold)*(b-a);
x2=a+gold*(b-a);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 采用混沌映射初始化粒粒子,10种混沌映射类型选择,1-10分别为,tent、Logistic、Cubic、chebyshev、Piecewise、sinusoidal、Sine,ICMIC, Circle,Bernoulli
X = repmat(lo,N,1)+chaos(numm,N,m).* repmat((hi-lo),N,1);
%计算粒子的适应度值
for i =1:N
L=X(i,:);
fit(i)=fitness(L);
end
%找到最佳粒子
[fbest,idx]=min(fit);
xbest = X(idx,:);
%% 开始主循环
for t=1:T % algorithm iteration
DX=zeros(N,m);
for i=1:N
%% based om Eq(4)
for j=1:N
I = round(1+rand+rand);
for d=1:m
DX(i,d)=DX(i,d)+(X(j,d)-I.*X(i,d)).*sign(fit(i)-fit(j)); %SABO算法主要的更新方式
end
end
%采用混沌映射的方式替换随机值r
C1=chaos(5,1,m); %10种 混沌映射类型选择,1-10分别为,tent、Logistic、Cubic、chebyshev、Piecewise、sinusoidal、Sine,ICMIC, Circle,Bernoulli
%这里选用了第5种混沌映射,Piecewise。
xold = X(i,:); %记录当前X(i,:),如果采用SABO算法适应度值没有降低,就选用这个xold用黄金正弦算法更新粒子位置
X(i,:)= X(i,:)+((C1.*DX(i,:))./(N)); %采用SABO算法更新粒子位置
结果一览
“阅读原文”获取程序源码