🍁🥬🕒摘要🕒🥬🍁
优化问题在工程应用中很常见,例如背包问题、数据聚类、数据分类、路径规划、机器人控制等。众所周知,群体智能(SI)优化算法因其简单、灵活和高效而被用作解决全局优化问题的主要技术。值得一提的是,SI优化算法在搜索过程中主要引入随机性,与确定性方法不同。注意,确定性算法在复杂情况下容易陷入局部最优解。因此,采用SI优化算法获得全局优化问题的最优解具有现实意义。
在过去的几十年中,SI优化算法发展迅速,成为许多领域的热点。到目前为止,现有文献中已经有许多不同类型的优化算法可用。在各种优化算法中,蚁群优化(ACO)算法和粒子群优化(PSO)算法具有代表性,受到相当多的关注。例如,Dorigo,Maniezzo和Colorni(1996)利用ACO算法,通过信息素标记路径模仿了自然界中蚂蚁的生物学特征。作为众所周知的算法之一,Eberhart和Shi(2001)和肯尼迪和埃伯哈特(1995)利用PSO算法,模仿鸟群的合作和觅食行为。
本文旨在提出一种新型的群体智能优化技术,称为麻雀搜索算法(SSA)。本文的主要贡献总结如下:(1)一种新的SI技术,即SSA的灵感来自麻雀种群的觅食和反捕食行为;(2)通过使用所提出的SSA,对优化搜索空间的探索和利用都有一定程度的改善;(3)所提出的SSA在两个实际工程问题中得到成功应用。最后,为了验证所提算法的有效性和性能,进行了一些对比实验。仿真结果表明,所提SSA在搜索精度、收敛率、稳定性和避免局部最优值等方面优于其他现有算法。
✨🔎⚡运行结果⚡🔎✨
💂♨️👨🎓Matlab代码👨🎓♨️💂
clear all clc SearchAgents_no=100; % 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=1000; % Maximum numbef of iterations % Load details of the selected benchmark function [lb,ub,dim,fobj]=Get_Functions_details(Function_name); [fMin,bestX,SSA_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); %Draw objective space semilogy(SSA_curve,'Color','g') axis ([0 1000 0 1 ]) title('Objective space') xlabel('Iteration'); ylabel('Best score obtained so far'); %axis tight grid on box on legend('SSA') display(['The best solution obtained by SSA is : ', num2str(bestX)]); display(['The best optimal value of the objective funciton found by SSA is : ', num2str(fMin)]);
📜📢🌈参考文献🌈📢📜
[1]马卫,朱娴.基于莱维飞行扰动策略的麻雀搜索算法[J].应用科学学报,2022,40(01):116-130.