【单目标优化算法】沙猫群优化算法(Matlab代码实现)

news/2024/5/19 15:28:43/文章来源:https://blog.csdn.net/m0_73907476/article/details/128996216

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

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

在现实生活中,优化意味着除了最大限度地提高效率和质量外,还意味着最大限度地减少时间和成本。事实上,有很多问题需要优化,既复杂又困难。启发式和元启发式算法是解决问题和获得优化解决方案的两种方法。启发式算法是问题依赖性的,而元启发式算法不依赖于特定问题,最优解是从随机搜索空间和预定义边界[1]中获得的。问题越大越复杂,解决起来就越困难[2]。特别是他们的时间和记忆复杂性会显着恶化。这些类型的问题中最突出的是非确定性多项式时间(NP-hard)问题。NP-hard问题可以通过精确和近似的方法解决。精确的方法保证了具有指数级时间复杂度和高成本的最佳解决方案。启发式算法和元启发式算法都是近似算法的家族,不能保证找到最优解,但得到的解可能更接近最优解,复杂度和实际执行时间更好。因此,第二组通常是首选。另一方面,考虑到启发式方法存在局部陷阱等问题,元启发式方法可以为许多NP难题提供实用且有用的解决方案,并且在实际执行时间内为这些类型的问题找到最优解方面通常表现良好[3]。

元启发式方法不会落入局部陷阱,此外,它们更加灵活,并试图通过简单的实施在更短的时间内以更少的流程成本在全球搜索领域找到最佳解决方案。特别是,元启发式算法的性能可以更成功地解决复杂问题[2]。此外,无免费午餐(NFL)[4]断言没有特定的算法为每个优化问题提供最佳解决方案。因此,开发可用于各种问题的新元启发式算法的需求很大。因此,由于其广泛的使用领域和优势,近年来,元启发式优化算法在许多科学领域变得流行[5,6,7]。一般来说,元启发式算法受到生物或物理现象[8]的启发,并试图在合理的时间内找到最佳解决方案(最大值或最小值)。

元启发式算法通常分为单解算法和基于群体(多)算法两类。在单解算法中,虽然单个解会影响输出,但整个总体都包含在基于总体的算法中。此外,元启发式算法分为进化算法、基于物理算法和群体智能算法。进化算法(EA)的灵感来自自然进化论和达尔文进化论[9]。EA 在随机搜索空间内解决问题,而 EA 是一种基于群体的方法,其中整个总体影响最佳解决方案。遗传算法 (GA) 是 EA 类别 [10] 中众所周知的算法,其灵感来自世代复制。GA 通过模仿交叉、突变和精英主义来产生新一代,以找到全局最优。差分进化(DE)算法是另一种受自然进化驱动的算法。DE算法在生成下一代的选择操作中与GA有所不同[11]。改进的量子衍生合作协同进化算法(MSQCCEA)[12]是目前的研究之一。该算法提高了全局搜索能力,不会落入局部最优陷阱。因此,已经开发出一种量子自旋方向策略,将量子演化方向从13个变为14个。将该方法应用于背包和实际机场登机口分配问题,结果表明所提算法在快速、准确的收敛速率方面具有良好的性能。禁忌搜索(TS)算法是进化算法的另一个例子[15]。进化编程(EP)的灵感来自表型、遗传和变异等行为模型[16]。基于生物地理学的优化器(BBO)[<>]和黑寡妇优化(BWO)[<>]是EA的另一个例子。

基于物理的算法是元启发式方法的另一个家族成员。这些算法受到自然界物理规则的启发,并根据假设的物理事件随机行动。在这种算法中,搜索空间和最优解遵循电磁力、引力和惯性力等物理规律。这一类别中有著名的优化算法,如引力局部搜索(GLSA)[17],引力搜索算法(GSA)[18]和大爆炸-大紧缩(BBBC)[19]。黑洞(BH)算法的灵感来自黑洞现象的事实[20],是基于物理学的另一种算法。该类别中的其他著名作品是带电系统搜索(CSS)[21],曲线空间优化[22],中心力优化(CFO)[23]和基于星系的搜索算法(GbSA)[24]。在此类别的方法中,搜索代理根据假定的物理事件随机操作。

