23年中科院1区算法|长鼻浣熊优化算法COA原理及其利用与改进(Matlab/Python)

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

CEC2005中的测试在这里插入图片描述

本文
KAU将介绍一个2023年1月发表在中科院1区KBS上的优化算法——长鼻浣熊优化算法(Coati Optimization Algorithm,COA)[1]

在这里插入图片描述

该算法由Dehghani教授等人[1]于2023年提出,其模拟了北美长鼻浣熊合作攻击鬣蜥时的行为(勘探)以及分散逃离捕食者时的行为(开发),具有无需设置控制参数、高效率以及较强的平衡能力(勘探/开发)等优势,与11种优化算法在51个基准函数上进行测试,显示出其惊艳的性能。

在这里插入图片描述

图源文献[1]

本文将介绍COA原理、利用与改进,最后也给出了算法的MATLAB和Python实现。将这样性能优异的新算法应用于一些工程问题也能够在一定程度上提升文章的创新性。

00 目录

1 长鼻浣熊优化 (COA) 算法原理

2 代码目录

3 算法性能

4 源码获取

01 长鼻浣熊优化 (COA)算法原理

COA通过合作狩猎鬣蜥以及分散逃离捕食者两种行为来实现模型参数的优化,原理​如下:

1.1 勘探—合作狩猎鬣蜥
在这里插入图片描述

图源文献[1]

在该阶段,一半的长鼻浣熊爬上一棵树接近鬣蜥进行狩猎,同时另一半长鼻浣熊会聚集在树下游走等待鬣蜥落地,当鬣蜥落地,长鼻浣熊将猎杀它,鬣蜥即代表了全局最优位置,这种求解过程展现了COA的全局探索能力。

爬树长鼻浣熊行为的数学模型为:
在这里插入图片描述

鬣蜥落地位置随机,地面长鼻浣熊也将据此随机移动,其数学模型为:
在这里插入图片描述

式中I为随机整数。

1.2 开发—分散逃离捕食者

在这里插入图片描述

图源文献[1]

若出现捕食者攻击长鼻浣熊,则长鼻浣熊将逃离原来的位置,并在附近的安全地点寻求庇护。这反映了COA在局部搜索方面的性能,其数学模型为:
在这里插入图片描述

每次移动后,都将采用贪婪策略进行位置更新,即:

在这里插入图片描述

1.5 算法流程

COA算法已介绍完毕,包括勘探和开发两个阶段,结构简明,并且性能也不错,后续KAU也会推出COA的原创改进。该算法的的程图如下:
在这里插入图片描述

1.6 算法利用&改进

利用方面,COA的勘探阶段设计的比较有意思,其将种群分为两拨,各自执行不同的公式,前1/2受到了种群信息的引导,后1/2则进行分散的随机搜索,种群既能得到一定引导信息,同时也能分散扩大搜索范围,使得种群具有良好的全局性能,这一种策略可以加以利用。并且可以看到COA在开发阶段更倾向于在自身周围进行细致搜索,因此其全局最优的引导信息都落在了勘探阶段,进一步可以看到勘探阶段的重要性,想必将其引入其他算法中也能取得效果。

改进方面,可以注意COA的开发阶段,其主要是在当前个体周围进行搜索,没有种群信息的引导,可能不利于后期的收敛,可以引入全局最优信息对公式进行改进。后续KAU也将对COA算法进行原创改进,感兴趣的朋友可以关注一波哦~

02 代码目录

在这里插入图片描述

(左Python,右Matlab)

代码包含MATLAB和Python,Python代码为KAU按照原作者的Matlab代码手搓而成。考虑到很多同学获取代码后,MATLAB代码部分有乱码(MATLAB版本问题),有几个方法:

①可以将MATLAB版本改为2020及以上;

②将m文件用记事本打开,再将记事本中的代码复制到Matlab即可

代码都经过作者重新注释,代码清爽,可读性强。

03 算法性能

采用标准测试函数初步检验其寻优性能

在MATLAB中,进行标准函数的测试,执行程序结果如下:

在这里插入图片描述

在Python中,进行标准函数的测试,执行程序结果如下:

在这里插入图片描述

​MATLAB和Python都进行了函数测试,测试效果都不错,其收敛速度和精度很好。

04 源码获取

在公众号(KAU的云实验台)后台回复 COA 即可

后续KAU将更新关于COA的原创改进算法,感兴趣的话可以关注不迷路~

参考文献

[1] DEHGHANI M, MONTAZERI Z, TROJOVSKÁ E, et al.Coati Optimization Algorithm: a new bio-inspired metaheuristic algorithm for solving optimization problems[J].Knowledge-based systems, 2023, 259: 110011.

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。

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

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

相关文章

SpringBoot源码解读与原理分析(三十四)SpringBoot整合JDBC(三)声明式事务的传播行为控制

文章目录 前言10.5 声明式事务的传播行为控制10.5.1 修改测试代码(1)新建一个Service类,并引用UserService(2)修改主启动类 10.5.2 PROPAGATION_REQUIRED10.5.2.1 tm.getTransaction(1)获取事务…

IO进程线程作业day7

信号灯集共享内存 自定义头文件 #ifndef SEM_H_ #define SEM_H_ //创建信号灯集, int creat_t(int number); //申请释放资源 int P(int semid,int semno); //申请释放资源 int V(int semid,int semno); //删除信号灯集 int del(int semid); #endif信号灯集函数集合 #include…

物资管理新篇章:Java+SpringBoot实战

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

基于 ResNet50和 SVM + 决策树的人脸口罩检测

