1. 烟花算法简介
(以下描述,均不是学术用语,仅供大家快乐的阅读)
烟花算法(Firework Algorithm,FWA)是一种受烟花爆炸产生火星,并继续分裂爆炸这一过程启发而得出的算法。算法的思想简单,但具体实现复杂。算法提出时间并不长,但是已经有了不少的改进研究和较为全面的应用。
烟花算法中,每一个烟花的位置都代表了一个可行解。烟花的爆炸产生的火星有两种,正常的火星与特别的火星。每个火星都会爆炸产生数个正常火星,某些火星有一定的概率产生一个特别的火星。正常的火星根据当前火星的振幅随机均匀分布在该火星的周围,而特别的火星将在当前火星附近以正态分布方式产生。每次迭代产生的火星数量多于每一代应有的火星数,算法将参照火星位置的优劣,随机留下指定数量的火星,已保持火星数目的稳定。
2. 算法流程
烟花算法的主角毫无疑问就是烟花了。
烟花算法中每个火星有两个属性:位置以及振幅,振幅与所有火星的亮度值有关,亮度越高的火星的振幅越小,反之振幅越大。(这里亮度表示火星的适应度值,越亮表示这个位置的氧气浓度越高,适应度越好)
一句话总结烟花算法:较差位置大范围少量搜索,较好位置小范围大量搜索,不从众。
在D维解空间内每个火星的位置为