【智能算法】平衡优化器(EO)原理及实现
2020年,Afshin Faramarzi等人受到估计动态和平衡状态的控制体积质量平衡模型启发,提出了平衡优化器(Equilibrium Optimizer, EO)。其中,V 为容器的容积,C 为溶液密度,Q 为容量流率,Ceq 表示平衡状态下的浓度,G 为容器内的质量生成速率。EO基于等式(2)进行更新,具体而言,C代表新解,C0代表旧解,Ceq代表当前最优解。为4个体平均值,五者以等概率选

1.背景
2020年,Afshin Faramarzi等人受到估计动态和平衡状态的控制体积质量平衡模型启发,提出了平衡优化器(Equilibrium Optimizer, EO)。(PS:酒桶摇摇晃晃~)
2.算法原理
2.1算法思想

EO基于质量平衡方程,描述为一阶微分方程:
V d C d t = Q C e q − Q C + G (1) V\frac{dC}{dt}=QC_{eq}-QC+G \tag{1} VdtdC=QCeq−QC+G(1)
其中,V 为容器的容积,C 为溶液密度,Q 为容量流率,Ceq 表示平衡状态下的浓度,G 为容器内的质量生成速率。
求解可以得到方程的解为:
C = C e q + ( C 0 − C e q ) F + G λ V ( 1 − F ) F = exp [ − λ ( t − t 0 ) ] (2) C=C_{eq}+\left(C_{0}-C_{eq}\right)F+\frac{G}{\lambda V}(1-\mathrm{F})\\ F=\exp\left[-\lambda\left(t-t_0\right)\right] \tag{2} C=Ceq+(C0−Ceq)F+λVG(1−F)F=exp[−λ(t−t0)](2)
2.2算法过程
EO基于等式(2)进行更新,具体而言,C代表新解,C0代表旧解,Ceq代表当前最优解。
平衡池:
EO是领导者-跟随者类型算法, 这里采用排名前4个体进行引导,避免陷入局部解:
C ⃗ e q , p o o l = { C ⃗ e q ( 1 ) , C ⃗ e q ( 2 ) , C ⃗ e q ( 3 ) , C ⃗ e q ( 4 ) , C ⃗ e q ( a v e ) } (3) \vec C_{eq,pool}=\left\{\vec C_{eq(1)},\vec C_{eq(2)},\vec C_{eq(3)},\vec C_{eq(4)},\vec C_{eq(ave)}\right\}\tag{3} Ceq,pool={Ceq(1),Ceq(2),Ceq(3),Ceq(4),Ceq(ave)}(3)
其中, C ⃗ e q ( a v e ) \vec C_{eq(ave)} Ceq(ave)为4个体平均值,五者以等概率选择(0.2)。
系数F:
EO为了平衡全局探索与局部开发,对等式(2)中的F进行修正:
F ⃗ = a 1 s i g n ( r ⃗ − 0.5 ) [ e − λ ⃗ t − 1 ] (4) \vec{F}=a_1sign\left(\vec{r}-0.5\right)\left[e^{-\vec{\lambda}t}-1\right] \tag{4} F=a1sign(r−0.5)[e−λt−1](4)
质量生成速率G:
参数G控制局部开发收敛性:
G ⃗ = G ⃗ 0 e − λ ⃗ ( t − t 0 ) = G ⃗ 0 F ⃗ \vec{G}=\vec{G}_0e^{-\vec{\lambda}(t-t_0)}=\vec{G}_0\vec{F} G=G0e−λ(t−t0)=G0F
G 0 → = G C P → ( C e q → − λ ⃗ C ⃗ ) G C P → = { 0.5 r 1 r 2 ≥ G P 0 r 2 < G P (5) \overrightarrow{G_0}=\overrightarrow{GCP}\left(\overrightarrow{C_{eq}}-\vec{\lambda}\vec{C}\right)\\\overrightarrow{GCP}=\begin{cases}0.5r_1&r_2\geq GP\\\\0&r_2<GP\end{cases}\tag{5} G0=GCP(Ceq−λC)GCP=⎩
⎨
⎧0.5r10r2≥GPr2<GP(5)
位置更新:
C ⃗ = C ⃗ e q + ( C ⃗ − C ⃗ e q ) . F ⃗ + G ⃗ λ V ⃗ ( 1 − F ⃗ ) (6) \vec{C}=\vec{C}_{eq}+\left(\vec{C}-\vec{C}_{eq}\right).\vec{F}+\frac{\vec{G}}{\vec{\lambda V}}\big(1-\vec{F}\big)\tag{6} C=Ceq+(C−Ceq).F+λVG(1−F)(6)
伪代码:
3.代码实现
公众号:小O的算法实验室,免费获取
4.参考文献
[1] Faramarzi A, Heidarinejad M, Stephens B, et al. Equilibrium optimizer: A novel optimization algorithm[J]. Knowledge-based systems, 2020, 191: 105190.
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)