欢迎收看,这篇文章是关于我如何使用 ResNet50作为特征提取器来构建掩码检测,然后使用支持向量机(SVM) 决策树和叠加集成方法作为分类器的一个快速解释。 为了向研究人员致敬,这个应用程序是基于研究论文,题目是“在2019冠状病毒…

分布式应用:kylin 部署 zabbix 监控平台

目录 一、实验 1.环境 2. kylin 修改mysql数据库 3. kylin 部署 zabbix 监控平台 4. kylin 修改 zabbix 配置 5. kylin 修改zabbix web 二、问题 1. zabbix_server 查看版本报错 2.zabbix_server 文件如何去掉注释"#"和空行 3. zabbix图表显示异常 4.zabbi…

前端常见面试题之vue3

文章目录 1. vue3比vue2有哪些优势2. 描述vue3的生命周期3. 如何看待vue3中的Composition API 和 Options API4. 如何理解ref、 toRef、和toRefs?5. vue3升级了哪些功能6. Composition API如何实现代码逻辑的复用(hook)7. Vue3如何实现响应式的8.Vue3使用Proxy对象…

2-22 方法、面向对象、类、JVM内存、构造方法

文章目录 方法的重载面向对象类、属性和方法成员变量默认值属性JVM简单内存分析栈空间堆空间 构造方法执行过程构造器注意点 方法的重载 一个类中名称相同,但是参数列表不同的方法 参数列表不同是指: 形参类型形参个数形参顺序 面向对象 field —— …

linux系统---防火墙拓展

目录 一、iptables 1.基本语法 2.四表五链——重点记忆 2.1四表 2.2五链 2.3总结 3.iptables选项示例 3.1 -Z 清空流量计数 3.2 -P 修改默认规则 3.3 -D 删除规则 3.4 -R 指定编号替换规则 4.白名单 5.通用匹配 6.示例 6.1添加回环网卡 6.2可以访问端口 6.3 主…

架构设计实践:熟悉架构设计方法论,并动手绘制架构设计图

文章目录 一、架构设计要素1、架构设计目标2、架构设计模式(1)分而治之(2)迭代式设计 3、架构设计的输入(1)概览(2)功能需求 - WH分析法(3)质量 - “怎么”分…

都说了别用BeanUtils.copyProperties,这不翻车了吧

分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/ 故事 新年新气象,小猫也是踏上了新年新征程,自从小猫按照老猫给的建议【系统梳理大法】完完整整地梳理完毕系统之后,小猫对整个系统的把控可谓又是上到可一个新的高度。…

Arduino中安装ESP32网络抽风无法下载 暴力解决办法 python

不知道什么仙人设计的arduino连接网络部分,死活下不下来。(真的沙口,第一次看到这么抽风的下载口) 操作 给爷惹火了我踏马解析json选zip直接全部下下来 把这个大家的开发板管理地址下下来跟后面python放在同一目录下&#xff0c…

【Java程序设计】【C00317】基于Springboot的智慧社区居家养老健康管理系统(有论文)

基于Springboot的智慧社区居家养老健康管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的智慧社区居家养老健康管理系统设计与实现,本系统有管理员、社区工作人员、医生以及家属四种角色权限 管…

理解这几个安全漏洞,你也能做安全测试!

如今安全问题显得越来越重要,一个大型的互联网站点,你如果每天查看日志,会发现有很多尝试攻击性的脚本。 如果没有,证明网站影响力还不够大。信息一体化的背后深藏着各类安全隐患,例如由于开发人员的不严谨导致为Web应…

基于24扇区细分的三电平逆变器异步电机直接转矩控制系统学习

导读:本期文章介绍异步电机三电平24扇区的直接转矩控制。三电平逆变器直接转矩控制中,传统的PWM控制方法存在错判区间等问题。本文在借鉴三电平逆变器单一矢量及合成矢量的直接转矩控制研究和两电平12扇区直接转矩控制的基础上,将两电平12扇区…

堆/堆排序(C/C++)

本篇文章将会较为全面的介绍堆的概念以及实现堆两个重要算法:向上调整算法和向下调整算法。接着实现了堆排序。 若想查看对应位置,可直接按照以下目录进行查看: 目录 1.堆的概念及结构 2.堆的实现 2.1 堆的向上调整算法 2.2 堆的向下调整算法…

beego代理前端web的bug

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、beego代理前端web的bug总结 一、beego代理前端web的bug *报错,为web压缩包index.html里面的注释被错误解析,删掉就行 2024/02/22 10:2…

解析Hadoop三大核心组件:HDFS、MapReduce和YARN

目录 HadoopHadoop的优势 Hadoop的组成HDFS架构设计Yarn架构设计MapReduce架构设计 总结 在大数据时代,Hadoop作为一种开源的分布式计算框架,已经成为处理大规模数据的首选工具。它采用了分布式存储和计算的方式,能够高效地处理海量数据。Had…

蛇形矩阵1

题目描述 把数1,2,3,…,N*N按照“蛇形1”放入N*N的矩形中,输出结果。 下面是N10的蛇形1的图示 输入格式 第一行1个正整数:N,范围在[1,100]。 输出格式 N行,每行N个整数。 输入/…

docker下gitlab安装配置

一、安装及配置 1.gitlab镜像拉取 docker pull gitlab/gitlab-ce:latest2.运行gitlab镜像 docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always --privilegedtrue -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v …

小家电—简易过零检测电路

趁刚开工时间有空,总结分析下,在工作项目中常用过零检测电路。 图一 图二 图一在项目中较为常用,两个电路都是通过钳位二极管限幅产生过零脉冲信号。 过零信号高电平被钳位在5.7V,低电平为-0.7V 高电平:VCC0.7V 低电…