涡流搜索算法(Matlab代码实现)
原创
©著作权归作者所有:来自51CTO博客作者荔枝科研社的原创作品,请联系作者获取转载授权,否则将追究法律责任
💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码及详细文章
💥1 概述
涡流搜索算法的搜索行为模拟涡流现象,在初始阶段采用大半径进行探索,当进入局部解区域时,则开始小半径局部开发。
下面是步骤讲解:
📚2 运行结果
部分代码:
% ================更新最优解 ==================
if fmax > gmax % 若新的最好解优于存储的最好解
gmax = fmax; % 用新的最好解替换存储的最好解
gbest = itrBest; % 更新最好解的自变量
end
% ===============显示目标值==================
if mod(count,1) == 0
fprintf('Iter = %d ObjVal = %g\n',count,gmax); % 显示最好解的目标值
end
% ==============涡流中心更新==================
best(count) = gmax; % 记录最小函数值
Mu = gbest; % 将下一涡流中心置为当前最优解
itr = itr - 1; % 反向叠加数减一
count = count + 1; % 正向叠加数加一
% =============半径更新 =================
a = itr / MaxItr; % 更新函数gammaincinv的参数a
ginv = (1/x) * gammaincinv(x,a); % 计算函数(1/x)*gammaincinv(x,1)的新值
r = ginv * ((upperlimit - lowerlimit)/2); % 计算新的涡流半径
end
plot(1:count-1,best,'color','m','LineWidth',1.5)
xlabel('迭代次数')
ylabel('最优解')
title('涡流搜索算法')
toc
🎉3 参考文献
[1]李盼池,卢爱平.量子衍生涡流搜索算法[J].控制与决策,2016,31(06):990-996.DOI:10.13195/j.kzyjc.2015.0595.
[2]李学贵,许少华,李娜,赵恩涛,郭昊.基于涡流搜索算法的过程支持向量回归机模型[J].吉林大学学报(信息科学版),2017,35(03):341-346.DOI:10.19292/j.cnki.jdxxp.2017.03.018.
[3]
🌈4 Matlab代码及详细文章