【智能算法】猎豹优化器(CO)原理及实现

在这里插入图片描述

目录

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


1.背景

2022年,MA Akbari等人受到自然界中猎豹捕猎行为启发,提出了猎豹优化器(The Cheetah Optimizer,CO)。

2.算法原理

2.1算法思想

CO法对猎豹的捕猎机制进行模拟,主要包括搜索、坐等和攻击 3 种策略。
在这里插入图片描述

2.2算法过程

搜索策略

猎豹用两种方式寻找猎物:即在区域内全范围扫描或主动搜索。在狩猎期间,根据猎物的条件、区域的覆盖范围和猎豹自身的条件,猎豹可能会选择这两种搜索模式的连锁。位置更新为:
x i , j t + 1 = x i , j t + r i , j − 1 ⋅ α i , j t (1) x_{i,j}^{t+1}=x_{i,j}^{t}+r_{i,j}^{-1}\cdot\alpha_{i,j}^{t}\tag{1} xi,jt+1=xi,jt+ri,j1αi,jt(1)
其中,ri,ai为猎豹i的随机化参数和步长,ai一般可设置为0.001*t/T。

坐等策略

为避免猎物意识到猎豹的存在,猎豹保持位置,等待猎物靠近:
x i , j t + 1 = x i , j t (2) x_{i,j}^{t+1}=x_{i,j}^{t}\tag{2} xi,jt+1=xi,jt(2)
该策略能够避免 CO 过早收敛。
在这里插入图片描述

攻击策略

猎豹利用速度和灵活性捕捉猎物。在群体狩猎中,每只猎豹可以根据逃跑的猎物和首领或附近猎豹的状态调整自己的位置:
x i , j t + 1 = x B , j t + θ i , j ⋅ β i , j t (3) x_{i,j}^{t+1}=x_{B,j}^{t}+\theta_{i,j}\cdot\beta_{i,j}^{t}\tag{3} xi,jt+1=xB,jt+θi,jβi,jt(3)

其中,B代表猎物, θ , β \theta,\beta θ,β转向因子和相互作用因子。

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Akbari M A, Zare M, Azizipanah-Abarghooee R, et al. The cheetah optimizer: A nature-inspired metaheuristic algorithm for large-scale optimization problems[J]. Scientific reports, 2022, 12(1): 10953.

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

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

相关文章

软件测试学习(一)

1.软件测试的定义 软件是控制计算机硬件工作的工具。 软件基本组成:客服端、服务器、数据库 软件产生过程:需求产生->需求文档->设计效果图->产品开发->产品测试->部署上线 软件测试的定义:使用技术手段来验证软件产品是否…

Java编程使用CGLIB动态代理介绍与实战演示

文章目录 前言技术积累核心概念主要功能适用场景与JDK动态代理的对比 实战演示定义待代理的目标类实现MethodInterceptor接口使用代理对象 测试结果写在最后 前言 在Java编程中,CGLIB (Code Generation Library) 是一个强大的高性能代码生成库,它通过生…

5.Python数据分析—Pandas数据结构详讲

5.Python数据分析—Pandas数据结构详讲 摘要个人简介简介Series定义和特点创建方法属性和方法 DataFrame定义和特点创建方法数据获取和操作 索引对象种类和应用作用和管理 摘要 Pandas是一个开源的Python数据分析库,提供了高性能、易用的数据结构和数据分析工具。它…

向量数据库实战介绍

本文将介绍三种常用的向量数据库:faiss, Milvus和Qdrant,并给出一个具体的使用例子。 向量数据库(Vector Database)是一种专门用于存储、管理、查询、检索向量的数据库,主要应用于人工智能、机器学习、数据挖掘等领域。…

STM32学习和实践笔记(4): 分析和理解GPIO_InitTypeDef GPIO_InitStructure (b)

继续上篇博文:STM32学习和实践笔记(4): 分析和理解GPIO_InitTypeDef GPIO_InitStructure (a)-CSDN博客 往下写, 为什么:当GPIO_InitStructure.GPIO_PinGPIO_Pin_0 ; 时,其实就是将对应的该引脚的寄存器地…

如何处理Flutter内存泄漏检测和优化

处理Flutter内存泄漏问题是构建高性能、稳定的应用程序的关键部分之一。在本文中,我将详细介绍如何检测和优化Flutter内存泄漏问题,以确保应用程序的良好性能和用户体验。 1. 了解内存泄漏 在深入了解如何处理Flutter内存泄漏之前,首先需要了…

基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)