群体智能(SI)是元启发式算法的第三类。通常,SI方法的灵感来自自然界中成群,饲养和成群的动物的社会行为。在这种算法中,搜索代理试图通过影响社交智能来找到最佳解决方案。粒子群优化(PSO)是这一类别中最著名的算法[25]。PSO的灵感来自鸟类在自然界中的运动和社会行为。粒子指示候选解决方案,算法尝试根据这些粒子从搜索空间中找到最佳解决方案。蚁群优化(ACO)是该类别中的另一种算法[26]。ACO算法模拟蚂蚁的觅食行为。自然界中蚂蚁的主要目标是找到目的地(食物)并在源头和目的地之间生成最佳(安全和最低成本)路径。在文献中,该算法已被用于解决许多类型的问题[27,28]。人工蜂群(ABC)[29]算法是另一种模仿蜜蜂社会行为的重要算法。在ABC发现中,在目的地(巢)和源(食物)之间生成了一条路径。寻找丰富的食物资源和蜜蜂体验是ABC算法中寻找最佳解决方案的重要阶段。此类别中的其他算法包括蝙蝠算法 (BA) [30]、萤火虫算法 (FA) [31]、灰狼优化 (GWO) [32] 和不同方差 [33]、鲸鱼优化算法 (WOA) [34]、蜻蜓算法 (DA) [35]、布谷鸟搜索 (CS) [36]、蝴蝶优化算法 (BOA) [37]、风驱动优化 (WDO) [38]、猫群优化 (CSO) [39],果蝇优化算法(FFOA)[40]和花授粉算法(FPA)[41],Salp群算法(SSA)[42],探路者算法(PFA)[43]及其改进版本[3],以及哈里斯鹰优化(HHO)算法[44]。此外,混合元启发式算法近年来已经变得普遍。[45,46]介绍了在这种情况下所做的两项有价值的研究。在[45]中,作者提出了一种基于DA和WDO算法的新方法。作者纠正了这两种算法的缺点,并因此证明了他们提出的方法具有快速的收敛速度和强大的全局搜索能力,并且在寻找解决方案方面是准确的。在[46]中,作者受到BOA和FPA算法的启发,提出了一种灵活的算法来解决全局优化问题。作者提出了一种在探索和开发阶段之间有效切换的新机制,因此该算法表现出平衡的行为。

元启发式算法的主要阶段是探索和开发,每种算法都有特定的策略来实现这些阶段的概念。所提出的算法中这两个阶段之间的平衡越多,成功率就越高。在这些策略中,定义的随机性和适当的系数很重要。正确设置相关系数参数以确保这两个相位之间的良好平衡非常重要[33]。探索意味着在全球范围内进行搜索。此阶段需要更多的搜索,因此相关算法从搜索空间中随机选择一个解决方案。而开发阶段在探索阶段之后,而开发阶段侧重于搜索空间上的解决方案以改进解决方案。换句话说,检查未访问的区域是否是局部最优差的潜在逃生区域。探索中搜索的随机性会影响算法,以避免在探索全局最优的局部最优上陷害。

本文提出了一种新的元启发式优化算法,该算法可能更适合于根据NFL定理解决相关阶段之间表现平衡的各种问题。此外,所提出的算法比目前其他元启发式算法具有更有利的复杂性。该算法受沙猫搜索和狩猎行为的启发,命名为沙猫群优化(SCSO)。沙猫在自然界中独居,但在所提出的算法中,沙猫被认为是一个可以被用户识别为搜索代理的群体。在所提算法的开发中,重点是沙猫寻找猎物的低频噪声检测行为。这些猫检测到低于 2 kHz 的低频,因此它们可以在可能的短时间内长距离捕捉猎物,而且几乎没有动作。此外,沙猫具有令人难以置信的挖掘猎物的能力。由于这两个奇妙的功能,确保了沙猫在自然界中具有搜索和狩猎的特殊能力。所提出的算法在探索和开发阶段也通过自适应机制保持平衡。此外,本文的主要贡献总结如下。

1.两个阶段:搜索和攻击猎物。本文提出的算法(SCSO)就包括了这两个阶段,此外,还提出了一种机制来实现探索和利用阶段的平衡。
2.算法运行时首先根据问题的规模( N pop × N d ) , ( pop = 1 , . . . , n =1,…,n=1,…,n)利用沙丘猫群创建一个候选矩阵,然后就目标函数对每个沙丘猫进行适应度评估,选择出其中最优的个体,其他的个体都朝向该个体移动。

在这里插入图片描述

 详细数学模型和文章见参考文献。

📚2 运行结果

部分代码:

