当前位置: 首页 > news >正文

【算法精解】CEC2021竞赛亚军算法-MadDE框架及代码实现(Matlab)

本文核心内容:
 MadDE算法主要框架及该算法创新点
 Matlab代码实现(可免费获取,包括代码及原文献)

不少同学改进算法有时缺乏可落地思路,或从文献获得灵感却苦于写不出代码。为此,KAU 推出【算法精解】,将定期拆解一区创新算法或应用方面的文献,解析改进逻辑、复现可执行代码,助你逐步搭建思维库与代码库。
话不多说,这次【算法精解】就从CEC2021竞赛第二名MadDE入手,对该算法进行开展解析与代码复现。

1 MadDE算法框架及其主要特点
为了提升DE的优化性能, Biswas S等于2021年提出了多重自适应差分进化算法(Multiple Adaptation based Differential Evolution, MadDE)[1]。该算法在 CEC2021竞赛中获得亚军,其主要改进包括:

 类似于LSAHDE,MadDE对传统DE算法中的种群规模(NP)、缩放因子(F)、交叉率(Cr)进行自适应调整。
 改进了交叉策略,MadDE提出了概率交叉机制。
 MadDE引入了三种差分变异算子,并基于历史成功率选择算子。

下面KAU将对MadDE算法的改进策略进一步介绍。

1.1 参数自适应调整
与LSAHDE、LSAHDE-epsin和IMODE等算法类似,MadDE也引入了这种可显著提升进化算法性能的调整策略,其基本公式与LSAHDE类似,但MadDE的设计与LSHADE有一些差异:

 记忆库大小
LSHADE为固定值(通常是5),而MadDE虽然也是固定的,但它会随问题维度变化(通常为10*D),可使其适配高维度优化场景。

 无历史成功解的处理
MadDE在无历史成功解时会重置MF和MCr为0.5,以避免其参数停滞,而LSHADE则保持不变。

1.2 变异策略
变异策略是决定DE优化性能的核心环节,其设计范式也可为我们进行算法的改进研究提供重要参考效。MadDE设计了3种互补的变异算子,包括DE/current-to-pbest/1+archive(与LSHADE、JADE一样),DE/current-to-rand/1+archive和DE/weighted-rand-to-qbest/1。下面具体介绍其公式:

 DE/current-to-pbest/1+archive

 DE/current-to-rand/1 + archive

上面两个公式中,pbest是从前p%的个体中随机选择的,r1、r2是从当前种群中随机选择的,而r3则是从外部存档中随机选择的,可增强种群多样性。

 DE/weighted-rand-to-qbest/1

其中qbest是种群前q%中随机选择(这种概念有点类似精英池的处理,不过它是动态的),q的公式为:

同时,公式中Fa为:

1.3 交叉策略
在变异操作后,根据目标向量x和变异向量v进行交叉操作产生实验向量u。常见的交叉包括指数交叉和二项式交叉两种方式。但MadDE采用了一种概率交叉的机制:

 二项式交叉(BX):

 qbest二项式交叉(qBX):
该算子是二项交叉的一种贪心变体,其设计灵感来源于 DE/current-to-pbest/1变异策略。在qBX中,其将二项式交叉公式中的目标向量替换为从外部存档与当前种群并集中排名前q%的解里随机选取的一个解。

可以看到MadDE一方面设计了互补的变异算子池,另一方面在交叉策略上也有互补设计,精确的解决了DE及其变体算法在某些场景中失效的问题,其改进思路也值得借鉴学习。

2 代码实现
KAU提供的源码初始版本是文献作者开源版本,KAU对其进行了详细的注释以及小改动,以便于我们在函数对比时对其进行调用。KAU提供资源如下:

资源包括
 KAU注释以及改动后便于调用的版本以及原作者提供的原始版本,
 MadDE文献

3 资源获取
此为免费资源,GZH(KAU的云实验台) 回复“MadDE”即可

参考文献
[1] Biswas S , Saha D , De S ,et al.Improving Differential Evolution through Bayesian Hyperparameter Optimization[J].IEEE, 2021.DOI:10.1109/CEC45853.2021.9504792.

http://www.jsqmd.com/news/595605/

相关文章:

  • 【从0开始学设计模式-6| 原型模式】
  • Swagger Client 完整教程:从零开始构建强大的 API 集成应用
  • 文件上传漏洞的花式绕过:用Pikachu靶场复现企业级攻防场景
  • Sony FCB-EV9500L LVDS图像闪烁问题分析
  • STM32F469NI+LVGL双缓冲与DMA2D硬件加速实战
  • 网站SEO关键词对网页排名的重要性如何评估
  • Kandinsky-5.0-I2V-Lite-5s应用场景:游戏NPC立绘动态化+过场动画快速生成
  • 手机生成剧本杀软件2025推荐,创新剧情设计工具助力创作
  • SDMatte算法原理浅析:从卷积神经网络看图像分割技术
  • 5分钟部署Fun-ASR语音识别:支持中文、英文、日文等31种语言
  • Java企业级集成:Qwen3-ASR-0.6B语音质检系统开发
  • 融合LoRA微调模型:打造专属领域的AI修图专家系统
  • 自动驾驶中的ICP:激光SLAM定位模块是如何用点云匹配实现厘米级精度的?
  • SEO_为什么你的SEO策略无效?常见原因与解决办法(372 )
  • 伏羲天气预报可信AI:预报结果置信度输出、不确定性传播与可视化
  • 从read()到硬盘:用strace和bpftrace动态追踪Linux内核文件读取的完整路径(附实战脚本)
  • 编写程序实现智能乐器音准检测偏差时,提示“需要调音”,新手也能调好音。
  • 5分钟搞定AI绘画:Asian Beauty Z-Image Turbo快速部署与使用教程
  • 7个Linux系统管理员面试常见技术盲点及解决方案终极指南 [特殊字符]
  • CoPaw复杂逻辑推理与数学解题能力极限测试
  • AI绘画作品集:Anything V5图像生成服务实际效果与案例分享
  • 告别信道束缚:探究 Random Multiplexing 随机复用技术
  • Leather Dress Collection 实战:为开源项目自动生成 README 与贡献指南
  • 港大新作GS-SDF开源了!手把手教你用激光雷达+3DGS复现IROS2025论文效果(附避坑指南)
  • Qwen2.5-VL-32B-Instruct 实战:从零搭建视觉语言模型微调环境(附常见错误解决)
  • 交互弹窗设计避坑指南:Toast、Dialog、Actionbar和Snackbar的常见错误与优化建议
  • KuiklyUI布局系统完全指南:Flexbox与绝对定位实战
  • NaViL-9B开发者调试手册:nvidia-smi显存监控+ss端口诊断全流程
  • CLIP-GmP-ViT-L-14入门指南:理解ImageNet/ObjectNet双基准评估意义
  • Kandinsky-5.0-I2V-Lite-5s多风格测试:卡通、写实、水墨画生成效果对比