【智能算法】土拨鼠优化算法(PDO)原理及实现

在这里插入图片描述

目录

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


1.背景

2022年,AE Ezugwu等人受到土拨鼠觅食行为与自然行为启发,提出了土拨鼠优化算法(Prairie Dog Optimization algorithm, PDO)。

2.算法原理

2.1算法思想

PDO算法通过模拟草原土拨鼠的觅食和挖洞活动进行全局探索和局部开发,同时利用对特定警报声音的反应来调整搜索策略,从而有效地在解空间中进行勘探和开发。

在这里插入图片描述

2.2算法过程

探索阶段

草原土拨鼠的觅食和挖洞活动被用来探索优化问题空间。它们在丰富的食物源周围建立洞穴,当食物源耗尽后,会寻找新的食物源并在其周围建立新的洞穴,位置更新:
P D i + 1 , j + 1 = G B e s t i , j − e C B e s t i , j × ρ − C P D i , j × L e v y ( n ) ∀ i t e r < M a x i t e r 4 (1) \begin{aligned}PD_{i+1,j+1}=GBest_{i,j}-eCBest_{i,j}\times\rho-CPD_{i,j}\times Levy(n) \forall iter<\frac{Max_{iter}}{4}\end{aligned}\tag{1} PDi+1,j+1=GBesti,jeCBesti,j×ρCPDi,j×Levy(n)iter<4Maxiter(1)
P D i + 1 , j + 1 = G B e s t i , j × r P D × D S × L e v y ( n ) ∀ M a x i t e r 4 ≤ i t e r < M a x i t e r 2 (2) \begin{aligned}PD_{i+1,j+1}=GBest_{i,j}\times rPD\times DS\times L\mathrm{e}vy(n) \forall \frac{Max_{iter}}{4}\leq iter<\frac{Max_{iter}}{2}\end{aligned}\tag{2} PDi+1,j+1=GBesti,j×rPD×DS×Levy(n)4Maxiteriter<2Maxiter(2)
其中,Gbest为全局最优个体,eCBest为当前最优解,DS为挖掘强度,取决于食物来源质量:
e C B e s t i , j = G B e s t i , j × Δ + P D i , j × m e a n ( P D n , m ) G B e s t i , j × ( U B j − L B j ) + Δ C P D i , j = G B e s t i , j − r P D i , j G B e s t i , j + Δ D S = 1.5 × r × ( 1 − i t e r M a x i t e r ) ( 2 i t a r M a x i t e r ) (3) \begin{aligned}&eCBest_{i,j}=GBest_{i,j}\times\Delta+\frac{PD_{i,j}\times mean\left(PD_{n,m}\right)}{GBest_{i,j}\times\left(UB_{j}-LB_{j}\right)+\Delta}\\&CPD_{i,j}=\frac{GBest_{i,j}-rPD_{i,j}}{GBest_{i,j}+\Delta}\\&DS=1.5\times r\times\left(1-\frac{iter}{Max_{iter}}\right)^{\left(2\frac{itar}{Max_{iter}}\right)}\end{aligned}\tag{3} eCBesti,j=GBesti,j×Δ+GBesti,j×(UBjLBj)+ΔPDi,j×mean(PDn,m)CPDi,j=GBesti,j+ΔGBesti,jrPDi,jDS=1.5×r×(1Maxiteriter)(2Maxiteritar)(3)
在这里插入图片描述
开发阶段

草原土拨鼠有不同的信号或声音,从捕食者的威胁到食物的供应。它们的沟通能力在满足草原土拨鼠的营养需求和反捕食能力方面起着重要作用:
P D i + 1 , j + 1 = G B e s t i , j − e C B e s t i , j × ε − C P D i , j × r a n d ∀ M a x i t e r 2 ≤ i t e r < 3 M a x i t e r 4 (4) \begin{aligned}PD_{i+1,j+1}=GBest_{i,j}-eCBest_{i,j}\times\varepsilon-CPD_{i,j}\times rand \forall \frac{Max_{iter}}{2}\leq iter<3\frac{Max_{iter}}{4}\end{aligned}\tag{4} PDi+1,j+1=GBesti,jeCBesti,j×εCPDi,j×rand2Maxiteriter<34Maxiter(4)
P D i + 1 , j + 1 = G B e s t i , j × P E × r a n d ∀ 3 M a x i t e r 4 ≤ i t e r < M a x i t e r (5) \begin{aligned}PD_{i+1,j+1}&=GBest_{i,j}\times PE\times rand \forall 3\frac{Max_{iter}}{4}\leq iter<Max_{iter}\end{aligned}\tag{5} PDi+1,j+1=GBesti,j×PE×rand∀34Maxiteriter<Maxiter(5)
其中,PE表示捕食者影响:
P E = 1.5 × ( 1 − i t e r M a x i t e r ) ( 2 i t e r M a x i t e r ) (6) PE=1.5\times\left(1-\frac{iter}{Max_{iter}}\right)^{\left(2\frac{iter}{Max_{iter}}\right)}\tag{6} PE=1.5×(1Maxiteriter)(2Maxiteriter)(6)

