智能优化算法:指数分布优化算法-附代码

news2024/10/6 18:28:08

智能优化算法:指数分布优化算法

文章目录

  • 智能优化算法:指数分布优化算法
    • 1.指数分布优化算法
      • 1.1种群初始化
      • 1.2EDO开发
      • 1.3EDO探索
    • 2.实验结果
    • 3.参考文献
    • 4.Matlab
    • 5.python

摘要:指数分布优化算法(Exponential distribution optimizer(EDO))是于2023年提出的一种新型智能优化算法。该算法基于数学中的指数概念分布模型。具有寻优能力强,收敛速度快等特点。

1.指数分布优化算法

1.1种群初始化

在初始化阶段,我们用一组以高度分散的值为特征的N个随机生成的解来初始化总体(Xwinner)。
 Xwinners  i , j = l b +  rand.  ( u b − l b ) (12) \text { Xwinners }_{i, j}=l b+\text { rand. }(u b-l b) \tag{12}  Xwinners i,j=lb+ rand. (ublb)(12)
其中, l b , u b lb,ub lb,ub为寻优的上下边界,rand为(0,1)之间的随机数。

1.2EDO开发

开发阶段使用指数分布模型的几个特征,如无记忆性、指数率、标准方差和均值。此外,还采用了一种引导解决方案来将搜索过程引导到全局最优。EDO的第一步包括初始化一组随机解,这些解模拟一组指数分布模型。其次,使用目标函数对这些解决方案进行评估,并从最佳到最差进行排名。最后,对于最大化优化问题,它们按目标函数的降序排列。对于最小化优化问题,解决方案按升序列出。

一个好的解决方案周围的区域有希望找到全局最优解,这就是为什么许多算法通过吸引差的解决方案来探索好的解决办法周围的搜索空间。因此,我们围绕指导解决方案寻找全局最优解。引导解(Xguide)被定义为排序种群的前三个最佳解的平均值,并计算为:
X g u i d e t i m e = X w i n n e r s b e s t 1 t i m e + X w i n n e r s b e s t 2 t i m e + X w i n n e r s b e s t 3 t i m e 3 (13) Xguide^{time}=\frac{Xwinners^{time}_{best1}+Xwinners^{time}_{best2}+Xwinners^{time}_{best3}}{3}\tag{13} Xguidetime=3Xwinnersbest1time+Xwinnersbest2time+Xwinnersbest3time(13)
其中time 代表迭代次数。

