最新智能优化算法: 中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法求解23个经典函数测试集,MATLAB代码

news2025/2/22 5:58:37

中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法由GUO Zhiqing 等人提出,该算法的灵感来自中华穿山甲独特的狩猎行为,包括引诱和捕食行为。
在这里插入图片描述

算法流程如下:

1. 开始
设置算法参数和最大迭代次数:初始化算法所需的参数和最大迭代次数。
计算适应度值并更新初始化:计算初始种群的适应度值,并更新穿山甲的位置 λM​ 和蚂蚁的位置 XA​。
更新当前种群位置和最优个体位置:更新当前种群的位置和最优个体的位置。
2. 迭代过程
2.1 判断是否达到最大迭代次数
如果当前迭代次数 t 小于最大迭代次数 tmax​,则继续迭代;否则,输出穿山甲的新位置 λMnew​​ 及其适应度值,并结束算法。
2.2 计算香气浓度 CM​
使用公式 (9) 到 (14) 计算香气浓度 CM​。
2.3 计算快速下降因子 C1​
使用公式 (28) 计算快速下降因子 C1​。
2.4 计算能量消耗因子 E
使用公式 (24) 计算能量消耗因子 E。
2.5 计算能量波动因子 A1​
使用公式 (23) 计算能量波动因子 A1​。
2.6 计算疲劳指数因子 Fatigue
使用公式 (25) 计算疲劳指数因子 Fatigue。
2.7 计算 Levy 飞行函数步长 Llevy​
使用公式 (29) 和 (30) 计算 Levy 飞行函数的步长 Llevy​。
2.8 计算香气轨迹因子 a
使用公式 (21) 和 (22) 计算香气轨迹因子 a。
2.9 根据香气浓度 CM​ 的不同范围进行不同的操作
2.9.1 如果 CM​≥0.2
计算位置 XA​:使用公式 (19) 和 (20) 计算蚂蚁的位置 XA​。
计算穿山甲的位置 λM​:使用公式 (26) 和 (27) 计算穿山甲的位置 λM​。
更新最优位置 X∗:使用公式 (31) 更新最优位置 X∗。
计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。
判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。
2.9.2 如果 0≤CM​<0.3
搜索和定位阶段:使用公式 (32) 和 (33) 计算穿山甲的位置 λM​。
更新最优位置 X∗:使用公式 (38) 更新最优位置 X∗。
计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。
判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。
2.9.3 如果 0.3≤CM​<0.6
快速接近阶段:使用公式 (34) 和 (35) 计算穿山甲的位置 λM​。
更新最优位置 X∗:使用公式 (38) 更新最优位置 X∗。
计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。
判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。
2.9.4 如果 CM​≥0.6
挖掘和进食阶段:使用公式 (36) 和 (37) 计算穿山甲的位置 λM​。
更新最优位置 X∗:使用公式 (38) 更新最优位置 X∗。
计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。
判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。
3. 结束
输出穿山甲的新位置 λMnew​​ 及其适应度值:当达到最大迭代次数时,输出最终的穿山甲位置及其适应度值,算法结束。

在这里插入图片描述

参考文献:
[1]Zhiqing GUO, Guangwei LIU, and Feng JIANG, Chinese Pangolin Optimizer: A novel bio-inspired metaheuristic for solving optimization problems

二、23个函数介绍

在这里插入图片描述
参考文献:

