【智能算法】帝企鹅优化算法(EPO)原理及实现

在这里插入图片描述

目录

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


1.背景

2018年,G Dhiman等人受到自然界中帝企鹅群体社会行为启发,提出了帝企鹅优化算法(Emperor Penguin Optimizer, EPO)。

2.算法原理

2.1算法思想

EPO模拟了帝企鹅在寒冷冬季的聚集行为,群体通过产生热量来维持温暖。每个帝企鹅个体都会朝着群体中温度较高的方向移动,并寻找到达温度最高处的最优位置。在移动过程中,每个帝企鹅个体会根据自身与最优位置的距离进行调整,并不断更新最优位置,以此实现群体内个体的优化移动和位置更新。
在这里插入图片描述

2.2算法过程

计算拥挤周围温度分布

群体中的温度T1的变化:
T 1 = T − M a x i t e r a t i o n k − M a x i t e r a t i o n , T = { 0 , if  R > 1 , 1 , if  R < 1. (1) \begin{aligned} &T_{1}=T-\frac{Max_{iteration}}{k-Max_{iteration}}, \\ &\left.T=\left\{\begin{array}{ll}0,&\text{if }R>1,\\1,&\text{if }R<1.\end{array}\right.\right. \end{aligned}\tag{1} T1=TkMaxiterationMaxiteration,T={0,1,if R>1,if R<1.(1)
其中,k为当前迭代次数,R表述个体距离拥挤群体中心的半径。

计算距离

确定种群适宜的温度范围后 , 计算种群中每个个体与最优个体之间的距离:
D e p → = A b s ( S ( A → ) ⋅ P ( k ) → − C → ⋅ P e p ( k ) → ) . (2) \overrightarrow{D_{ep}}=Abs(S(\overrightarrow{A})\cdot\overrightarrow{P(k)}-\overrightarrow{C}\cdot\overrightarrow{P_{ep}(k)}).\tag{2} Dep =Abs(S(A )P(k) C Pep(k) ).(2)
其中,P,Pep分别表述最优个体位置和个体当前位置。A,C是避免相邻个体间碰撞的向量参数,S表示帝企鹅群体最优个体方向移动趋势。
S ( A → ) = ( f ⋅ e − k l − e − k ) 2 A → = ( M × ( T 1 + P g r i d ( A c c u r a c y ) × R a n d ) − T 1 P g r i d ( A c c u r a c y ) = A b s ( P → − P e p → ) . (3) \begin{aligned} &S(\overrightarrow{A})=\left(\sqrt{f\cdot\mathrm{e}^{-\frac{k}{l}}-\mathrm{e}^{-k}}\right)^{2}\\ &\overrightarrow{A}=(M\times(T_{1}+P_{grid}(Accuracy)\times Rand)-T_{1} \\ &P_{grid}(Accuracy)=Abs(\overrightarrow{P}-\overrightarrow{P_{ep}}). \end{aligned}\tag{3} S(A )=(felkek )2A =(M×(T1+Pgrid(Accuracy)×Rand)T1Pgrid(Accuracy)=Abs(P Pep ).(3)

位置移动

P e p → ( k + 1 ) = P ( k ) → − A → ⋅ D e p → . (4) \overrightarrow{P_{ep}}(k+1)=\overrightarrow{P(k)}-\overrightarrow{A}\cdot\overrightarrow{D_{ep}}.\tag{4} Pep (k+1)=P(k) A Dep .(4)

伪代码
在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Dhiman G, Kumar V. Emperor penguin optimizer: A bio-inspired algorithm for engineering problems[J]. Knowledge-Based Systems, 2018, 159: 20-50.

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

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

相关文章

每日OJ题_队列_宽搜bfs④_力扣515. 在每个树行中找最大值

目录 力扣515. 在每个树行中找最大值 解析代码 力扣515. 在每个树行中找最大值 515. 在每个树行中找最大值 难度 中等 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值。 示例1&#xff1a; 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2…

Vue--------父子/兄弟组件传值

父子组件 子组件通过 props 属性来接受父组件的数据&#xff0c;然后父组件在子组件上注册监听事件&#xff0c;子组件通过 emit 触发事件来向父组件发送数据。 defineProps接收 let props defineProps({data: Array, }); defineModel接收 let bb defineModel("sit…

1.1 操作系统特性

操作系统特性 &#xff08;一&#xff09;并发性 并发性是指两个或两个以上的活动和事件在同一时间间隔内发生。 电脑里的多个程序或任务&#xff0c;它们看起来是同时进行的&#xff0c;但实际上是交替使用CPU的时间片来执行。 简单解释&#xff1a;想象你正在进行一场接力…

AI 时代来临我们要如何面对?

人工智能&#xff08;AI&#xff09;已经引领了人类社会进入了全新的时代&#xff0c;开启了科技进步的崭新篇章。在过去几十年&#xff0c;人工智能技术迅猛发展&#xff0c;并已经逐步融入到我们的日常生活和职场中。 随着科技的不断进步&#xff0c;人工智能已成为社会发展…

2024.2.23力扣每日一题——二叉树中的第 K 大层和

2024.2.23 题目来源我的题解方法一 层序遍历排序 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2583 我的题解 方法一 层序遍历排序 先使用层序遍历计算每一层的和&#xff0c;然后将每一层的和进行排序。 时间复杂度&#xff1a;O(nlogn)。其中 n 是树中的节点数。广…

竞赛常考的知识点大总结(二)基础算法

简单字符串处理 简单字符串处理是指对字符串进行基本操作的一系列技术&#xff0c;这些操作通常包括字符串的创建、复制、比较、查找、替换和分割等。简单字符串处理的特点是操作直观、易于实现&#xff0c;并且在各种编程语言中都有广泛的应用。 特点&#xff1a; 1.操作直…

渐变颜色作图

clear clc close all % 生成 x 值 x linspace(0, 5, 1000); % 计算对应的 y 值&#xff08;二次函数分布&#xff09; y x .^ 2; % 添加一些随机噪声 y y randn(size(y)); clinspace(1,10,length(x)); arry1[x,y]; arry2sortrows(arry1,2,descend); arry3[arry2,c]…

基于单片机和Wi-Fi 技术的家电远程控制系统设计

摘要:根据家用电器的智能开关控制需求,提出基于单片机和Wi-Fi 技术的家电远程控制系统的设计。从硬件与软件两部分对单片机电路、Wi-Fi 电路、继电器电路,及其程序进行设计。设计的家电远程控制系统,经Tlink 物联网平台模拟测试,信号反应无误,为进一步实际应用提供了基础…

C++ 学习10大网站推荐(Bjarne Stroustrup)

(1) Sourceforge(sourceforge.net),这是最著名、历史最悠久、规模最大的开源项目管理网站。 (2)Googlecode(code.google.com),它的访问速度快,是开源项目管理网站的后起之秀。 (3)C++创始人Bjarne Stroustrup的个人网站www2.research.att.com/~bs/applications.html,其中罗…

C缺陷和陷阱-笔记(7)

目录 库函数 一、返回整数的getchar 函数 getchar 函数 二、更新顺序文件 三、缓冲输出与内存分配 程序输出 四、使用errno 检测错误 五、库函数signal 库函数 C语言中没有定义输入/输出语句&#xff0c;任何一个有用的C程序&#xff08;起码必须接受零个或多个输入&am…

求组合背包II(acwing)

题目描述&#xff1a; 给定n组循问&#xff0c;每组询问给定两个整数a&#xff0c;b&#xff0c;请你输出Ca^b mod (1e9 7)的值&#xff0c;。 输入格式&#xff1a; 第一行包含整数n。 接下来2行&#xff0c;每行包含一组a和b。 输出格式&#xff1a; …

类的函数成员(三):拷贝构造函数

一.什么是拷贝构造函数&#xff1f; 1.1 概念 同一个类的对象在内存中有完全相同的结构&#xff0c;如果作为一个整体进行复制或称拷贝是完全可行的。这个拷贝过程只需要拷贝数据成员&#xff0c;而函数成员是共用的&#xff08;只有一份拷贝&#xff09;。 在建立对象…

深入详解MongoDB索引的数据组织结构

MongoDB&#xff0c;作为最受欢迎的NoSQL数据库之一&#xff0c;以其灵活的数据模型和强大的性能而著称。其中&#xff0c;索引是提高MongoDB查询性能不可或缺的一部分。本文将更加深入地探讨MongoDB索引的数据组织结构&#xff0c;揭示其背后的工作原理和优化策略。 目录 一、…

ngrok使用心得记录

1&#xff0c;官网 https://ngrok.com/ 注册(Sign up for free)账号&#xff0c;这里我使用邮箱注册&#xff0c;本来使用github账号登录的&#xff0c;不过需要一个二次短信确认&#xff0c;而且发短信前要先选择国家&#xff0c;国家列表里没有China86&#xff0c;所以只能选…

每天学点儿Python(3) -- for循环

for循环结构格式如下 for 循环变量 in 遍历对象:语句块 举例一、 for i in "Hello"print(i) 执行结果如下 举例二、 #打印100-999之间的水仙花数 #注意&#xff1a;Python中 / 除法&#xff0c;运输后为浮点数, // 为取除法后的整数&#xff0c;而不是C/C中的注释…

Java与Go的并发世界:理解Work Sharing与Work Stealing

概述 最近在理解Golang中的Per P概念&#xff0c;于是我就去Go的源码中挖呀挖&#xff0c;结果挖到了Go的调度器设计。 Golang的调度器设计文档提到了Go中的P(OS线程)调度器使用的是work-stealing调度算法论文。 论文中提到了两个多线程调度算法&#xff1a;work sharing和wor…

【计算机考研】408会炸,还是自命题会炸

自命题是有没有学上的问题。 我记得去年九月一些学校宣布改考408的时候&#xff0c;整个群里都炸了&#xff0c;同学一片哀嚎。要知道九月的时候要重新准备408肯定是不可能了&#xff0c;一来408复习的基础阶段已经过去了&#xff0c;二来英语政治都加入战场了&#xff0c;复习…

电力设备热设计原理(二)

本篇为西安交通大学本科课程《电力设备设计原理》的笔记。 本篇为这一单元的第二篇笔记。上一篇传送门。 电力设备传导换热 主要讨论稳态导热的计算。 通过单层和多层平壁的传导 如上图所示的大平板是一维传导问题&#xff0c;流过平板的热流量和平板两侧温度和平板厚度之间…

vue2使用axios封装请求数据

1、在完成下面的步骤之前&#xff0c;先脚手架创建vue项目&#xff0c;然后再vue项目当中&#xff0c;首先先创建一个文件夹utils&#xff0c;里面放request.js的文件 (1)下载 npm i axios先下载好axios请求依赖 (2)下面的这个文件&#xff0c;包括封装请求&#xff0c;以及拦截…

Docker搭建私有镜像仓库

1.Docker镜像仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址&#xff1a;https://hub.docker.com/_/registry 1.1.简化版镜像仓库 Docker官方的Docker Registry是一个基础版本的Docker镜像仓库&#xff0c;具备仓库管理的完整功能&#xff0c;…