1 简介
樽海鞘群算法是一种新型的群智能优化算法.与其他智能优化算法相比,樽海鞘群算法的优化求解策略仍有待改进,以进一步提高该算法的求解精度和寻优效率.本文提出一种基于衰减因子和动态学习的改进樽海鞘群算法,通过在领导者更新阶段添加衰减因子,提高算法的局部开发能力,在跟随者更新阶段引入动态学习策略,提高算法的全局搜索能力.本文对16个测试函数进行实验,将提出的改进算法与其他智能优化算法比较,实验结果表明,本文提出的改进算法在收敛精度和收敛速度方面有较大提升,具有良好的优化性能.






2 部分代码
function [sFeat,Sf,Nf,curve] = jSSA(feat,label,N,max_Iter,HO)
lb    = 0;
ub    = 1;
thres = 0.5;
fun = @jFitnessFunction;
dim = size(feat,2); 
X   = zeros(N,dim); 
for i = 1:N
  for d = 1:dim
    X(i,d) = lb + (ub - lb) * rand();
  end
end
% Pre
fit   = zeros(1,N);
fitF  = inf;
curve = inf; 
t = 1;  
%---Iteration start----------------------------------------------------
while t <= max_Iter
  for i = 1:N
    fit(i) = fun(feat,label,(X(i,:) > thres),HO);
    if fit(i) < fitF
      Xf   = X(i,:);
      fitF = fit(i); 
    end
  end
  c1 = 2 * exp(-(4 * t / max_Iter) ^ 2);
  for i = 1:N
    if i == 1
      for d = 1:dim
        c2 = rand(); 
        c3 = rand();
        if c3 >= 0.5 
          X(i,d) = Xf(d) + c1 * ((ub - lb) * c2 + lb);
        else
          X(i,d) = Xf(d) - c1 * ((ub - lb) * c2 + lb);
        end
      end
    else
      for d = 1:dim
        X(i,d) = (X(i,d) + X(i-1,d)) / 2;
      end
    end
    XB = X(i,:);  XB(XB > ub) = ub;  XB(XB < lb) = lb;
    X(i,:) = XB;
  end
  curve(t) = fitF;
  fprintf('\nIteration %d Best (SSA)= %f',t,curve(t))
  t = t + 1;
end
Pos   = 1:dim;
Sf    = Pos((Xf > thres) == 1);
Nf    = length(Sf);
sFeat = feat(:,Sf); 
end3 仿真结果


4 参考文献
[1]陈雷、蔺悦、康志龙. 基于衰减因子和动态学习的改进樽海鞘群算法[J]. 控制理论与应用, 2020, 37(8):15.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。











