1 模型
为改善基本麻雀优化算法的寻优性能,通过算法混合,在麻雀优化算法中遥步引入优进策略和混沌搜索机制,以加强粒子群的局部寻优效率和全局寻优性能.井将麻雀分为两类,分别执行不同的进化机制,实现协同寻优,从而构建为一种新的混沌混合麻雀优化算法.标准测试函数的仿真优化结果表明,该混合算法对较大规模的复杂问题具有较强的求解能力.算法寻优效率高,全局性能好,优化结果稳定,性能明显优于标准粒子群优化算法以及遗传算法等单一的随机搜索方法.
2 部分代码
%_________________________________________________________________________%% 基于Tent混沌映射改进的麻雀优化算法 %%_________________________________________________________________________%% 使用方法%__________________________________________% 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% rng('default');SearchAgents_no=50; % Number of search agents 种群数量Function_name='F1'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper) 设定适应度函数Max_iteration=100;% 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 spacesubplot(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 spacesubplot(1,2,2);plot(SSA_curve,'Color','r')hold on;title('Objective space')xlabel('Iteration');ylabel('Best score obtained so far');axis tightgrid onbox onlegend('Tent混沌策略SSA')% display(['The best solution obtained by Tent混沌策略SSA is : ', num2str(Best_pos)]);display(['The best optimal value of the objective funciton found by Tent混沌策略SSA is : ', num2str(Best_score)]);
3 仿真结果
4 参考文献
[1]田慕玲, 杨宇博, 许春雨,等. 一种基于混沌麻雀搜索算法的煤岩分界图像增强方法:.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,有科研问题可私信交流。