智能优化算法:平衡优化器算法 -附代码
2020智能优化算法:平衡优化器算法
文章目录
- 2020智能优化算法:平衡优化器算法
- 1.算法背景
- 2.算法优化原理
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:平衡优化器(equilibrium optimizer, EO)是于2020年提出的一种全新的基于控制容积质量平衡物理现象启发的优化算法。具有寻优能力强,收敛速度快的特点。
1.算法背景
平衡优化器(equilibrium optimizer, EO) 主要是受控制容积强混合型动态质量平衡的物理启发式优化算法。质量平衡方程体现了控制容积内质量进入、离开及生成的物理过程,一般采用一阶微分方程来描述,如下:
VdCdt=QCeq−QC+G(1)V\frac{dC}{dt} = QC_{eq} - QC + G \tag{1} VdtdC=QCeq−QC+G(1)
式中 VVV 为控制容积; CCC 为控制容积内的浓度;QQQ 为流进或流出控制容积的容量流率;CeqC_{eq}Ceq表示控制容积内部在无质量生成(即平衡状态下)时的浓度; GGG 为控制容积内部的质量生成速率。
通过求解式(1)描述的微分方程,可求得:
C=Ceq+(C0−Ceq)F+G(1−F)/λV(2)C =C_{eq}+(C_0-C_{eq})F + G(1-F)/\lambda V \tag{2} C=Ceq+(C0−Ceq)F+G(1−F)/λV(2)
F=exp(−λ(t−t0))(3)F = exp(-\lambda(t-t_0))\tag{3} F=exp(−λ(t−t0))(3)
式中 FFF为指数项系数; λ\lambdaλ 为流动率;C0C_0C0 为控制容积在时间t0t_0t0的初始浓度。
2.算法优化原理
平衡优化器主要基于式(2)展开迭代寻优。对于一个优化问题,等式左边的浓度 CCC 代表新产生的当前解;C0C_0C0代表上一次迭代得到的解;CeqC_{eq}Ceq 代表算法当前找到的最好的解。类似经典 PSO 算法速度更新方程,这里的浓度即代表个体的解,解的更新包括了当前最优解附近的局部搜索和寻优空间内的全局随机搜索,如图 1所示。为满足不同问题的优化需求,算法对具体的操作过程及参数设计如下:
- 初始化:算法在每个优化变量的上下界范围内进行随机初始化,如下:
Ci0=Cmin+ri(Cmax−Cmin),i=1,2,...,n(4)C_i^0 = C_{min}+r_i(C_{max}-C_{min}),i=1,2,...,n \tag{4} Ci0=Cmin+ri(Cmax−Cmin),i=1,2,...,n(4)
式中Cmin,CmaxC_{min},C_{max}Cmin,Cmax分别为优化变量的下限和上限向量;rir_iri代表个体 i 的随机数向量,其维度跟优化空间维度一致,每个元素值均为 0 至 1 的随机数。
2)平衡状态池:为提高算法的全局搜索能力,避免陷入低质量的局部最优解,式(2)中的平衡状态(即最优个体)将从 5 个当前最优的候选解里面选择(见图 1),这些候选解构成的平衡状态池如下:
Ceq,pool={Ceq,1,Ceq,2,Ceq,3,Ceq,4,Ceq,ave}(5)C_{eq,pool}=\{C_{eq,1},C_{eq,2},C_{eq,3},C_{eq,4},C_{eq,ave}\} \tag{5} Ceq,pool={Ceq,1,Ceq,2,Ceq,3,Ceq,4,Ceq,ave}(5)
式中Ceq,1,Ceq,2,Ceq,3,Ceq,4C_{eq,1},C_{eq,2},C_{eq,3},C_{eq,4}Ceq,1,Ceq,2,Ceq,3,Ceq,4分别为截止当前迭代找到的最好的四个解;Ceq,4C_{eq,4}Ceq,4代表这四个解的平均状态。值得注意的是,这 5 个候选解被选择的概率是一样的,均为 0.2。
指数项系数 F:为更好平衡算法的局部搜索和全局搜索,式(3)改进如下:
F=a1∗sign(r−0.5)[e−λt−1](6)F = a_1*sign(r-0.5)[e^{-\lambda t}-1]\tag{6} F=a1∗sign(r−0.5)[e−λt−1](6)
式中a1a_1a1为全局搜索的权重常系数; signsignsign 为符号函数; r,λr,\lambdar,λ 均代表随机数向量,其维度跟优化空间维度一致,每个元素值均为 0 至 1 的随机数。质量生成速率 G :为加强算法的局部寻优能力,生成速率设计如下:
G=GCP(Ceq−λC)(7)G = G_{CP}(C_{eq}-\lambda C)\tag{7} G=GCP(Ceq−λC)(7)
GCP={0.5ri,ifr2≥0.50,otherwise(8)G_{CP}=\begin{cases} 0.5r_i,if\,r_2\geq 0.5\\ 0,otherwise \end{cases}\tag{8} GCP={0.5ri,ifr2≥0.50,otherwise(8)
式中GCPG_{CP}GCP为生成速率控制参数向量; r1r_1r1为随机数向量,其维度跟优化空间维度一致,每个元素值均为 0 至 1 的随机数; r2r_2r2为 0 至 1 范围内的随机数。
- 解更新:针对优化问题来说,基于式(2),个体的解可更新如下:
C=Ceq+(C−Ceq)F+G(1−F)/λV(9)C = C_{eq}+(C-C_{eq})F+G(1-F)/\lambda V \tag{9} C=Ceq+(C−Ceq)F+G(1−F)/λV(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代码
6.Python代码
上述代码见个人资料介绍
智能优化算法:平衡优化器算法 -附代码相关推荐
- 基于粒子群算法优化的Elman神经网络数据预测-附代码
基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...
- 基于布谷鸟算法优化的Elman神经网络数据预测-附代码
基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...
- 基于鲸鱼算法优化的Elman神经网络数据预测-附代码
基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
- 基于海鸥算法优化的Elman神经网络数据预测-附代码
基于海鸥算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于海鸥算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
- python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码
原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...
- 基于遗传算法优化的Elman神经网络数据预测-附代码
基于遗传算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于遗传算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
- 基于蜣螂优化的Elman神经网络数据预测-附代码
基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
- 【AI超级美发师】深度学习算法打造染发特效(附代码)
[新智元导读]如今,在类似天天P图.美图秀秀等手机APP中,给指定照片或视频中的人物更换头发颜色已经是再正常不过的事情了.那么本文便介绍了该功能背后如AI头发分割模块.头发换色.颜色增强与修正模块等技 ...
- 基于麻雀算法的无人机航迹规划 - 附代码
基于麻雀算法的无人机航迹规划 文章目录 基于麻雀算法的无人机航迹规划 1.麻雀搜索算法 2.无人机飞行环境建模 3.无人机航迹规划建模 4.实验结果 4.1地图创建 4.2 航迹规划 5.参考文献 6 ...
- 随机森林算法训练及调参-附代码
随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为&q ...
最新文章
- An Openfire plugin for Webspell sites.
- 室内装修隐蔽工程验收知识拓展_装修之前先看知贤,『装修微课堂』室内装修隐蔽工程详解,装修小白防坑避雷手册!...
- [css] 如何用css实现把“我不爱996”变成“699爱不我”?
- PAT 1004 成绩排名 (20)(代码)
- 利用SQLite在android上实现增删改查
- Hibernate的单向1-N关联(三)
- PHP:同时发送多个异步ajax请求,但数据却是按同步顺序返回
- 炳辉中学2021高考成绩查询,天长中学 炳辉中学 天长二中 关塘中学2019年高考成绩喜报...
- 【python文字游戏】飞花令
- Tomcat部署及优化
- 新版Dede采集不要在用没更新的Dede插件
- python+大数据-MySQL-day02(黑马)
- was部署java项目_web工程was部署
- python//Jan.17th,2020//类
- 【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度)
- 随记——一站式前端搭建平台(必盛云虚拟主机)
- android 悬浮球动画,Android 仿360悬浮球与加速球
- 品三国、论国产RISC-V芯片天下大势
- ❤ 就这?TypeScript其实并不难!(建议收藏)❤
- MongoDB小结09 - update【定位修改器】
热门文章
- python 字符串不相等_python实现找出来一个字符串中最长不重复子串
- 三角形外接球万能公式_宏程序不是万能的,没有宏程序是不能的,一款通用宏分享给大家!...
- trycatch抛出异常_满屏的trycatch,这代码写得真丑!
- python raise语句_Python学习笔记:异常处理
- Go语言:数组练习—数组逆置
- Cesium:去除原生自带绿色选择框
- 深度学习笔记_各种神经网络结构对比(ImageNet竞赛中:AlexNet/VGG/GoogleNet/ResNet/SENet)
- Cesium 环境配置笔记(使用node.js 或者WampServer服务器)
- 斯坦福大学深度学习公开课cs231n学习笔记(8)神经网络学习过程中的检查事项和参数调优
- AI 框架部署方案之模型转换