当前位置: 首页 > news >正文

智能优化算法:浣熊优化算法-附代码

智能优化算法:浣熊优化算法

文章目录

  • 智能优化算法:浣熊优化算法
    • 1.浣熊优化算法
      • 1.1 初始化
      • 1.2 阶段一:狩猎和攻击(探索阶段)
    • 2.实验结果
    • 3.参考文献
    • 4. Matlab

摘要:浣熊优化算法(Coati Optimization Algorithm(COA)),是于2022年提出的一种基于浣熊行为的优化算法,该算法通过模拟浣熊猎食行为来进行寻优,具有寻优能力强,收敛速度快等特点

1.浣熊优化算法

1.1 初始化

与其他优化算法类似,在寻优空间里随机初始化种群:
x i , j = l b j + r ⋅ ( u b j − l b j ) (2) x_{i, j}=l b_j+r \cdot\left(u b_j-l b_j\right) \tag{2} xi,j=lbj+r(ubjlbj)(2)
其中 x i , j x_{i,j} xi,j为个体, l b j lb_j lbj为寻优下边界, u b j ub_j ubj为寻优上边界, r r r为[0,1]之间的随机数。

1.2 阶段一:狩猎和攻击(探索阶段)

在搜索空间中更新coatis种群的第一阶段是基于模拟它们攻击鬣蜥(Iguana)时的策略进行建模的。在这一策略中,一群coatis爬上树去够一只鬣蜥并吓唬它。其他几只coatis在树下等待,直到鬣蜥摔倒在地。鬣蜥落地后,coatis攻击并猎杀它。这种策略导致coatis移动到搜索空间的不同位置,这表明了COA在解决问题空间的全局搜索中的探索能力。

在COA设计中,假设种群中最好成员的位置是鬣蜥的位置。也有人假设,一半的鬣蜥爬上树,另一半等待鬣蜥掉到地上。因此,使用等式(4)对从树上升起的涂层的位置进行数学模拟。
X i P 1 : x i , j P 1 = x i , j + r ⋅ ( Iguana  j − I ⋅ x i , j ) , for  i = 1 , 2 , … , ⌊ N 2 ⌋ a n d j = 1 , 2 , … , m . (4) X_i^{P 1}: x_{i, j}^{P 1}=x_{i, j}+r \cdot\left(\text { Iguana }_j-I \cdot x_{i, j}\right), \text { for } i=1,2, \ldots,\left\lfloor\frac{N}{2}\right\rfloor \\and j=1,2, \ldots, m. \tag{4} XiP1:xi,jP1=xi,j+r( Iguana jIxi,j), for i=1,2,,2Nandj=1,2,,m.(4)
鬣蜥摔倒在地后,它被放置在搜索空间中的一个随机位置。基于这个随机位置,地面上的涂层在搜索空间中移动,这是使用等式(5)和(6)模拟的。

Iguana  G : Iguana  a j G = l b j + r ⋅ ( u b j − l b j ) , j = 1 , 2 , … , m ,  (5) \begin{aligned} & \text { Iguana }^G: \text { Iguana } a_j^G=l b_j+r \cdot\left(u b_j-l b_j\right), j=1,2, \ldots, m \text {, } \end{aligned}\tag{5}  Iguana G: Iguana ajG=lbj+r(ubjlbj),j=1,2,,m(5)

