【智能算法】长鼻浣熊优化算法(COA)原理及实现

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献


1.背景

2023年,M Dehghani等人受到长鼻浣熊自然行为启发,提出了长鼻浣熊优化算法(Coati Optimization Algorithm,COA)。

2.算法原理

2.1算法思想

COA模拟浣熊的两种自然行为:攻击和捕猎鬣蜥和逃离捕食者,COA在两个不同的阶段进行更新。
在这里插入图片描述

2.2算法过程

阶段1:猎捕和攻击鬣蜥策略(探索阶段)

长鼻浣熊种群在搜索空间中更新的第一阶段,模拟了它们攻击鬣蜥的策略。在这个策略中,一群长鼻浣熊爬上树接近鬣蜥并吓唬它,其他长鼻浣熊在树下等待。当鬣蜥倒地后,长鼻浣熊攻击并猎杀它。这一策略使得长鼻浣熊在搜索空间中移动到不同位置,展现了它们在全局搜索中的探索能力:
X i P 1 : x i , j P 1 = x i , j + r ⋅ ( I g u a n a j − I ⋅ x i , j ) , f o r i = 1 , 2 , … , ⌊ N 2 ⌋ (1) X_i^{P1}: x_{i,j}^{P1}=x_{i,j}+r\cdot\left(Iguana_j-I\cdot x_{i,j}\right), \mathrm{for} i=1,2, \ldots,\left\lfloor\frac N2\right\rfloor \tag{1} XiP1:xi,jP1=xi,j+r(IguanajIxi,j),fori=1,2,,2N(1)
在鬣蜥落地后,将其放置在搜索空间的任意位置,地面上的浣熊在搜索空间中移动:
l g u a n a G : l g u a n a j G = l b j + r ⋅ ( u b j − l b j ) , j = 1 , 2 , … , m , X i P 1 : x i , j P 1 = { x i , j + r ⋅ ( l g u a n a j C − l ⋅ x i , j ) , F l g u a n a G < F i , x i , j + r ⋅ ( x i , j − l g u a n a j G ) , e l s e , (2) lguana^G: lguana_j^G= lb_j+r\cdot\left(ub_j-lb_j\right), j= 1, 2, \ldots, m,\\X_i^{P1}:x_{i,j}^{P1}=\begin{cases}x_{i,j}+r\cdot\left(lguana_j^C-l\cdot x_{i,j}\right),&F_{lguana^G}<F_i,\\\quad x_{i,j}+r\cdot\left(x_{i,j}-lguana_j^G\right),&else,\end{cases}\tag{2} lguanaG:lguanajG=lbj+r(ubjlbj),j=1,2,,m,XiP1:xi,jP1={xi,j+r(lguanajClxi,j),xi,j+r(xi,jlguanajG),FlguanaG<Fi,else,(2)
根据适应度更新位置:
X i = { X i P 1 , F i P 1 < F i , X i , e l s e . (3) X_i=\begin{cases}X_i^{P1},&\quad F_i^{P1}<F_i,\\\quad X_i,&\quad else.\end{cases}\tag{3} Xi={XiP1,Xi,FiP1<Fi,else.(3)
在这里插入图片描述
阶段2:逃离捕食者的过程(开发阶段)

当捕食者攻击浣熊时,浣熊会逃离它的位置:
l b j l o c a l = l b j t , u b j l o c a l = u b j t , w h e r e t = 1 , 2 , … , T . X i P 2 : x i , j P 2 = x i , j + ( 1 − 2 r ) ⋅ ( l b j l o c a l + r ⋅ ( u b j l o c a l − l b j l o c a l ) ) , (4) lb_{j}^{local}=\frac{lb_{j}}{t},ub_{j}^{local}=\frac{ub_{j}}{t}, \mathrm{where} t=1, 2, \ldots, T.\\X_{i}^{P2}: x_{i,j}^{P2}=x_{i,j}+(1-2r)\cdot\left(lb_{j}^{local}+r\cdot\left(ub_{j}^{local}-lb_{j}^{local}\right)\right),\tag{4} lbjlocal=tlbj,ubjlocal=tubj,wheret=1,2,,T.XiP2:xi,jP2=xi,j+(12r)(lbjlocal+r(ubjlocallbjlocal)),(4)
根据适应度更新位置:
X i = { X i P 2 , F i P 2 < F i , X i , e l s e , (5) X_i=\begin{cases}X_i^{P2},&\quad F_i^{P2}<F_i,\\\quad X_i,&\quad else,\end{cases}\tag{5} Xi={XiP2,Xi,FiP2<Fi,else,(5)

流程图
在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[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.

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

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

相关文章

C语言 函数——函数封装与程序的健壮性

目录 函数封装&#xff08;Encapsulation&#xff09; 如何增强程序的健壮性&#xff1f; 如何保证不会传入负数实参&#xff1f; 函数设计的基本原则 函数封装&#xff08;Encapsulation&#xff09; 外界对函数的影响——仅限于入口参数 函数对外界的影响——仅限于一个…

C++:内联函数inline,auto关键字,基于范围的for循环,nullpter

文章目录 1.内联函数 inline1.1 概念1.2查看方法1.3 特性1.4 题外话&#xff1a;宏 2.auto关键字2.1 auto 简介2.2 auto使用细则 3. 基于范围的for循环4. nullpter 1.内联函数 inline 1.1 概念 inline int Add(int x, int y) {return x y; } int main(){int ret 0;ret Add…

vim的一些查找及修改操作

:s/foo/bar/gc&#xff1a;在行中查找 foo 并询问是否替换为 bar。 :v/pattern/d&#xff1a;删除所有不匹配 pattern 的行。 :g/pattern/d&#xff1a;删除所有匹配 pattern 的行。 :g/pattern/s/foo/bar/g&#xff1a;在匹配 pattern 的行中&#xff0c;将 foo 替换为 bar。…

Etcd 故障节点修复

etcd: 3.3.11 查询出故障的节点 在正常节点上操作 export ETCDCTL_API=3 etcdctl --endpoints http://192.168.56.100:2379,http://192.168.56.101:2379 member list --write-out="table"export ETCDCTL_API=3 etcdctl --endpoints http://192.168.56.100:2379,htt…

Vue input密码输入框自定义密码眼睛icon

我们用的饿了么UI组件库里,密码输入框的icon是固定不变的,如下所示: 点击"眼睛"这个icon不变,现在需求是UI给的设计稿里,密码输入框的"眼睛"有如下两种: 代码如下: <el-input:key="passwordType"ref="password"

重装系统前备份笔记

一、点查看自定义快捷键可以定义一些快速启动方式 然后用不习惯的快捷键也能在这里改 二、android studio 快捷键导出备份 导入方法&#xff1a; android studio &#xff0d;>file->import setting ->选择jar包即可 导出studio的设置方法&#xff1a; android …

vite项目如何安装element

创建vitevue3项目 npm create vitelatest安装element包 # 选择一个你喜欢的包管理器# NPM $ npm install element-plus --save# Yarn $ yarn add element-plus# pnpm $ pnpm install element-plus创建和挂载Vue应用 1. 完整导入 直接挂载就完了。 // main.ts import { cre…

假期别闲着:REST API实战演练之创建Rest API

1、创建实体类&#xff0c;模拟实体对象 创建一个类&#xff0c;模拟数据数据库来存储数据&#xff0c;这个类就叫Person。 其代码如下&#xff1a; package com.restful;public class Person {private String name;private String about;private int birthYear;public Perso…

【jQuery】jQuery框架

目录 1.jQuery基本用法 1.1选择器 1.2jQuery对象 1.3事件绑定 1.4链式编程 1.5过滤方法 1.6样式操纵 1.6属性操纵 1.7操作value 1.8查找方法 1.9类名操纵 1.10事件进阶 1.11触发事件 1.12window事件绑定 2.节点操作与动画 2.1获取位置 2.2滚动距离 2.3显示/隐…

HBase详解(4)

Phoenix 安装(续) 在HBase中添加配置&#xff0c;是的Phoenix支持二级索引 # 进入HBase的安装目录下 cd /opt/software/hbase-2.5.5/conf/ # 编辑文件 vim hbase-site.xml 在文件中添加 <property><name>hbase.regionserver.wal.codec</name><value>o…

LangChain-15 Manage Prompt Size 管理上下文大小,用Agent的方式询问问题,并去百科检索内容,总结后返回

背景描述 这一节内容比较复杂&#xff1a; 涉及到使用工具进行百科的检索&#xff08;有现成的插件&#xff09;有AgentExecutor来帮助我们执行后续由于上下文过大&#xff0c; 我们通过计算num_tokens&#xff0c;来控制我们的上下文 安装依赖 pip install --upgrade --qu…

「每日跟读」英语常用句型公式 第7篇

「每日跟读」英语常用句型公式 第7篇 1. He might as well ___ 其实可以___(也无妨) We might as well walk to school (我们其实可以走去学校) We might as well give up (我们其实可以放弃) You might as well go home (你其实可以回家) You might as well listen to h…

数据库设计说明书(Word模板)

2 数据库环境说明 3 数据库的命名规则 4 逻辑设计 5 物理设计 5.1 表汇总 5.2 表结构设计 6 数据规划 6.1 表空间设计 6.2 数据文件设计 6.3 表、索引分区设计 6.4 优化方法 7 安全性设计 7.1 防止用户直接操作数据库 7.2 用户帐号加密处理 7.3 角色与权限控制 8 数据库管理与维…

标准C库文件操作

open 系列API 和 fopen系列API的区别 1.来源: -open 是UNIX系统调用函数(包括LINUX系统)&#xff0c;返回的是文件描述符 -fopen是ANSIC标准的C语言库函数&#xff0c;在不同系统重调用不同内核的API 2.移植性: fopen 是C标准函数&#xff0c;具有良好的移植性&#xff1b; 而…

photomaker:customizing realistic human photos via stacked id embedding

PhotoMaker: 高效个性化定制人像照片文生图 - 知乎今天分享我们团队最新的工作PhotoMaker的技术细节。该工作开源5天Githubstar数已过6千次&#xff0c;已列入Github官方Trending榜第一位&#xff0c;PaperswithCode热度榜第一位&#xff0c;HuggingFace Spaces趋势榜第一位。项…

Vue2 —— 学习(四)

一、收集表单数据 &#xff08;一&#xff09;介绍 前面其实已经 学过了 v-model 双向绑定事件&#xff0c;能获取到表单中的内容到 vm 实例对象中 但是前面只是收集文本框&#xff0c;下面学习一下 各种类型表单数据收集 &#xff08;单/多 选&#xff0c;下拉框&#xff0…

关闭TED报ORA-28365: wallet is not open

关闭钱包报 实际状态是open状态&#xff1a; V$ENCRYPTION_WALLET.STATUS列如果不为CLOSED&#xff0c;重启后也不能是CLOSED&#xff0c;或者清理完成后&#xff0c;再次初始化报“Master Key已存在”错误。 获取UNDO表空间大小 SQL> show parameter undo_tablespace NA…

Elastic:加速生成式人工智能体验

作者&#xff1a;Matt Riley 搜索驱动的人工智能和开发人员工具专为速度和规模而打造。 在大型语言模型&#xff08;LLM&#xff09;和生成式 AI 的每日突破中&#xff0c;开发者站在了这场运动的最前沿&#xff0c;影响着它的方向和可能性。在这篇博客中&#xff0c;我将分享…

第十三篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读Python自动化操作PPT

传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列 博文目录前言一、 Python自动化操作PPT能力介绍二、常用库介绍三、创建新PPT示例代码四、编辑现有PPT示例代码五、批量处理示例代码六、数据驱动生成示例代码七、合并与拆分示例代码八、母版和版式操作示…

词频统计程序

使用Hadoop MapReduce处理文本文件&#xff0c;Mapper负责将文本分割为单词&#xff0c;然后Reducer对每个单词进行计数&#xff0c;最后将结果写入输出文件。 // 定义WordCount公共类 public class WordCount {// 主入口方法&#xff0c;处理命令行参数public static void m…