几款性能优秀的差分进化算法DE(SaDE、JADE,SHADE,LSHADE、LSHADE_SPACMA、LSHADE_EpSin)-附Matlab免费代码

news/2024/12/26 23:29:23/

引言

差分进化算法(Differential Evolution,简称DE)是一种全局优化算法,由Storn和Price于1995年首次提出。它主要用于求解实数优化问题,属于演化算法的一种。DE算法以其结构简单、容易实现、收敛快速和鲁棒性强等特点,在多个领域得到了广泛应用。

算法流程

  1. 初始化种群:确定差分进化算法控制参数,如种群大小NP、缩放因子F与杂交概率CR,并随机产生初始种群。

  2. 变异:从种群中随机选取两个个体的差向量作为第三个个体的随机变化源,将差向量加权后按照一定的规则与第三个个体求和而产生变异个体。

  3. 交叉:变异个体与某个预先决定的目标个体进行参数混合,生成试验个体。

  4. 选择:比较试验个体和当前个体的适应度,选择适应度更好的个体作为下一代种群的成员。

  5. 迭代:通过反复迭代上述过程,直至满足终止条件(如达到最大迭代次数或适应度达到预定阈值),最终得到问题的近似最优解。

本期介绍了几款优秀的DE变体:SaDE、JADE,SHADE,LSHADE、LSHADE_SPACMA、LSHADE_EpSin

SaDE(Self-adaptive Differential Evolution)

SaDE算法是一种改进的差分进化(DE)算法,其核心特点在于能够自适应地调整算法的控制参数,以适应不同阶段的优化需求。这种算法不需要预先指定学习策略和两个控制参数F(缩放因子)与CR(交叉概率),而是在进化过程中根据学习经验逐渐自我适应这些参数。

A. K. Qin and P. N. Suganthan, "Self-adaptive differential evolution algorithm for numerical optimization," 2005 IEEE Congress on Evolutionary Computation, Edinburgh, UK, 2005, pp. 1785-1791 Vol. 2, doi: 10.1109/CEC.2005.1554904. https://ieeexplore.ieee.org/document/1554904

JADE(Adaptive Differential Evolution with Optional External Archive)

JADE算法是一种改进的差分进化(DE)算法

JADE算法能够自动调整控制参数,如缩放因子(F)和交叉概率(CR),以适应优化问题的特性,从而提高算法的鲁棒性。

JADE算法引入了“DE/current-to-pbest”变异策略,这是对经典“DE/current-to-best”策略的扩展。在“DE/current-to-pbest”中,不仅考虑当前个体和最好个体之间的差异,还可能包含历史最优个体的信息,这样可以增加种群的多样性,避免过早收敛,同时也能改善算法的收敛性能。

JADE算法引入了可选的外部归档机制,用于存储历史最优解。这些历史数据可以提供优化过程中的进步方向信息,帮助算法跳出局部最优,提高全局搜索能力。

J. Zhang and A. C. Sanderson, "JADE: Adaptive Differential Evolution With Optional External Archive," in IEEE Transactions on Evolutionary Computation, vol. 13, no. 5, pp. 945-958, Oct. 2009, doi: 10.1109/TEVC.2009.2014613. https://ieeexplore.ieee.org/document/5208221

SHADE(Success-history based Adaptive Differential Evolution)

SHADE算法是一种基于差分进化(DE)算法的自适应优化算法,由Tanabe和Fukunaga于2013年提出。SHADE算法在JADE的基础上进行了改进,主要通过引入成功历史记忆机制来优化控制参数,从而提高算法的收敛性和搜索能力。

R. Tanabe and A. Fukunaga, "Success-history based parameter adaptation for Differential Evolution," 2013 IEEE Congress on Evolutionary Computation, Cancun, Mexico, 2013, pp. 71-78, doi: 10.1109/CEC.2013.6557555. https://ieeexplore.ieee.org/document/6557555

