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

2024-02-27 01:44

本文主要是介绍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.

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

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

这篇关于23年中科院1区算法|长鼻浣熊优化算法COA原理及其利用与改进(Matlab/Python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/750846

相关文章

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)