智能优化算法-麻雀搜索算法基于萤火虫结合麻雀搜索算法求解单目标优化问题附matlab代码
Posted Matlab科研工作室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能优化算法-麻雀搜索算法基于萤火虫结合麻雀搜索算法求解单目标优化问题附matlab代码相关的知识,希望对你有一定的参考价值。
1 内容介绍
该改进主要是在麻雀搜索后,利用萤火虫扰动对麻雀进行萤火虫扰动,将所有麻雀与最优麻雀利用萤火虫扰动方式,进行位置更新,提高其搜索性,扰动后的麻雀与扰动前的麻雀进行对比,如果更优则更新麻雀位置。
2 部分代码
% 使用方法
%__________________________________________
% fobj = @YourCostFunction 设定适应度函数
% dim = number of your variables 设定维度
% Max_iteration = maximum number of generations 设定最大迭代次数
% SearchAgents_no = number of search agents 种群数量
% lb=[lb1,lb2,...,lbn] where lbn is the lower bound of variable n 变量下边界
% ub=[ub1,ub2,...,ubn] where ubn is the upper bound of variable n 变量上边界
% If all the variables have equal lower bound you can just
% define lb and ub as two single number numbers
% To run SSA: [Best_pos,Best_score,curve]=SSA(pop,Max_iter,lb,ub,dim,fobj)
%__________________________________________
clear all
clc
close all
rng('default');
SearchAgents_no=50; % Number of search agents 种群数量
Function_name='F2'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper) 设定适应度函数
Max_iteration=300;
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name); %设定边界以及优化函数
[Best_pos,Best_score,SSA_curve]=SSANew(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); %开始优化
figure('Position',[269 240 660 290])
%Draw search space
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])
%Draw objective space
subplot(1,2,2);
plot(SSA_curve,'Color','r','linewidth',2)
hold on;
title('Objective space')
xlabel('迭代');
ylabel('Best score obtained so far');
axis tight
grid on
box on
legend('FASSA')
%
3 运行结果
4 参考文献
[1]肖海飞, 曾国辉, 杜涛,等. 基于麻雀搜索算法的PMSM智能控制器设计[J]. 电力电子技术, 2022(056-001).
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
以上是关于智能优化算法-麻雀搜索算法基于萤火虫结合麻雀搜索算法求解单目标优化问题附matlab代码的主要内容,如果未能解决你的问题,请参考以下文章
优化求解基于 Sobol 序列和纵横交叉策略的麻雀搜索算法(SSASC) Matlab源码
优化求解基于 Sobol 序列和纵横交叉策略的麻雀搜索算法(SSASC) Matlab源码