function [Best_Score,BestFit,Convergence_curve]=SCSO(SearchAgents_no,Max_iter,lb,ub,dim,fobj)
BestFit=zeros(1,dim);
Best_Score=inf;
Positions=initialization(SearchAgents_no,dim,ub,lb);
Convergence_curve=zeros(1,Max_iter);
t=0;
p=[1:360];
while t<Max_iter
    for i=1:size(Positions,1)
        Flag4ub=Positions(i,:)>ub;
        Flag4lb=Positions(i,:)<lb;
        Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
        fitness=fobj(Positions(i,:));
        if fitness<Best_Score
            Best_Score=fitness;
            BestFit=Positions(i,:);
        end
    end
    S=2;                                    %%% S is maximum Sensitivity range 
    rg=S-((S)*t/(Max_iter));                %%%% guides R
   for i=1:size(Positions,1)
        r=rand*rg;
        R=((2*rg)*rand)-rg;                 %%%%   controls to transtion phases  
        for j=1:size(Positions,2)
        teta=RouletteWheelSelection(p);
           if((-1<=R)&&(R<=1))              %%%% R value is between -1 and 1
                Rand_position=abs(rand*BestFit(j)-Positions(i,j));
                Positions(i,j)=BestFit(j)-r*Rand_position*cos(teta);
           else                 
                cp=floor(SearchAgents_no*rand()+1);
                CandidatePosition =Positions(cp,:);
                Positions(i,j)=r*(CandidatePosition(j)-rand*Positions(i,j));
            end
        end
    end
    t=t+1;
    Convergence_curve(t)=Best_Score;
end
end 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

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

[2]高烨,陶丽丽,马苗.基于猫群优化算法的图像多阈值分割方法[J].中国体视学与图像分析,2018,23(02):125-132.DOI:10.13505/j.1007-1482.2018.23.02.001.

[3]姜天华.猫群优化算法求解柔性作业车间调度问题[J].计算机工程与应用,2018,54(23):259-263+270.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_292955.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4月24日~4月26日学习总结

一&#xff0c;刷题目情况&#xff0c;已经完成了8道题目&#xff0c;对于其中一些题目做一下题解。 这个题目的意思是找到的两个位置l和r&#xff0c;为了做到这个数组的l到r的子数组经过排序后&#xff0c;会变成输入的另外一个数组&#xff0c;这个题目的思路就是首先找到在…

服务(第十篇)Nginx和tomcat反向代理(动静分离)

正向代理&#xff1a; 当用户想访问某一网址时&#xff0c;用户先访问代理服务器&#xff0c;然后由代理服务器向目标网址发送请求最终将数据返回代理服务器&#xff0c;最后代理服务器将数据返回给用户这一过程我们称之为正向代理。 反向代理&#xff1a;基本流程是与正向代理…

(04)基础强化:接口,类型转换cast/convert,异常处理,传参params/ref/out,判断同一对象

一、复习 1、New的截断是指什么&#xff1f; new除了新开空间创建初始化对象外&#xff0c;还有一个隐藏父类同名方法的作用。 当子类想要隐藏父类同名的方法时用new&#xff0c;用了new后父类同名方法将到此为止&#xff0c;后面 继承的…

centos7部署FastDFS服务

一、安装需要的相关依赖 yum -y install make cmake gcc gcc-c 因为我的服务器已经安装了gcc&#xff0c;所以略去 使用gcc -v查看版本 yum -y install zip unzip 安装性能事件通知库 yum -y install libevent 安装nginx依赖 yum -y install libevent yum -y install zli…

最新版TensorFlow的GPU版本不支持原生Windows系统(大坑预警)

一、前言 首先需要说明&#xff0c;按照官方中文文档安装是无法正常检测到GPU的。因为TensorFlow 2.10是支持原生Windows系统GPU环境的最后版本&#xff0c;默认安装的版本都比较高。 中文文档没有说明&#xff0c;英文文档是有提到的&#xff1a; &#xff08;我在GitHub上找…

操作系统之进程同步和互斥

目录 什么是进程同步和进程互斥 进程互斥的软件实现方法 进程互斥的硬件实现方法 互斥锁 信号量机制 用信号量实现进程互斥和同步 生产者消费者问题 多生产者多消费者问题 吸烟者问题 读者写者问题 哲学家进餐问题 管程 死锁 什么是进程同步和进程互斥 进程同步 进…

Scala之模式匹配与隐式转换

目录 模式匹配&#xff1a; 基础语法如下&#xff1a; 模式守卫&#xff1a; 类型匹配&#xff1a; 对象匹配 样例类&#xff1a; 偏函数&#xff1a; 偏函数的化简写法&#xff1a; 偏函数的使用&#xff1a; 隐式转换&#xff1a; 官方定义&#xff1a; 个人理解&…

Linux-使用mobaxterm连接虚拟机ubuntu

一、准备工作 VMware&#xff1a;16.0.0 Ubuntu&#xff1a;18.4 MobaxTerm&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1dNsahe9wO5KrWlWXtNqT0A?pwdaz39 提取码&#xff1a;az39 二、实操 1.检查系统是否安装ssh service sshd status 如果显示未安装&#xff0…

