烟花算法(FWA)(含开源MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号: 启发式算法讨论 。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。

烟花算法(Fireworks Algorithm, FWA)是于2010年由谭营教授等人所提出的一种新型群体智能优化算法。该算法在免疫算法中引入了浓度抑制的思想和分布式信息共享机制,具有较强的全局搜索能力。它的原始参考文献如下:

"Tan Y, Zhu Y. Fireworks algorithm for optimizationC//Advances in Swarm Intelligence: First International Conference, ICSI 2010, Beijing, China, June 12-15, 2010, Proceedings, Part I 1. Springer Berlin Heidelberg, 2010: 355-364."

01

灵感来源

根据谭营教授所著的《烟花算法引论》书中的描述,该算法的研究动机来源于在空中爆炸的烟花爆竹。他致力于研究不同类型的进化算法,也尝试把生活中的各种事物与进化算法联系在一起,看是否有所启发。终于在一个除夕夜,谭营老师看到空中绽放的烟花爆竹,脑海中迸发出这种爆炸图像与进化计算中的随机搜索是否可以建立某种联系(如同烟花爆炸图像一样来对问题解空间进行有效搜索)的灵感,并通过模拟烟花爆炸与扩散的机制进行多点同时搜寻全局最优解。

FWA采用的是分布式信息共享机制,可以对全局分布的所有烟花个体进行选择,根据适应度函数值的大小决定每个烟花的爆炸强度以及辐射强度,并在整个搜索过程中跟进与维护当前的最优烟花,使种群多样性得以保持。

02

算法设计

烟花算法的框架主要由以下四个部分组成,分别是爆炸算子(explosiveoperator) 、变异操作(mutation operation) 、映射规则(mapping rule)和选择策略(selection strategy)。组成烟花算法框架的流程图如图1所示。首先,在可行区域中对N 个烟花的初始化群体实行随机选择策略,此时每个烟花个体都表示一个独立的可行解,再对它们的适应度值进行评价,估算所有个体理论上爆炸火花的数量及爆炸区间。接着让群体中的每个烟花都经历爆炸和变异操作,这样爆炸产生的下一代群体就包括烟花爆炸产生的"爆炸火花"以及对其进行高斯变异而产生的"高斯变异火花"。在进行完爆炸和变异的步骤后,需使用映射规则来限制变异后的火花依旧在可行域范围中,并利用选择策略从新生成的下一代N-1个个体中选出并保留最优个体。用这种周而复始逐一迭代的方法将优秀的个体不断传递下去直到选出最优值,或达到算法的最大评估次数。

图1 烟花算法框架

03

计算流程

FWA的计算流程如图2所示。

图2 FWA的流程图

04

实验仿真

对FWA的性能进行简单的测试,将其用于函数寻优。Benchmark函数采用多峰函数Ackley。收敛效果如图3所示,这里就不再做进一步的分析了。

图3 FWA的收敛曲线

05

MATLAB代码

FWA的MATLAB代码可直接通过下方链接提取~

链接:https://pan.baidu.com/s/170SzFwf_qwPcDnjZ-AIdhw

提取码:8023

关注公众号:启发式算法讨论

相关推荐
gugucoding10 小时前
47. 【Java】Java内存模型(JMM)与可见性
java·开发语言
wujian831110 小时前
怎么用文心生成word文档?从格式错乱到智能导出,AI导出鸭让创作再无后顾之忧
人工智能·ai·word·豆包·deepseek·ai导出鸭
m0_3807438710 小时前
从零调用 Claude 教程
开发语言·python·node.js
起床学FPGA10 小时前
AI回答问题之后,会自动跳到最下面的问题
开发语言·javascript·ecmascript
动物园猫10 小时前
猪危险行为目标检测数据集:3类别、5,000+张图像 | 目标检测
人工智能·目标检测·计算机视觉
ai产品老杨10 小时前
AI视频分析并发优化完整流程:解决多路视频并发不足与高延迟排查指南
人工智能·音视频
why技术11 小时前
AI 写的文章,可能都带着手敲一遍都去不掉的“隐形水印”。
前端·人工智能·后端
罗西的思考11 小时前
【Agent OS / AIOS】AOHP 深度解读:当 OS 开始为 Agent 而设计
人工智能·算法·机器学习
新知图书11 小时前
8.2 智能体的心跳执行模式:以智能体为核心(智能体工程)
人工智能·agent·ai agent·智能体
x_x-F11 小时前
网络数据从网卡到用户态:一场基于内存所有权转移的接力赛
开发语言·网络·php