【智能优化算法】基于沙猫群优化算法求解单目标优化问题附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代码问题可私信交流。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值