我们设计了一个开发性优化模型来更新当前服从指数分布的新解决方案,该解决方案依赖于两种类型的解决方案:赢家和输家。为了更新新的解决方案( V i t i m e + 1 V_i^{time+1} Vitime+1),我们假设:
V i time  + 1 = {  a.  (  memoryless  i time  − σ 2 ) + b .  Xguide  time   if   Xwinners  i time  =  memoryless  i time   b.  (  memoryless  i time  − σ 2 ) + log ⁡ ( ϕ ) .  Xwinners  i time  , otherwise  (14) V_i^{\text {time }+1}=\left\{\begin{array}{l} \text { a. }\left(\text { memoryless }_i^{\text {time }}-\sigma^2\right)+b . \text { Xguide }^{\text {time }} \text { if } \text { Xwinners }_i^{\text {time }}=\text { memoryless }_i^{\text {time }} \\ \text { b. }\left(\text { memoryless }{ }_i^{\text {time }}-\sigma^2\right)+\log (\phi) . \text { Xwinners }{ }_i^{\text {time }} \text {, otherwise } \end{array}\right.\tag{14} Vitime +1={ a. ( memoryless itime σ2)+b. Xguide time  if  Xwinners itime = memoryless itime  b. ( memoryless itime σ2)+log(ϕ). Xwinners itime , otherwise (14)

a = ( f ) 10 , (15) a=(f)^{10},\tag{15} a=(f)10,(15)

b = ( f ) 5 ,  (16) b=(f)^5 \text {, }\tag{16} b=(f)5(16)

f = 2 ×  rand  − 1 (17) f=2 \times \text { rand }-1 \tag{17} f=2× rand 1(17)

其中 m e m o r y l e s s i t i m e memoryless_i^{time} memorylessitime是第i个个体的记忆矩阵。 p h i phi phi是[0,1]之间的随机数,a,b是适应参数,f是[-1,1]之间的随机数。

1.3EDO探索

本小节说明了所提出的算法的探索阶段。该算法的探索阶段识别搜索空间中被认为具有全局最优解的有希望的区域。EDO勘探阶段的优化模型是使用服从指数分布的原始种群中的两个赢家建立的。新的解决方案将使用以下公式进行更新。
V i time+1  = X  winners  i time  − M time  + ( c . Z 1 + ( 1 − c ) ⋅ Z 2 ) (20) V_i^{\text {time+1 }}=X \text { winners }{ }_i^{\text {time }}-M^{\text {time }}+\left(c . Z_1+(1-c) \cdot Z_2\right) \tag{20} Vitime+1 =X winners itime Mtime +(c.Z1+(1c)Z2)(20)

M time  = 1 N ⋅ ∑ i = 1 N  Xinners  j , i time  , j = 1 , 2 , … . , d (21) M^{\text {time }}=\frac{1}{N} \cdot \sum_{i=1}^N \text { Xinners }_{j, i}^{\text {time }}, \quad j=1,2, \ldots ., d \tag{21} Mtime =N1i=1N Xinners j,itime ,j=1,2,.,d(21)

其中 M t i m e M^{time} Mtime代表种群的平均值, c c c是一个自适应参数,计算如下:
c = d × f (22) c=d \times f \tag{22} c=d×f(22)

KaTeX parse error: Expected 'EOF', got '_' at position 39: … }}{\text { Max_̲time }} .\tag{2…

Z1,Z2是两组向量,计算如下:
Z 1 = M − D 1 + D 2 , (24) Z_1=M-D_1+D_2,\tag{24} Z1=MD1+D2,(24)

Z 2 = M − D 2 + D 1 , (25) Z_2=M-D_2+D_1,\tag{25} Z2=MD2+D1,(25)

D 1 = M − X  winners  rand  1 , (26) D_1=M-X \text { winners }_{\text {rand } 1},\tag{26} D1=MX winners rand 1,(26)

D 2 = M − X  winners  rand  2 .  (27) D_2=M-X \text { winners }_{\text {rand } 2} \text {. } \tag{27} D2=MX winners rand 2(27)

其中, X w i n n e r s r a n d 1 , X w i n n e r s r a n d 2 Xwinners_{rand1}, Xwinners_{rand2} Xwinnersrand1,Xwinnersrand2代表随机选择的两个个体。

算法伪代码如下:
在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

[1] Abdel-Basset, M., El-Shahat, D., Jameel, M. et al. Exponential distribution optimizer (EDO): a novel math-inspired algorithm for global optimization and engineering problems. Artif Intell Rev (2023). https://doi.org/10.1007/s10462-023-10403-9

4.Matlab

5.python

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

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

相关文章

全新好用的窗口置顶工具WindowTop

打开WindowTop软件,所有已打开的窗口都会在左上角出现一个置顶栏,点击置顶栏的置顶复选框即可置顶窗口或取消窗口。   在WindowTop软件的置顶栏一项里可以自由调整置顶栏的元素(包含增删位置)。   可改变置顶栏的外观&#x…

剖析ffmpeg视频解码播放:时间戳的处理

一、视频播放基础理论 1.1 视频编码和解码基础 视频编码和解码是视频播放的基础,理解它们的工作原理对于深入理解视频播放至关重要。在这一部分,我们将详细介绍视频编码和解码的基础知识。 视频编码(Video Encoding)是将原始视…

离散数学_十章-图 ( 5 ):连通性 - 上

📷10.5 图的连通性 1. 通路1.1 通路1.2 回路1.3 其他术语 2. 无向图的连通性2.1 无向图的连通与不连通2.2 定理2.3 连通分支 3. 图是如何连通的3.1 割点( 关节点)3.2 割边( 桥)3.3 不可分割图3.4 𝑘(&#…

Linux内核模块开发 第 5 章

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客(WaterCutter) 5 预备知识(Preliminaries) 5.1 模块的入口函数和出口函数 C 程序通常从 ma…

建筑与建材行业相关深度学习数据集大合集

近期又整理了一批建筑与建材行业相关深度学习数据集,分享给大家。废话不多说,直接上干货!! 1、埃及的地标数据集 自从历史开始以来,埃及一直是许多文明、文化和非常著名的地标的家园,现在你(和你的ML模型…

守护进程【Linux】

文章目录 前导知识shell、terminal、console进程组作业会话测试 会话控制jobfgbgps 守护进程作用查看守护进程创建守护进程 前导知识 shell、terminal、console terminal(终端)是一种可以和计算机交互的设备,通常有键盘和显示器&#xff0c…

RocketMq 的基本知识1

一RocketMq的基本知识 1.1 RocketMq的基本知识 MQ , Message Queue ,是一种提供 消息队列服务 的中间件,也称为消息中间件。 1.2 作用 1.流量消峰 2.异步传输 3.日志收集 1.3 核心概念 1消息: 消息是指,消息系统所…

基于内存操作的Redis数据库--详解

目录 基本概念 基本操作 redis的五个基本类型 Redis-key(不区分大小写) 字符串 string Redis的特殊类型 geospatial地理空间 事务 Redis的持久化 RDB(.rdb) 触发机制 优点 缺点 AOF(.aof) 优点…

冈萨雷斯DIP第8章知识点

8.1 基础 图像中的冗余 编码冗余:用于表示灰度的8比特编码所包含的比特数,要比表示该灰度所需要的比特数多。可通过变长编码来解决。 空间和时间冗余:与相邻像素相似(图像);时间:相邻帧中的像素(视频)。可以使用行程…

缺陷管理利器推荐:介绍几款好用的缺陷管理工具

缺陷管理是项目管理工作中的重要环节。Excel表格是国内团队常用的缺陷管理工具,具备上手容易,免费的优点,不过也存在协同不便,不易管理,效率低的不足之处。 一套缺陷管理工具可以帮助我们进行规范化自动化的缺陷管理&a…

LearnOpenGL-高级OpenGL-8.高级GLSL

本人初学者,文中定有代码、术语等错误,欢迎指正 文章目录 高级GLSLGLSL的内建变量在顶点着色器的内建变量gl_PointSizegl_VertexID 在片段着色器的内建变量gl_FragCoordgl_FrontFacinggl_FragDepth 接口块Uniform缓冲对象Uniform块布局使用Uniform缓冲简…

关于惠普M277打印机手动双面打印和自动双面打印设置

一.手动双面打印设置​​​​​​​ 1.键盘WINR,在运行框输入“control”,回车或者点击确定。 ​​​​​​​ 2.在控制面板找到设备和打印机,点击进去。 3.找到HP M277字样的打印机,右键选择打印机属性。 4.点击设…

有关部门信息表与员工信息表的常用SQL应用语句实现汇总

背景条件 已知有员工信息表(emp)和部门信息表(dept),具体表的信息如下: 员工信息表emp: 列名类型其他备注empnoDECIMAL(4)主键员工编号enameVARCHAR2(10)员工姓名jobVARCHAR2(9)工种mgrDECIM…

实现第一个内核程序的Hello World

背景 在内核的开发中,总要先入个门。那么就要来编写第一个内核程序 入门 一个 module_init 程序是Linux内核模块的一部分,通过module_init 方法就能将程序载入内核。 module_init 方法需要以下步骤 编写module_init 的代码,并将其保存为…

异常值检验、方差分析

异常值检验 T-test 参考:1.ttest和ttest2 区别 2. ttest在 matlab 3.T test分布表 方差分析(ANOVA) Def: 方差分析(analysis of variance, ANOVA)是一种统计检验,用于检验两组或更多组样本的均值是否相…

Allegro如何关闭出线自动拐弯功能操作指导

Allegro如何关闭出线自动拐弯功能操作指导 在用Allegro进行PCB设计的时候,对单个pin进行出线的时候,会遇到走线一出pin就会自动拐弯,并不会按照鼠标轨迹来设计,如下图 期望的效果如下图 如何关闭走线自动拐弯功能,具体操作如下 点击Route

django-vue-admin使用

一、源码地址 注意,一定要使用这个地址。(使用其他地址下载下来的感觉代码缺失,踩了大坑) django-vue-admin: 基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 djangodjango-rest-frame…

QT实现 WebsocketServer端与WebsocketClient 端通信

概 述 WebSockets 是一种通过单个 TCP 连接提供全双工通信信道的 web 技术。2011年,IETF 将 WebSocket 协议标准化为 RFC 6455 。Qt 提供的 QWebSocket 既可以用于客户端应用程序,也可以用于服务端应用程序,接口大部分和 QTcpSocket 一致。 …

R语言机器学习方法在生态经济学领域中的应用

近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一,目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

MoviePy介绍

MoivePy是一个用于视频编辑的Python库,可以:剪切、拼接、标题插入、视频合成、视频处理和创建自定义效果。它支持Windows、Linux、Mac,源码地址:https://github.com/Zulko/moviepy,最新发布版本v1.0.3,lice…