基于MATLAB实现WSN(无线传感器网络)的LEACH(低能耗自适应集群层次结构)(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 低能耗自适应集群层次结构&#xff08;“LEACH”&#xff09;是一种基于 TDMA 的 MAC 协议&#xff0c;它与无线传感器网络 &a…

私有部署、重构企业软件,第四范式发布大模型“式说”

大模型领域再添重要一员&#xff01; 4月26日&#xff0c;第四范式首次向公众展示其大模型产品「式说3.0」&#xff0c;并首次提出AIGS战略&#xff08;AI-Generated Software&#xff09;&#xff1a;以生成式AI重构企业软件。式说将定位为基于多模态大模型的新型开发平台&…

RAC集群节点2异常时节点1的database实例无法提供服务问题的分析

在客户的数据库RAC集群环境中&#xff0c;节点2发生了异常&#xff0c;最终通过重启解决。在节点2发生异常的10分钟左右时间内&#xff0c;由于RAC集群节点2异常&#xff0c;此时节点1的database实例无法提供服务问题&#xff0c;程序操作报超时&#xff1b; 对此现象&#xf…

贪吃蛇小游戏(C++)

首先我们需要下载EasyX&#xff08;具体的方法在EasyX专栏中有提到&#xff09; easyX下载和绘制简单基本图形_小梁今天敲代码了吗的博客-CSDN博客 贪吃蛇这个游戏我们一定都玩过&#xff0c;玩家使用方向键操控一条“蛇”&#xff0c;蛇会朝着一个方向不断移动&#xff0c;玩…

开源Qt Ribbon控件——SARibbon的布局思路及介绍

开源Qt Ribbon控件——SARibbon的布局思路及介绍 SARibbon的布局SARibbon名词定义Office布局模式——SARibbonBar::OfficeStyleWPS布局模式——SARibbonBar::WpsLiteStylepannel的布局行数3行模式2行模式 测试案例特别注意 原文链接&#xff1a;https://blog.csdn.net/czyt1988…

Kafka3.0.0版本——生产者数据有序与乱序

目录 一、生产经验数据有序二、生产经验数据乱序2.1、kafka1.x版本之前保证数据单分区有序的条件2.2、kafka1.x版本及以后保证数据单分区有序的条件2.3、kafka1.x版本及以后开启幂等性数据单分区有序的原因 一、生产经验数据有序 单分区内&#xff0c;数据有序。如下图partion…

linux 安装php8.1 ZipArchive和libzip最新版扩展安装

1、概述 安装前咱们先看下我本地环境 [rootelk php8]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo) [rootelk php8]# [rootelk php8]# ./bin/php -v PHP 8.1.18 (cli) (built: Apr 17 2023 13:15:17) (NTS) Copyright (c) The PHP Group Z…

24、LLVM编译流程

一、LLVM 1.1 LLVM概述 LLVM是构架编译器(compiler)的框架系统,以C编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本.LLVM计划启动于2000年,最初由美国…

阳光开朗孔乙己,会否奔向大泽乡

前言 &#x1f525;学历对职业关系到底有什么影响呢&#xff1f;&#x1f525;学历给我们带来了优势吗&#xff1f;&#x1f525;到底是什么造成了"孔乙己的长衫"&#xff1f; 孔乙己是中国清代作家鲁迅创作的一篇短篇小说&#xff0c;发表于1919年。这部作品被认为是…

三个练手的软件测试实战项目(附全套视频跟源码)偷偷卷死他们

项目一&#xff1a;12306抢票项目 项目测试目的 学会Selenium定位web元素的方法 熟练浏览器调试工具使用 项目主体步骤 1&#xff09; 人工走一遍流程&#xff0c;对自动化的流程心中有数 2&#xff09; 按步骤拆分&#xff0c;然后对每一个小步骤编写自动化脚本 3&#xff…

大淘宝技术斩获NTIRE 2023视频质量评价比赛冠军(内含夺冠方案)

近日&#xff0c;CVPR NTIRE 2023 Quality Assessment of Video Enhancement Challenge比赛结果公布&#xff0c;来自大淘宝音视频技术团队的同学组成「TB-VQA」队伍&#xff0c;从37支队伍中脱颖而出&#xff0c;拿下该比赛&#xff08;唯一赛道&#xff09;冠军。此次夺冠是团…

资产管理系统

目录 1、资产管理模块 资产入库 ​编辑 闲置资产分配 资产调配 资产回收 资产报废 车辆维修 2、资产设置模块 资产标准规格 资产分类 3、资产报表模块 全部资产报表 已分配资产报表 资产分类报表 到期资产报表 机构资产报表 资产折旧报表 机构分类报表 资产…