在这里插入图片描述

流程图

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试PDO性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2017-F14

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

4.参考文献

[1] Ezugwu A E, Agushaka J O, Abualigah L, et al. Prairie dog optimization algorithm[J]. Neural Computing and Applications, 2022, 34(22): 20017-20065.

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

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

相关文章

云服务器搭建XSS-platform、DVWA靶机和Permeate论坛

目录 前言准备环境安装步骤一、 部署MySQL二、 系统部署三、系统安装主页介绍 前言 我发现目前网上的xss-platform的搭建教程都是基于本地搭建的&#xff0c;这样搭建好的xss平台只能在本地使用&#xff0c;无法测试别的网站。而网络上的大部分xss平台又几乎都是收费的&#x…

vue3学习笔记-快速上手

创建第一个vue3的应用 之前看书学习vue,书籍对应的版本是vue2,今天群里看小伙伴聊天&#xff0c;觉得他们说得对 &#xff0c;反正是从零开始学&#xff0c;而且vue2都不维护了&#xff0c;那为什么不直接学习vue3呢&#xff0c;于是乎&#xff0c;又开启了从0学vue3之路。 参考…

要从一个项目中去掉现有的Git信息,并重新建立新的Git仓库

要从一个项目中去掉现有的Git信息&#xff0c;并重新建立一个新的Git仓库&#xff0c;你可以按照以下步骤操作&#xff1a; 备份项目&#xff1a; 首先&#xff0c;确保备份你的项目文件&#xff0c;以防在操作过程中发生意外丢失。 删除原有的Git信息&#xff1a; 打开命令行…

2024Xtu程设第一次练习题解

程设练习题谢大会专门查重 1.1531奇怪的数字 题目让我们从小到大输出1e6以内所有的答案&#xff0c;其实也没什么好的思路 就是将一个数n的所有位都拆出来&#xff0c;遍历这些位&#xff08;每次取一个x&#xff09;&#xff0c;然后通过作除法&#xff08;y n / x&#xf…

java多态知识

目录 一、定义 二、注意事项 三、多态的好处 四、多态的弊端以及解决办法 一、定义 多态定义:多态是在继承/实现情况下的一种现象&#xff0c;表现为:对象多态、行为多态。 对象多态&#xff1a;都是同一对象&#xff0c;表现出不同角色&#xff0c;比如小明&#xff0c;…

迭代加深算法(IDDFS)在电商商品推荐中的应用方案

在电商平台上应用迭代加深深度优先搜索(IDDFS)算法来探索用户可能感兴趣的商品路径,可以创建一个更加个性化和动态的推荐系统,提供更加个性化和动态的购物体验。 通过利用IDDFS来探索用户可能感兴趣的商品路径。通过限制搜索深度,系统可以逐步展示从用户当前查看的…

java:SpringBoot入门

