• 【智能优化算法】基于沙猫群优化算法求解单目标优化问题附matlab代码


    1 内容介绍

    这项研究提出了一种新的元启发式算法,称为沙猫群优化 (SCSO),它模仿试图在自然界中生存的沙猫行为。这些猫能够探测到低于 2 kHz 的低频,并且具有难以置信的挖掘猎物的能力。受这两个特征的启发,所提出的算法包括两个主要阶段(搜索和攻击)。该算法以平衡的方式控制探索和利用阶段的转换,并在找到具有较少参数和操作的良好解决方案方面表现良好。它是通过使用定义的自适应策略找到适当运动的方向和速度来执行的。 SCSO 算法用 20 个著名的 CEC2019 基准函数以及现代 10 个复杂的测试函数进行了测试,并将所得结果与著名的元启发式算法进行了比较。根据结果,在 63.3% 的测试函数中找到最佳解的算法是 SCSO。此外,SCSO算法应用于焊接梁设计、拉压弹簧设计、压力容器设计、活塞杆设计、减速器设计、三杆桁架设计、悬臂梁设计等七大具有挑战性的工程设计问题。获得的结果表明,SCSO 在收敛速度和定位全部或大部分局部/全局最优值方面取得了成功,并且优于其他比较方法。​

    2 仿真代码

    %___________________________________________________________________%

    %  Grey Wolf Optimizer (GWO) source codes version 1.0               %

    %                                                                   %

    %  Developed in MATLAB R2011b(7.13)                                 %

    %                                                                   %

    %  Author and programmer: Seyedali Mirjalili                        %

    %                                                                   %

    %         e-Mail: ali.mirjalili@gmail.com                           %

    %                 seyedali.mirjalili@griffithuni.edu.au             %

    %                                                                   %

    %       Homepage: http://www.alimirjalili.com                       %

    %                                                                   %

    %   Main paper: S. Mirjalili, S. M. Mirjalili, A. Lewis             %

    %               Grey Wolf Optimizer, Advances in Engineering        %

    %               Software , in press,                                %

    %               DOI: 10.1016/j.advengsoft.2013.12.007               %

    %                                                                   %

    %___________________________________________________________________%

    % This function initialize the first population of search agents

    function Positions=initialization(SearchAgents_no,dim,ub,lb)

    Boundary_no= size(ub,2); % numnber of boundaries

    % If the boundaries of all variables are equal and user enter a signle

    % number for both ub and lb

    if Boundary_no==1

        Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;

    %   Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;   

    end

    % If each variable has a different lb and ub

    if Boundary_no>1

        for i=1:dim

            ub_i=ub(i);

            lb_i=lb(i);

            Positions(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i;

        end

    end

    3 运行结果

    4 参考文献

    [1] Seyyedabbasi A ,  Kiani F . Sand Cat swarm optimization: a nature-inspired algorithm to solve global optimization problems[J]. Engineering with Computers, 2022:1-25.

    博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

    部分理论引用网络文献,若有侵权联系博主删除。

  • 相关阅读:
    Oracle SQL执行计划操作(3)——物化视图相关操作
    Android 应用流量监控实践
    科普文章|一文了解平行链及其优势
    sharding-jdbc实现分库分表
    C++后台面试题汇总---持续更新中
    c语言-手写JSON解析
    LeetCode 0179. 最大数
    apollo源码解读:/cyber/scheduler 模块
    OAuth2 完成用户登录【详解】(含码云 gitee 的实现范例)
    DevOps流程的简单总结
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126213080