失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【智能优化算法】基于Levy飞行策略的改进樽海鞘群算法求解单目标优化问题matlab代码

【智能优化算法】基于Levy飞行策略的改进樽海鞘群算法求解单目标优化问题matlab代码

时间:2020-10-18 08:40:41

相关推荐

【智能优化算法】基于Levy飞行策略的改进樽海鞘群算法求解单目标优化问题matlab代码

1 简介

针对樽海鞘群算法(Salp Swarm Algorithm,SSA)在寻优过程中存在的收敛速度较慢,容易陷入局部最优的缺点,提出了一种改进的采用莱维飞行策略的条件化更新的樽海鞘群算法(Levy Flight-based Conditional Updating Salp Swarm Algorithm,LECUSSA),并将其运用于分类算法的特征子集选择过程.首先,利用莱维飞行策略的长短跳跃特点对领导者位置进行随机更新,以增强全局最优的搜索能力;其次,增加对追随者位置的更新条件,让追随者不再盲目地跟随,从而加快收敛速度.在23个优化基准函数上对LECUSSA算法与其他算法进行了性能比较实验;并把算法运用到支持向量机(Support Vector Machine,SVM)算法的分类特征子集选择中,采用8个UCI数据集对特征选择后的分类结果进行了性能比较实验.实验结果表明,LECUSSA具有良好的全局最优搜索能力和较快的收敛速度,利用LECUSSA算法进行特征选择后,能够找到最佳分类准确率的特征子集.

2 部分代码

function [sFeat,Sf,Nf,curve] = jSSA2(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

% Additional sort in the first iteration to improve the

% initial behavior by divide salps into leader and followers

if t == 1

[fit, idx] = sort(fit,'ascend');

X= X(idx,:);

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);

end

3 仿真结果

4 参考文献

[1]张严, 秦亮曦. 基于Levy飞行策略的改进樽海鞘群算法[J]. 计算机科学, , 47(7):

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

如果觉得《【智能优化算法】基于Levy飞行策略的改进樽海鞘群算法求解单目标优化问题matlab代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。