LSHADE(Linear-SHADE)

LSHADE(Linear-SHADE)优化算法是一种基于差分进化(DE)算法的优化算法,其核心特点在于引入了线性种群规模缩减(Linear Population Size Reduction, LPSR)机制。

R. Tanabe and A. S. Fukunaga, "Improving the search performance of SHADE using linear population size reduction," 2014 IEEE Congress on Evolutionary Computation (CEC), Beijing, China, 2014, pp. 1658-1665, doi: 10.1109/CEC.2014.6900380

LSHADE_SPACMA

LSHADE_SPACMA优化算法是一种结合了LSHADE(Large Population Size Reduction SHADE)和CMA-ES(Covariance Matrix Adaptation Evolution Strategy)的混合优化算法

A. W. Mohamed, A. A. Hadi, A. M. Fattouh and K. M. Jambi, "LSHADE with semi-parameter adaptation hybrid with CMA-ES for solving CEC 2017 benchmark problems," 2017 IEEE Congress on Evolutionary Computation (CEC), Donostia, Spain, 2017, pp. 145-152, doi: 10.1109/CEC.2017.7969307.

LSHADE_EpSin

  • LSHADE_EpSin算法通过引入一种新的正弦参数自适应框架来改善L-SHADE算法的性能。这种框架能够自动调整差分进化算法中的缩放因子(F)的值。

  • 算法采用了两种正弦公式的混合:非自适应正弦递减调整和基于历史的自适应正弦递增调整。这种正弦集成方法的目标是在已找到的最佳解的利用和未访问区域的探索之间找到有效的平衡。

  • 在后期代数中,LSHADE_EpSin还使用了基于高斯步行的局部搜索方法,以增强其利用能力

N. H. Awad, M. Z. Ali, P. N. Suganthan and R. G. Reynolds, "An ensemble sinusoidal parameter adaptation incorporated with L-SHADE for solving CEC2014 benchmark problems," 2016 IEEE Congress on Evolutionary Computation (CEC), Vancouver, BC, Canada, 2016, pp. 2958-2965, doi: 10.1109/CEC.2016.7744163.

03. 对比验证

在经典23个函数进行验证

图片

图片

参考文献

几款性能优秀的差分进化算法DE-附Matlab免费代码

Matlab代码下载

微信搜索并关注-优化算法(英文名:Swarm-Opti),或扫描下方二维码关注,以算法名字搜索历史文章即可下载。

图片

👇👇👇

DE合集.zip

点击链接跳转:

375种群优化算法免费下载-matlab

https://mp.weixin.qq.com/s/AsFTBmaZ8UOgES9TQuL0Kg?token=1339859150&lang=zh_CN

求解cec测试函数-matlab 

cec2017测试函数使用教程及matlab代码免费下载

cec2018测试函使用教程及matlab代码免费下载

cec2019测试函使用教程及matlab代码免费下载

cec2020测试函使用教程及matlab代码免费下载

cec2021测试函使用教程及matlab代码免费下载

cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!

215种群智能优化算法python库

Amazing!Python版215种群智能优化算法icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=1&sn=6b439e55b37b6482b8d3831ca85f1d55&chksm=c12be0c8f65c69de71ad51d3b736b871ff52f8646e90624f95dd32b024dfaad369d654aaf8fc#rd

解决12工程设计优化问题-matlab

略微出手,工程设计问题(12)(附Matlab代码)icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd

求解11种cec测试函数-python

【选择自由,免费下载】215种优化算法求解11种cec测试函数-python代码icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=2&sn=eea8fb04dc507ab9119e2c97c03ca2f6&chksm=c12be0c8f65c69decd6c8109f6b997986bf58725fdbbd7ab03752cb6f61aacdb5a2dc7fec762#rd

解决30种工程设计优化问题-python

