【智能算法】指数分布优化算法(EDO)原理及实现

server/2024/10/22 4:51:45/

在这里插入图片描述

目录


1.背景

2023年,M Abdel-Basset等人受到指数分布理论启发,提出了指数分布优化算法(Exponential Distribution Optimizer, EDO)。

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

2.算法原理

2.1算法思想

EDO来源于基于指数概率分布的数学模型,该算法初始化一群代表多个指数分布模型的随机解,每个解的位置代表一个指数随机变量。EDO依据无记忆性、引导解和指数随机变量间的关系来更新当前解。根据无记忆性原则,过去的失败被视为独立事件,不影响未来,因此,即使是输家也可能在下一轮更新中贡献新解。整个探索阶段,从原始种群中导出的指数分布中选择两个解进行更新。

在这里插入图片描述

2.2算法过程

开发阶段

开发阶段利用了指数分布模型的无记忆性、指数率、标准差和均值等特点。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 (1) Xguide^{time}=\frac{Xwinners_{best1}^{time}+Xwinners_{best2}^{time}+Xwinners_{best3}^{time}}3\tag{1} Xguidetime=3Xwinnersbest1time+Xwinnersbest2time+Xwinnersbest3time(1)
在这里插入图片描述

利用优化模型来更新当前服从指数分布的新解,该模型依赖于两种类型的解赢家和输家:
V i t i m e + 1 = { a . ( m e m o r y l e s s i t i m e − σ 2 ) + b . X g u i d e t i m e i f X w i n n e r s i t i m e = m e m o r y l e s s i t i m e b . ( m e m o r y l e s s i t i m e − σ 2 ) + log ⁡ ( ϕ ) . X w i n n e r s i t i m e , o t h e r w i s e (2) V_i^{time+1}=\begin{cases} a.(memoryless_i^{time}-\sigma^2)+b.Xguide^{time} if Xwinners_i^{time}=memoryless_i^{time}\\ b.(memoryless_i^{time}-\sigma^2)+\log(\phi).Xwinners_i^{time} ,otherwise\end{cases} \tag{2} Vitime+1={a.(memorylessitimeσ2)+b.XguidetimeifXwinnersitime=memorylessitimeb.(memorylessitimeσ2)+log(ϕ).Xwinnersitime,otherwise(2)
参数表述为:
a = ( f ) 10 b = ( f ) 5 f = 2 × r a n d − 1 (3) a=(f)^{10}\\b=(f)^{5}\\f=2\times rand-1\tag{3} a=(f)10b=(f)5f=2×rand1(3)
指数率为:
λ = 1 μ μ = ( m e m o r y l e s s i t i m e + X g u i d e t i m e ) / 2 (4) \lambda=\frac1\mu \\ \mu=(memoryless_i^{time}+Xguide^{time})/2\tag{4} λ=μ1μ=(memorylessitime+Xguidetime)/2(4)

探索阶段

算法的探索阶段识别搜索空间中被认为具有全局最优解的有希望区域,利用服从指数分布的原始种群中的两个优胜者:
V i t i m e + 1 = X w i n n e r s i t i m e − M t i m e + ( c . Z 1 + ( 1 − c ) . Z 2 ) , M t i m e = 1 N . ∑ i = 1 N X w i n n e r s j , i t i m e , j = 1 , 2 , . . . . . . , d . (5) V_{i}^{time+1}=Xwinners_{i}^{time}-M^{time}+(c.Z_{1}+(1-c).Z_{2}),\\M^{time}=\frac{1}{N}.\sum_{i=1}^{N}Xwinners_{j,i}^{time},\quad j=1, 2, ......, d.\tag{5} Vitime+1=XwinnersitimeMtime+(c.Z1+(1c).Z2),Mtime=N1.i=1NXwinnersj,itime,j=1,2,......,d.(5)
c是调整参数:
c = d × f , d = 1 − t i m e M a x _ t i m e . (6) c=d\times f,\\d=\frac{1-time}{Max\_time}.\tag{6} c=d×f,d=Max_time1time.(6)
d是一个自适应参数:
Z 1 = M − D 1 + D 2 , Z 2 = M − D 2 + D 1 , D 1 = M − X w i n n e r s r a n d 1 , D 2 = M − X w i n n e r s r a n d 2 . (7) \begin{gathered} Z_{1}=M-D_{1}+D_{2}, \\ Z_2=M-D_2+D_1, \\ D_{1}=M-Xwinners_{rand1}, \\ D_{2}=M-Xwinners_{rand2}. \end{gathered}\tag{7} Z1=MD1+D2,Z2=MD2+D1,D1=MXwinnersrand1,D2=MXwinnersrand2.(7)
D1和D2表示平均解与Xwinnersrand1和Xwinnersrand2的距离,Xwinnersrand1和Xwinnersrand2是相对于从原始总体中随机选择的指数分布的赢家。

流程图

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

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

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

CEC2017-F20

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

4.参考文献

[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[J]. Artificial Intelligence Review, 2023, 56(9): 9329-9400.


http://www.ppmy.cn/server/13396.html

相关文章

Window + Ubuntu 双系统无Ubuntu Bios 启动项

文章目录 安装硬盘位置不重要!!!(但是我安装在了第二张HDD)问题是多盘分位置会导致磁盘主分区变成了简单卷 Bios Ubuntu 启动项修复参考Ubuntu安装U盘进入Try Ubuntu 使用Terminal修复完提示Disable Secure Boot进入Te…

apache和IIS区别?内网本地服务器项目怎么让外网访问?

Apache和IIS是比较常用的搭建服务器的中间件,它们之间还是有一些区别差异的,下面就详细说说 Apache和IIS有哪些区别,以及如何利用快解析实现内网主机应用让外网访问。 首先说说apache和IIS最基本的区别。Apache运行的操作系统通常为Unix或Lin…

嵌入式linux中利用QT控制蜂鸣器方法

大家好,今天给大家分享一下,如何控制开发板上的蜂鸣器。 第一:开发板原理图 从原理图中可以得出,当引脚输出低电平的时候,对应的蜂鸣器发出响声。 第二:QT代码详细实现 设置一个按钮,点击即可控制BEEP状态发生反转。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#in…

经风靡全球的 PHP 为何逐渐失去优势?

TIOBE 编程语言人气指数发布更新,并提出“PHP 的魔力是否正在消散?”的灵魂拷问。今年 4 月,PHP 在 TIOBE 编程语言指数榜上仅位列第 17,“成为其有史以来的最低排位”。 暴露 PHP 人气急剧下滑的还不只是 TIOBE 榜单。在年度 Sta…

Elasticsearch克隆索引

我所使用的Elasticsearch的版本是基于7.17.7。 需求是将某个ES的索引进行克隆。例如我要将索引test_0419_1克隆一份新的索引test_0419_2。步骤如下: 首先将源索引进行修改PUT /test_0419_1/_block/write,即禁止对这个索引进行写数据操作。然后执行克隆…

LeetCode 第394场周赛个人题解

目录 100294. 统计特殊字母的数量 I 原题链接 思路分析 AC代码 100291. 统计特殊字母的数量 II 原题链接 思路分析 AC代码 100290. 使矩阵满足条件的最少操作次数 原题链接 思路分析 AC代码 100276. 最短路径中的边 原题链接 思路分析 AC代码 100294. 统计特殊字…

docker安装clickhouse数据库

1.创建目录 mkdir -p /data/clickhouse/data mkdir -p /data/clickhouse/conf mkdir -p /data/clickhouse/log2.拉取镜像 docker pull clickhouse/clickhouse-server3.创建临时容器 docker run -d --rm --name clickhouse-server --ulimit nofile262144:262144 clickhouse/c…

vue中组件 和 插件的区别

vue中组件 和 插件的区别 在Vue.js中,组件和插件是两个不同的概念, 组件(Component): 组件是Vue.js应用程序的基本构建块,可以将一个页面拆分成多个独立可复用的组件,每个组件负责管理自己的模板、数据和行为。 组件可以包含模板…