智能优化算法:平衡优化器算法

2020智能优化算法:平衡优化器算法

@[toc]
摘要:平衡优化器(equilibrium optimizer, EO)是于2020年提出的一种全新的基于控制容积质量平衡物理现象启发的优化算法。具有寻优能力强,收敛速度快的特点。

1.算法背景

平衡优化器(equilibrium optimizer, EO) 主要是受控制容积强混合型动态质量平衡的物理启发式优化算法。质量平衡方程体现了控制容积内质量进入、离开及生成的物理过程,一般采用一阶微分方程来描述,如下:
V\frac{dC}{dt} = QC_{eq} - QC + G \tag{1}
式中 V 为控制容积; C 为控制容积内的浓度;Q 为流进或流出控制容积的容量流率;C_{eq}表示控制容积内部在无质量生成(即平衡状态下)时的浓度; G 为控制容积内部的质量生成速率。

通过求解式(1)描述的微分方程,可求得:
C =C_{eq}+(C_0-C_{eq})F + G(1-F)/\lambda V \tag{2}

F = exp(-\lambda(t-t_0))\tag{3}

式中 F为指数项系数; \lambda 为流动率;C_0 为控制容积在时间t_0的初始浓度。

2.算法优化原理

平衡优化器主要基于式(2)展开迭代寻优。对于一个优化问题,等式左边的浓度 C 代表新产生的当前解;C_0代表上一次迭代得到的解;C_{eq} 代表算法当前找到的最好的解。类似经典 PSO 算法速度更新方程,这里的浓度即代表个体的解,解的更新包括了当前最优解附近的局部搜索和寻优空间内的全局随机搜索,如图 1所示。为满足不同问题的优化需求,算法对具体的操作过程及参数设计如下:

  1. 初始化:算法在每个优化变量的上下界范围内进行随机初始化,如下:
    C_i^0 = C_{min}+r_i(C_{max}-C_{min}),i=1,2,...,n \tag{4}
    式中C_{min},C_{max}分别为优化变量的下限和上限向量;r_i代表个体 i 的随机数向量,其维度跟优化空间维度一致,每个元素值均为 0 至 1 的随机数。

2)平衡状态池:为提高算法的全局搜索能力,避免陷入低质量的局部最优解,式(2)中的平衡状态(即最优个体)将从 5 个当前最优的候选解里面选择(见图 1),这些候选解构成的平衡状态池如下:
C_{eq,pool}=\{C_{eq,1},C_{eq,2},C_{eq,3},C_{eq,4},C_{eq,ave}\} \tag{5}
式中C_{eq,1},C_{eq,2},C_{eq,3},C_{eq,4}分别为截止当前迭代找到的最好的四个解;C_{eq,4}代表这四个解的平均状态。值得注意的是,这 5 个候选解被选择的概率是一样的,均为 0.2。

  1. 指数项系数 F:为更好平衡算法的局部搜索和全局搜索,式(3)改进如下:
    F = a_1*sign(r-0.5)[e^{-\lambda t}-1]\tag{6}
    式中a_1为全局搜索的权重常系数; sign 为符号函数; r,\lambda 均代表随机数向量,其维度跟优化空间维度一致,每个元素值均为 0 至 1 的随机数。

  2. 质量生成速率 G :为加强算法的局部寻优能力,生成速率设计如下:
    G = G_{CP}(C_{eq}-\lambda C)\tag{7}

G_{CP}=\begin{cases} 0.5r_i,if\,r_2\geq 0.5\\ 0,otherwise \end{cases}\tag{8}

式中G_{CP}为生成速率控制参数向量; r_1为随机数向量,其维度跟优化空间维度一致,每个元素值均为 0 至 1 的随机数; r_2为 0 至 1 范围内的随机数。

  1. 解更新:针对优化问题来说,基于式(2),个体的解可更新如下:
    C = C_{eq}+(C-C_{eq})F+G(1-F)/\lambda V \tag{9}
    图1.EO 算法优化原理示意图

算法流程:

Step1.初始化算法参数

Step2.计算适应度值

Step3.根据式(5)确定当前平衡池状态。

Step4.根据式(6)更新指数项系数。

Step5.根据式(7)(8)更新质量生成系数

Step6.根据式(9)更新个体当前解

step7.判断是否满足停止条件,如果满足则输出最终结果,否则重复Step2-Step6。

3.实验结果

实验结果

4.参考文献

[1]杨蕾,李胜男,黄伟,张丹,杨博,张孝顺.基于平衡优化器的含高比例风光新能源电网无功优化[J/OL].电力系统及其自动化学报:1-9[2020-12-18].https://doi.org/10.19635/j.cnki.csu-epsa.000555.

[1]Afshin Faramarzi,Mohammad Heidarinejad,Brent Stephens,Seyedali Mirjalili. Equilibrium optimizer: A novel optimization algorithm[J]. Knowledge-Based Systems,2020,191.

5.Matlab代码

https://mianbaoduo.com/o/bread/YZWYmZlu

6.Python代码

https://mianbaoduo.com/o/bread/YZaYmJZu

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容