【一码解决】215种优化算法求解30个现实世界的工程设计优化问题,让你的论文增色10倍(附Python代码)icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=3&sn=ea6d26ae7cb651e5c368f4c73ade228e&chksm=c12be0c8f65c69de739af72d9793838f59ab77bfee36bc2c204f96e2a9e5c6d87dfbbbae698e#rd

仅需一行,可改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)21种混沌映射方法-混沌初始化,适用于所有优化算法icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486215&idx=2&sn=58f1a69175b0d6431a4c7cdfa114b84d&chksm=c12be702f65c6e14e6bd1ddc33b9cec74991d93303c325853049b7e4afd09039b13083fa79c5&token=25423484&lang=zh_CN#rd

【有经典,有最新】24种信号分解方法(附matlab代码) 

沙场大点兵:24种信号分解方法(附matlab代码)icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486001&idx=1&sn=a87c24cb401017a78a90bd1b1439fcb0&chksm=c12be634f65c6f22368b7229a59ac5ef330b89d710c826dbfd1a1c34a02b1dd7e909c7f40d79&token=25423484&lang=zh_CN#rd

 【分类新范式】27种一维数据转换成二维图像的方法-matlab代码

沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486260&idx=1&sn=81b1970cb89364c0289ccdfb403e5388&chksm=c12be731f65c6e273a85456326b503b7f35d9f035405050932ff1926e0b1bfa8076b1bc2d1f2&token=25423484&lang=zh_CN#rd


http://www.ppmy.cn/news/1558378.html

相关文章

建筑工地AI安全检测系统:YOLO11数据标注训练与PyQt5界面设计应用开发

“随着建筑行业的快速发展,工地的安全监管显得尤为重要。传统的人工监管方式效率低、成本高,难以及时发现潜在的安全隐患。为了解决这一问题,本项目基于YOLOv11目标检测算法,利用2800多张建筑工地影像数据及其标注数据&#xff0c…

linux-20 根文件系统(二)命名规则、学习范围概述

接下来说一说linux这些文件系统中的文件以及文件目录的命名规则,要自己创建文件的话,怎么给这个文件起名?之前提到过,linux是严格区分文件的名称,大小写的对吧?严格区分大小写,但是还要记住以下…

前端数据加载慢的解决方法

都是和前端性能优化非常类似的做法。 1. 懒加载 (Lazy Loading) 对于图片、视频等资源,或者某些组件,在用户滚动到相关区域时再加载,而不是页面一开始就加载所有内容。使用 IntersectionObserver 实现懒加载,或者一些 UI 框架&am…

10_HTML5 MathML --[HTML5 API 学习之旅]

HTML5 中的 MathML(Mathematical Markup Language)是一种用于在网页上显示复杂数学符号和公式的标记语言。它允许以结构化的方式描述数学表达式,从而确保公式能够被正确渲染,并且可以与其他Web技术如CSS、JavaScript等结合使用。 …

达梦数据库-数据共享集群部署

DSC集群部署 DM 数据共享集群又称为 DM 共享存储集群,英文全称 DM Data Shared Cluster,简称 DMDSC。 DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自…

overleaf中出现TeX capacity exceeded PDF object stream buffer=5000000的原因和解决方案

在插入pdf 配图后,编译出错提示信息如图,很可能的一个原因是pdf文件大小太大了,最好压缩一下,压缩到1MB以内。

【赵渝强老师】MongoDB逻辑存储结构

MongoDB的逻辑存储结构是一种层次结构,主要包括了三个部分,即:数据库(Database)、集合(Collection,也可以叫做表)和文档(Document,也可以叫做记录&#xff09…

mysql的存储碎片

什么是mysql的存储碎片 MySQL 的存储碎片是指在数据库存储数据的过程中,数据文件(如 InnoDB 的表空间文件或 MyISAM 的数据文件和索引文件)或者内存缓冲池中,数据的存储变得不连续,出现了一些零散的、未被充分利用的小…