[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

三、部分代码及结果

SearchAgents_no = 100;
Max_iter = 1000;
fn=12;
Function_name=strcat('F',num2str(fn));
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
[Best_score,Best_pos,PO_cg_curve]=(SearchAgents_no,Max_iter,lb,ub,dim,fobj);
semilogy(PO_cg_curve,'LineWidth',2)
title(Function_name)
xlabel('迭代次数');
ylabel('适应度值');

在这里插入图片描述

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

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

四、完整MATLAB代码见下方名片

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

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

相关文章

使用 DeepSeek + 语音转文字工具 实现会议整理

目录 简述 1. DeepSeek与常用的语音转文字工具 1.1 DeepSeek 1.2 讯飞听见 1.3 飞书妙记 1.4 剪映电脑版 1.5 Buzz 2. 安装Buzz 3. 使用DeepSeek Buzz提取并整理语音文字 3.1 使用 Buzz 完成语音转文字工作 3.2 使用 DeepSeek 进行文本处理工作 3.3 整理成思维导图…

【OS安装与使用】part4-ubuntu22.04安装anaconda

文章目录 一、待解决问题1.1 问题描述1.2 解决方法 二、方法详述2.1 必要说明2.2 应用步骤2.2.1 官网下载Anaconda&#xff08;1&#xff09;确认自己的系统型号与硬件架构&#xff08;2&#xff09;官网下载对应版本 2.2.2 安装Anaconda&#xff08;1&#xff09;基于shell脚本…

Spring IoC DI:控制反转与依赖注入

目录 前言 - Spring MVC 与 Spring IoC 之间的关系 1. IoC 1.1 Spring Framework, Spring MVC, Spring boot 之间的联系[面试题] 1.2 什么是容器 1.3 什么是 IoC 2. DI 2.1 什么是 DI 3. Spring IoC & DI 3.1 Component 3.2 Autowired 4. IoC 详解 4.1 Applica…

数字化转型4化:标准化奠基-信息化加速-数字化赋能-智能化引领

​随着经济增速的放缓&#xff0c;大国体系所催生的生产力逐渐释放&#xff0c;后续业务的发展愈发需要精耕细作&#xff0c;精益理念也必须深入企业的骨髓。与此同时&#xff0c;在全球经济一体化的大背景下&#xff0c;企业面临着来自国内外同行&#xff0c;甚至是跨行业的激…

简单易懂,解析Go语言中的Channel管道

Channel 管道 1 初始化 可用var声明nil管道&#xff1b;用make初始化管道&#xff1b; len()&#xff1a; 缓冲区中元素个数&#xff0c; cap()&#xff1a; 缓冲区大小 //变量声明 var a chan int //使用make初始化 b : make(chan int) //不带缓冲区 c : make(chan stri…

C++基础知识学习记录—模版和泛型编程

1、模板 概念&#xff1a; 模板可以让类或者函数支持一种通用类型&#xff0c;在编写时不指定固定的类型&#xff0c;在运行时才决定是什么类型&#xff0c;理论上讲可以支持任何类型&#xff0c;提高了代码的重用性。 模板可以让程序员专注于内部算法而忽略具体类型&#x…

已解决IDEA无法输入中文问题(亲测有效)

前言 在使用IDEA的时候&#xff0c;比如我们想写个注释&#xff0c;可能不经意间&#xff0c;输入法就无法输入中文了&#xff0c;但是在其他地方打字&#xff0c;输入法仍然能够正常工作。这是什么原因呢&#xff0c;这篇文章带你解决这个问题&#xff01; 快捷键 如果你的I…

人工智能之目标追踪DeepSort源码解读(yolov5目标检测,代价矩阵,余弦相似度,马氏距离,匹配与预测更新)

要想做好目标追踪,须做好目标检测,所以这里就是基于yolov5检测基础上进行DeepSort,叫它为Yolov5_DeepSort。整体思路是先检测再追踪,基于检测结果进行预测与匹配。 一.参数与演示 这里用到的是coco预训练人的数据集&#xff1a; 二.针对检测结果初始化track 对每一帧数据都输出…

Copilot基于企业PPT模板生成演示文稿

关于copilot创建PPT&#xff0c;咱们写过较多文章了&#xff1a; Copilot for PowerPoint通过文件创建PPT Copilot如何将word文稿一键转为PPT Copilot一键将PDF转为PPT&#xff0c;治好了我的精神内耗 测评Copilot和ChatGPT-4o从PDF创建PPT功能 Copilot for PPT全新功能&a…

MySQL 主从复制原理及其工作过程

一、MySQL主从复制原理 MySQL 主从复制是一种将数据从一个 MySQL 数据库服务器&#xff08;主服务器&#xff0c;Master&#xff09;复制到一个或多个 MySQL 数据库服务器&#xff08;从服务器&#xff0c;Slave&#xff09;的技术。以下简述其原理&#xff0c;主要包含三个核…

MySQL远程连接配置

一、配置TCP服务地址绑定 配置文件路径 /etc/mysql/mysql.cnf /etc/mysql/mysql.conf.d/mysqld.cnf具体文件可以通过 mysql --help查看 配置项 # 只接受本地连接 bind-address 127.0.0.1 mysqlx-bind-address 127.0.0.1改为 # 接受任意IP地址连接 bind-address …

iOS开发书籍推荐 - 《高性能 iOS应用开发》(附带链接)

引言 在 iOS 开发的过程中&#xff0c;随着应用功能的增加和用户需求的提升&#xff0c;性能优化成为了不可忽视的一环。尤其是面对复杂的界面、庞大的数据处理以及不断增加的后台操作&#xff0c;如何确保应用的流畅性和响应速度&#xff0c;成为开发者的一大挑战。《高性能 …

leetcode1047-删除字符串中的所有相邻重复项

leetcode 1047 思路 因为要删除字符串中的所有相邻重复项&#xff0c;那么在删除完成后&#xff0c;最后返回的元素中是不应该存在任何相邻重复项的&#xff0c;如果是普通的遍历&#xff0c;假设str ‘abbaca’&#xff0c;遍历出来只发现中间的bb是相邻重复的删除了以后a…

解决DeepSeek服务器繁忙问题的实用指南

目录 简述 1. 关于服务器繁忙 1.1 服务器负载与资源限制 1.2 会话管理与连接机制 1.3 客户端配置与网络问题 2. 关于DeepSeek服务的备用选项 2.1 纳米AI搜索 2.2 硅基流动 2.3 秘塔AI搜索 2.4 字节跳动火山引擎 2.5 百度云千帆 2.6 英伟达NIM 2.7 Groq 2.8 Firew…

web入侵实战分析-常见web攻击类应急处置实验1

场景说明&#xff1a; 某天运维人员发现在/opt/tomcat8/webapps/test/目录下&#xff0c;多出了一个index_bak.jsp这个文件&#xff0c; 并告诉你如下信息 操作系统&#xff1a;ubuntu-16.04业务&#xff1a;测试站点中间件&#xff1a;tomcat开放端口&#xff1a;22&#x…

【Kubernetes】k8s 部署指南

1. k8s 入门 1.1 k8s 简介 需要最需要明确的就是&#xff1a;kubernetes&#xff08;简称 k8s &#xff09; 是一个 容器编排平台 &#xff0c;换句话说就是用来管理容器的&#xff0c;相信学过 Docker 的小伙伴对于容器这个概念并不陌生&#xff0c;打个比方&#xff1a;容器…

深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作

一、问题背景&#xff08;传统爬虫的痛点&#xff09; 数据采集是现代网络爬虫技术的核心任务之一。然而&#xff0c;传统爬虫面临多重挑战&#xff0c;主要包括&#xff1a; 反爬机制&#xff1a;许多网站通过检测请求头、IP地址、Cookie等信息识别爬虫&#xff0c;进而限制…

iOS事件传递和响应

背景 对于身处中小公司且业务不怎么复杂的程序员来说&#xff0c;很多技术不常用&#xff0c;你可能看过很多遍也都大致了解&#xff0c;但是实际让你讲&#xff0c;不一定讲的清楚。你可能说&#xff0c;我以独当一面&#xff0c;应对自如了&#xff0c;但是技术的知识甚多&a…

JDK最详细安装教程,零基础入门到精通,收藏这篇就够了

目录 一、下载与安装二、配置环境三、验证是否配置成功 一、下载与安装 1、下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2、选择自己想要的版本下载&#xff0c;并且选择自己电脑对应的版本下载 3、下载完成之后&#xff0c;双击打开然后…

深研究:与Dify建立研究自动化应用

许多个人和团队面临筛选各种网页或内部文档的挑战,以全面概述一个主题。那么在这里我推荐大家使用Dify,它是一个用于LLM应用程序开发的低代码,开源平台,它通过自动化工作流程的多步搜索和有效汇总来解决此问题,仅需要最小的编码。 在本文中,我们将创建“ Deepresearch”…