• 一种新的群体智能优化算法:麻雀搜索算法(SSA)(Matlab代码实现)


     🍒🍒🍒欢迎关注🌈🌈🌈

    📝个人主页:我爱Matlab


    👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

    🍌希望大家多多支持🍓~一起加油 🤗

    💬语录:将来的我一定会感谢现在奋斗的自己!

    🍁🥬🕒摘要🕒🥬🍁

    优化问题在工程应用中很常见,例如背包问题、数据聚类、数据分类、路径规划、机器人控制等。众所周知,群体智能(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.

  • 相关阅读:
    后端SpringBoot+前端Vue前后端分离的项目(一)
    react源码中的hooks
    java计算机毕业设计大学生兼职网站源码+系统+lw文档+mysql数据库+部署
    小程序开发二:模板和数据绑定语法以及 json 文件配置
    【计算机毕业设计】23.网上商城购物系统+vue
    Linux常用命令详解
    DS18B20数字温度计 (一) 电气特性, 寄生供电模式和远距离接线
    记一次 MSI 笔记本 GE63 播放网页视频 闪屏和随机发绿 问题解决
    JavaScript 中 toString 的奇妙使用
    Qt多线程及线程池的使用笔记
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/128110863