X i p 1 : x i , j P 1 = { x i , j + r ⋅ ( Iguana  j j G − I ⋅ x i , j ) , F Iguana  G < F i , x i , j + r ⋅ ( x i , j − Iguana  j G ) , else,  for  i = ⌊ N 2 ⌋ + 1 , ⌊ N 2 ⌋ + 2 , … , N and  j = 1 , 2 , … , m .  (6) \begin{aligned} & X_i^{p 1}: x_{i, j}^{P 1}=\left\{\begin{array}{cl} x_{i, j}+r \cdot\left(\text { Iguana } j_j^G-I \cdot x_{i, j}\right), & F_{\text {Iguana }}^G<F_i, \\ x_{i, j}+r \cdot\left(x_{i, j}-\text { Iguana }_j^G\right), & \text { else, } \end{array}\right. \\ & \text { for } i=\left\lfloor\frac{N}{2}\right\rfloor+1,\left\lfloor\frac{N}{2}\right\rfloor+2, \ldots, N \text { and } j=1,2, \ldots, m \text {. } \\ & \end{aligned}\tag{6} Xip1:xi,jP1={xi,j+r( Iguana jjGIxi,j),xi,j+r(xi,j Iguana jG),FIguana G<Fi, else,  for i=2N+1,2N+2,,N and j=1,2,,m(6)

如果更新后的个体更优则更新当前个体,否则保持原状:
X i = { X i P 1 , F i P 1 < F i X i , else.  (7) X_i=\left\{\begin{aligned} X_i^{P 1}, & F_i^{P 1}<F_i \\ X_i, & \text { else. } \end{aligned}\right. \tag{7} Xi={XiP1,Xi,FiP1<Fi else. (7)
这里 X i P 1 X_i^{P1} XiP1是更新后的新位置, I g u a n a Iguana Iguana为猎物鬣蜥的位置, r r r为[0,1]之间的随机数。I为随机选择的1或者2。

1.3 阶段二:逃离捕食者(开发阶段)

更新coatis在搜索空间中的位置的过程的第二阶段是基于coatis遇到捕食者和逃离捕食者时的自然行为进行数学建模的。当捕食者攻击一只coatis时,它会从自己的位置逃跑。Coati在这一战略中的举措使其处于接近当前位置的安全位置,这表明了COA在本地搜索中的局部搜索能力。

为了模拟这种行为,基于等式(8)和(9),在每个coatis所在的位置附近生成随机位置。
l b j local  = l b j t , u b j local  = u b j t , where  t = 1 , 2 , … , T (8) \begin{gathered} l b_j^{\text {local }}=\frac{l b_j}{t}, u b_j^{\text {local }}=\frac{u b_j}{t}, \text { where } t=1,2, \ldots, T \end{gathered}\tag{8} lbjlocal =tlbj,ubjlocal =tubj, where t=1,2,,T(8)

X i P 2 : x i , j P 2 = x i , j + ( 1 − 2 r ) ⋅ ( l b j local  + r ⋅ ( u b j local  − l b j local  ) ) , i = 1 , 2 , … , N , j = 1 , 2 , … , m (9) \begin{gathered} X_i^{P 2}: x_{i, j}^{P 2}=x_{i, j}+(1-2 r) \cdot\left(l b_j^{\text {local }}+r \cdot\left(u b_j^{\text {local }}-l b_j^{\text {local }}\right)\right), \\ i=1,2, \ldots, N, j=1,2, \ldots, m \end{gathered}\tag{9} XiP2:xi,jP2=xi,j+(12r)(lbjlocal +r(ubjlocal lbjlocal )),i=1,2,,N,j=1,2,,m(9)

其中t 为迭代次数,如果更新后的个体更优则更新当前个体,否则保持原状:
X i = { X i P 2 , F i P 2 < F i X i , else  (10) X_i=\left\{\begin{aligned} X_i^{P 2}, & F_i^{P 2}<F_i \\ X_i, & \text { else } \end{aligned}\right.\tag{10} Xi={XiP2,Xi,FiP2<Fi else (10)

算法流程图如下:

在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

[1]Dehghani Mohammad,Montazeri Zeinab,Trojovská Eva,Trojovský Pavel. Coati Optimization Algorithm: A new bio-inspired metaheuristic algorithm for solving optimization problems[J]. Knowledge-Based Systems,2023,259.

uristic algorithm for solving optimization problems[J]. Knowledge-Based Systems,2023,259.

4. Matlab

相关文章:

智能优化算法:浣熊优化算法-附代码

智能优化算法&#xff1a;浣熊优化算法 文章目录 智能优化算法&#xff1a;浣熊优化算法1.浣熊优化算法1.1 初始化1.2 阶段一&#xff1a;狩猎和攻击&#xff08;探索阶段&#xff09; 2.实验结果3.参考文献4. Matlab 摘要&#xff1a;浣熊优化算法&#xff08;Coati Optimizat…...

【51单片机】数码管显示(样例展示以及异常分析)

🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 ⭐数码管 比如要显示“6”,那么下面图片中,AFEDCG=1,B=0 对应到数码管上,就是 ⭐原理 🎊P22~P24控制LED1~...

Android InputChannel事件发送接收系统分析

本文基于Android12。 InputChannel表示其他进程通过文件描述符传递输入事件到View的通道&#xff0c;因为需要跨进程传输&#xff0c;实现了Parcelable序列化接口&#xff0c;所以也能够理解Java层的InputChannel后面为什么使用copyTo()方法初始化。 输入事件的接收方是View&…...

Java时间类(五)-- LocalDate()类

目录 引言: 1. LocalDate的概述: 2. LocalDate的常用方法: 引言: (1)Date存在的缺陷: 如果不格式化,打印出的日期可读性差://获取当前时间Date date = new Date();System.out.println("date = " + date); //date = Wed May 03 22:30:24 CST...

用手机号码归属地 API 开发的应用推荐

引言 手机号码归属地 API是一种提供手机号码归属地信息的接口&#xff0c;通过该接口&#xff0c;可以获取手机号码所属的省份、城市、运营商等信息。它可以帮助企业更好地了解客户&#xff0c;为个性化推荐和精准广告投放提供数据支持。作为一种数据服务&#xff0c;手机号码…...

测试从业第 3 年,我看到了终点......

先说明&#xff0c;今天的内容&#xff0c;是写给想成为高级测试开发、自动化测试专家的人看的&#xff0c;因为&#xff0c;它可能颠覆你的认知。 众所周知&#xff0c;如今无论是大厂还是中小厂&#xff0c;自动化测试基本是标配了&#xff0c;毕竟像双11、618 这种活动中庞…...

结巴分词原理分析

结巴分词器工作原理 结巴分词是一款python写成的开源中文分词器&#xff0c;分词过程大致如下&#xff1a; 首先&#xff0c;结巴使用正则表达式将输入文本切割成若干中文块&#xff0c;接着对每个中文块B做处理&#xff0c;将B转成有向无环图(DAG)。DAG是以{key:list[i,j...…...

JavaEE 第三-四周

计算机Z20-第3-4周作业 总分&#xff1a;100分 得分&#xff1a;74.2分 1 . 填空题 简单 5分 在web.xml文件中&#xff0c;<url-pattern>/xxxxServlet</url-pattern>中的第一个‘/’表示__________。 学生答案 当前web应用程序的根目录 2 . 填空题 简…...

Ububtu20.04 无法连接外屏(显卡驱动问题导致)

Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; 1. 问题描述2. 解决方案 1. 问题描述 一开始我的ububt…...

配置JDK环境变量

文章目录 查看电脑系统下载及安装JavaSE配置系统环境变量测试环境变量配置是否成功。 查看电脑系统 运行输入框中输入&#xff1a;control 下载及安装JavaSE 这个从网上下载就行&#xff0c;jdk-8u141-windows-x64.exe&#xff0c;不提供下载方式了。 主要讲解安装过程&a…...

保护移动设备免受恶意软件侵害优秀方法

几天前&#xff0c;移动恶意软件攻击增加了500%显然&#xff0c;我们大多数人都不知道不能很好地保护我们的手机下面小编揭秘有效保护移动设备免受恶意软件侵害的最佳方法。 1、使用移动反恶意软件 恶意软件很容易感染智能手机和平板电脑&#xff0c;因此在设备上安装可靠的…...

一个人在家怎么赚钱?普通人如何通过网络实现在家就能赚钱

近年来&#xff0c;随着互联网的飞速发展&#xff0c;嗅觉敏锐的人只要使用互联网就可以快乐地赚钱。一般来说&#xff0c;网上赚钱的投资较少&#xff0c;有时有一台能上网的电脑或手机就够了&#xff0c;所以大家有时称其为“无成本或低成本网赚”。今天就分享一个人在家如何…...

ChatGPT诞生的新岗位:提示工程师(Prompt Engineer)

ChatGPT诞生的新岗位&#xff1a;提示工程师&#xff08;Prompt Engineer&#xff09; Prompt 工程师是什么? 是识别人工智能的错误和隐藏功能&#xff0c;以便开发者可以对这些发现进行处理。 如果你正在寻找科技领域最热门的工作&#xff0c;你可以尝试了解如何与AI聊天机…...

机器学习笔记 使用PPOCRLabel标注自己的OCR数据集

一、PPOCRLabel的安装 最简单的方式就是直接pip安装,如下命令。 pip install PPOCRLabel -i https://pypi.douban.com/simple/ 运行的时候,直接激活安装了PPOCRLabel的环境后,输入PPOCRLabel回车即可运行,不过PPOCRLabel依赖PyQt5,所以会要求安装PyQt5,按要求安装或者提前…...

【C++初阶】类和对象(二)

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C初阶 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C初阶】…...

深入探讨Java、Spring和Dubbo的SPI机制

在Java开发领域中&#xff0c;SPI&#xff08;Service Provider Interface&#xff09;是一种用于实现框架扩展的机制。Java本身提供了SPI机制&#xff0c;Spring和Dubbo也都有自己的SPI机制。本文将介绍Java、Spring、Dubbo三者SPI机制的原理和区别。 一、Java SPI机制 Java…...

使用机器人为无线传感器网络提供服务(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 无线传感器网络是一种无线网络&#xff0c;包括大量循环的、自定向的、微小的、低功耗的设备&#xff0c;称为传感器节点&…...

QT自制软键盘 最完美、最简单、跟自带虚拟键盘一样

QT自制软键盘 最完美、最简单、跟自带虚拟键盘一样 [1] QT自制软键盘 最完美、最简单、跟自带虚拟键盘一样一、本自制虚拟键盘特点二、windows打开系统自带软键盘三、让键盘界面保持在最上方、不改变底层界面焦点四、长按按键重复输入键盘内容五、模拟键盘点击事件完成虚拟键盘…...

优思学院|8D和DMAIC两种方法应如何选择?

在现代的商业环境中&#xff0c;客户投诉是一个非常常见的问题。当客户不满意产品或服务时&#xff0c;他们往往会向企业发出投诉。质量管理部门是一个负责处理这些投诉的重要部门&#xff0c;因为它们需要确保产品和服务的质量满足客户的期望。改善方法是质量管理部门用来解决…...

回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价)

回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价) 目录 回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价)预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价) 模型描述 多元线性回归(Multip…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...