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×rand−1(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=Xwinnersitime−Mtime+(c.Z1+(1−c).Z2),Mtime=N1.i=1∑NXwinnersj,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_time1−time.(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=M−D1+D2,Z2=M−D2+D1,D1=M−Xwinnersrand1,D2=M−Xwinnersrand2.(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.