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

引言

差分进化算法(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种群智能优化算法https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=1&sn=6b439e55b37b6482b8d3831ca85f1d55&chksm=c12be0c8f65c69de71ad51d3b736b871ff52f8646e90624f95dd32b024dfaad369d654aaf8fc#rd

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

略微出手,工程设计问题(12)(附Matlab代码)https://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代码https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=2&sn=eea8fb04dc507ab9119e2c97c03ca2f6&chksm=c12be0c8f65c69decd6c8109f6b997986bf58725fdbbd7ab03752cb6f61aacdb5a2dc7fec762#rd

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

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

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

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)21种混沌映射方法-混沌初始化,适用于所有优化算法https://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代码)https://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代码https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486260&idx=1&sn=81b1970cb89364c0289ccdfb403e5388&chksm=c12be731f65c6e273a85456326b503b7f35d9f035405050932ff1926e0b1bfa8076b1bc2d1f2&token=25423484&lang=zh_CN#rd

相关推荐
weixin_4407841110 小时前
【HandlerThread实现原理】
android·java·开发语言
天空'之城10 小时前
C 语言工业级通用组件手写 24:互补滤波
c语言·开发语言·互补滤波·嵌入式算法·工业级组件
leoZ23110 小时前
本地跑大模型实战(七):llama.cpp 性能调优,让推理更快更省
java·人工智能·spring·生成对抗网络·语言模型·自然语言处理·llama
XR12345678810 小时前
工厂车间无线网络方案对比:AGV漫游哪家强?
开发语言·php
To_OC10 小时前
我把《天龙八部》塞进向量数据库后,终于搞懂了 RAG 到底是个啥
人工智能·llm·agent
蜡台10 小时前
AI Agent(智能体)入门基础教程
人工智能
傻啦嘿哟10 小时前
某短视频平台视频爬虫实战:抓取推荐流视频信息,绕过反爬的3种技巧
开发语言·爬虫·python
Akir.weiwen11 小时前
Token 层差异:从颜色值到语义状态的三层跃迁
人工智能·设计规范
迷迭香yy11 小时前
集合竞价数据挖掘实战:用Python构建开盘信号识别系统
人工智能·python·数据挖掘
現実君11 小时前
【硬件进阶】AD22上位替换JLEDA教程
开发语言·php