当前位置: 首页 > 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…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

day52 ResNet18 CBAM

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

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...