Spring 提供若干子项目,每个项目用于完成特定功能 Spring Boot 可以简化配置并且快速开发 SpringBootWeb快速入门 创建Springboot模块并使用Springweb依赖 在类上添加注解 RestController可以将字符串自动转成json返回数据给页面 再在方法上添加注解 RequestMapping(&…

python应用-socket网络编程(2)

socket 是 Python 标准库中的一个模块&#xff0c;它提供了低级别的网络通信接口。使用 socket 模块&#xff0c;你可以创建客户端和服务器应用程序&#xff0c;以便在网络上进行数据交换。 接着上文我们介绍下socket模块其他的一些函数。 目录 gettimeout() 和settimeout()…

0422empAJAX项目

数据库字段&#xff1a; 多条件查询&#xff1b; 分页查询&#xff1b; 添加图片&#xff1b; ajax离职操作&#xff1b; 删除选项&#xff0c;点击离职操作后仍然可实现删除选项

项目部署总结

1、安装jdk 第一步&#xff1a;上传jdk压缩安装包到服务器 第二步&#xff1a;将压缩安装包解压 tar -xvf jdk-8uXXX-linux-x64.tar.gz 第三步&#xff1a;配置环境变量 编辑/etc/profile文件&#xff0c;在文件末尾添加以下内容&#xff1a; export JAVA_HOME/path/to/j…

鉴权到底做什么

两种方案&#xff1a; 将 token 放在 cookie 里&#xff1b;将 token 放在请求头里&#xff0c;用 Authorization 字段。 无论对于前端还是后端而言&#xff0c;这两种方案都是各有利弊的&#xff0c;下面稍微讲几点&#xff0c;实际开发中根据需求来选用即可。 将 token 放在…

python - ExcelWriter.book 无法设置属性 ‘book‘

问题描述 conda 环境使用python编辑excel&#xff0c;安装pandas依赖版本为2.2.1。 pandas2.2.1 以下代码片段报错&#xff1a; AttributeError: property book of OpenpyxlWriter object has no setter&#xff08;无法设置属性 book &#xff09; with pd.ExcelWriter(t…

进程控制5 - exit()退出+子进程被收养+僵死进程

我们应当知道的是&#xff0c;在用fork创建子进程后&#xff0c;父子进程的执行的先后顺序是不定的&#xff0c;这时&#xff0c;我们可以用wait函数&#xff0c;wait()会暂停当前进程的执行&#xff0c;直到有信号到来或者子进程结束。总的来说&#xff0c;wait()的作用就是阻…

C语言编译的优化等级应该选哪个?O0、O1、O2还是O3

在使用IDE开发STM32程序时&#xff0c;IDE一般都会提供优化等级设置的选项&#xff0c;例如下图中KEIL软件优化等级的设置。 从上图中也可以看出&#xff0c;设置不同的优化等级&#xff0c;实际上是修改了编译器的编译参数。这个编译器是由ARM公司提供的C/C编译器armclang或者…

微信小程序Vue+nodejs+uniapp课堂教学辅助在线学习系统

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 后台主要实现功能&#xff1a;一、用户的管理(用户的信息管理) 二、 课程的管理&#xff08;课程发布&#xff0c;课后成绩的查看&#xff0c…

DAY 5

1. 2. #include <iostream>using namespace std; class Person {string name;int *age;public:Person():name("zhangsan"),age(new int (18)){cout << "Person的无参函数" << endl;}Person(string name,int *age):name("zhangsan&q…

Linux提权--准备工作知识点工具

目录 知识点: 系列内容&#xff1a; 截至目前思路点总结如下&#xff1a; 思考点&#xff1a; 探针&漏扫工具网址 工具小总: 数据库提权工具网址: ---提权命令百科-- 演示案例&#xff1a; 知识点: 1、Linux 提权辅助项目-探针&漏扫 2、Linux 提权-配置 SUID …

模拟LinkedList实现的双向循环链表

1. 前言 前文我们分别实现了不带哨兵的单链表&#xff0c;带哨兵节点的双向链表&#xff0c;接着我们实现带哨兵节点的双向循环链表.双向循环链表只需一个哨兵节点&#xff0c;该节点的prev指针和next指针都指向了自身哨兵节点. 2. 实现双向循环链表的代码 例 : //模拟双向…

c++中的__declspec(dllexport) 和 __declspec(dllimport)

c中的__declspec(dllexport) 和 __declspec(dllimport) 1. __declspec(dllimport) __declspec(dllimport) 是Microsoft Visual C特有的修饰符&#xff0c;用于声明在动态链接库&#xff08;DLL&#xff09;中定义的函数和变量&#xff0c;以便在另一个模块中使用。它告诉编译…

水稻病害检测(YOLO数据集,多分类,稻瘟病、纹枯病、褐斑病、枯心病、霜霉病、水稻细菌性条纹斑病、稻苞虫)

是自己利用LabelImg工具进行手工标注&#xff0c;数据集制作不易&#xff0c;请尊重版权&#xff08;稻瘟病、纹枯病、褐斑病、枯心病、霜霉病、水稻细菌性条纹斑病、稻苞虫&#xff09; 如果需要yolv8检测模型和数据集放在一起的压缩包&#xff0c;可以关注&#xff1a;最新最…