目录 📚 前言 📑摘要 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 管理员信息属性 💬 学生信息实体属性 💬 宿舍安排信息实体属性 💬 卫生检查信息实体属性 &…

LeetCode 第391场周赛个人题解

目录 哈沙德数 原题链接 思路分析 AC代码 换水问题 II 原题链接 思路分析 AC代码 交替子数组计数 原题链接 思路分析 AC代码 最小化曼哈顿距离 原题链接 思路分析 AC代码 哈沙德数 原题链接 思路分析 签到题,不说了 AC代码 class Solution:def s…

实时获取 Pacific Time Zone (太平洋时区) 时间

实时获取 Pacific Time Zone [太平洋时区] 时间 1. Google -> Pacific Time2. Pacific Time - exact time nowReferences 1. Google -> Pacific Time 2. Pacific Time - exact time now https://time.is/zh/PT References [1] Yongqiang Cheng, https://yongqiang.blog…

freeRTOS学习

总结 1.总结任务调度算法之间的区别 调度算法:抢占式调度:优先级高的任务可以打断低优先级任务的执行,适用于不同优先级任务的执行。 时间片轮换:分配时间片(1ms),时间片耗尽时,任…

[Python学习篇] Python创建项目

新建项目 打开开发工具 PyCharm 选择 New Project 目录结构如下 运行 hello world 选中项目,右键 New -> Python File 进行创建文件 运行项目

Java中生成一个唯一的文件名的方法

使用java.util.UUID&#xff08;通用唯一识别码&#xff09;的randomUUID()方法&#xff1a; import java.util.UUID;public class Test {public static void main(String[] args) {for (int i 0; i < 100; i) {String fileName UUID.randomUUID().toString();System.out…

设计模式-结构型-享元模式Flyweight

享元模式的特点&#xff1a; 享元模式可以共享相同的对象&#xff0c;避免创建过多的对象实例&#xff0c;从而节省内存资源 使用场景&#xff1a; 常用于需要创建大量相似的对象的情况 享元接口类 public interface Flyweight { void operate(String extrinsicState); } 享…

加域报错:找不到网络路径

在尝试将计算机加入Windows域时&#xff0c;如果收到“找不到网络路径”的错误提示&#xff0c;可能的原因及解决方法如下&#xff1a; 网络连接问题&#xff1a;确保计算机与域控制器之间的物理网络连接是正常的&#xff0c;可以通过ping命令测试与域控制器的连通性。例如&…

LCD1602显示屏

LCD1602显示 概述 LCD1602&#xff08;Liquid Crystal Display&#xff09;是一种工业字符型液晶&#xff0c;能够同时显示 1602 即 32 字符(16列两行) 引脚说明 //电源 VSS -- GND VDD -- 5V //对比度 VO -- GND //控制线 RS -- P1.0 RW -- P1.1 E -- P1.4 //背光灯 A -- 5…

大数据学习第十一天(复习linux指令3)

1、su和exit su命令就是用于账户切换的系统命令 基本语法&#xff1a;su[-] [用户名] 1&#xff09;-表示是否在切换用户后加载变量&#xff0c;建议带上 2&#xff09;参数&#xff1a;用户名&#xff0c;表示切换用户 3&#xff09;切换用户后&#xff0c;可以通过exit命令退…

欧拉路径欧拉回路

欧拉回路&#xff0c;指遍历图时通过图中每条边且仅通过一次&#xff0c;最终回到起点的一条闭合回路&#xff0c;适用于有向图与无向图&#xff0c;如果不强制要求回到起点&#xff0c;则被称为欧拉路径。 欧拉图&#xff1a;具备欧拉回路的图 无向图&#xff1a;图的所有顶…

Java解析实体类的属性和属性注释

前言 获取某个类的属性&#xff08;字段&#xff09;是我们经常都会碰到的&#xff0c;通常我们是通过反射来获取的。 但是有些特殊情况下&#xff0c;我们不仅要获取类的属性&#xff0c;还需要获取属性注释。这种情况下&#xff0c;我们只能通过注解去获取注释。可以自己定…

LC 111.二叉树的最小深度

111. 二叉树的最小深度 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a; 叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a; root [3,9,20,null,null,15,7] 输出&#xff1a;…

python读取excel,转换成json格式,for国际化前端菜单

# -*- coding: utf-8 -*-import pandas as pd import json# 读取Excel文件中的数据 excel_file rD:\解析excel\zy.xlsx df pd.read_excel(excel_file)# 生成中文JSON和英文JSON cn_data {} en_data {} pu_data {} special_data_cn {} special_data_en {} special_data_p…