1 烟花算法
烟花算法是由谭营教授等人于2010年提出的一种新型群体优化算法[6],该算法容易实现,鲁棒性较好,一经提出,就得到了广泛的研究和应用[7]。烟花算法由爆炸算子、变异算子、选择策略和映射规则四部分组成。
爆炸算子主要由爆炸强度决定。在实际烟花爆炸过程中,烟花每次爆炸都会产生许多火花,烟花算法中利用爆炸强度使不同适应度的烟花产生不同数目的火花,这样可以避免算法陷入局部最优,使算法尽可能探索搜寻整个可行解的空间。爆炸生成的烟花数目和爆炸半径计算方式分别如公式(4)和公式(5)所示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SM5AzNxQDNkZTZjRmZwcDOxYzXyMTOycDM3AzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.png)
式中:Si为第i个烟花爆炸产生的火花数目;m和d为常数;f(xi)为个体适应度的值;Ymax和Ymin分别是当前群体适应度的最大值和最小值;ε为一个极小的数,防止公式无意义。
烟花在爆炸后,需要对爆炸火花进行位移操作和变异操作。本文采用随机位移的方法对火花进行维度的更新。变异操作是为了扩展寻优空间和增加种群的多样性,避免算法陷入局部最优,本文采用高斯变异生成变异火花,计算如公式(6)所示:
其中,e服从均值为1、方差为1的高斯分布。
变异操作之后,火花多样性增加,由选择策略选择下一代烟花,本文采用标准烟花算法中的基于曼哈顿距离的选择策略,计算如公式(7)所示:
式中:d(xi,xj)为两个火花间的曼哈顿距离。
综上,烟花算法的主要流程如下:(1)初始化烟花位置和参数;(2)计算所有烟花的适应度和爆炸半径、火花数目,生成变异火花;(3)使用选择策略选择下一代烟花,循环执行(2),直到满足条件。
2 FWA算法框架
烟花算法的算法流程图如图1所示。
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.