受自然启发的计算已经成为优化问题、机器学习、数据挖掘和计算智能的新范式,具有广泛的应用。自然启发计算的本质是自然启发算法,如遗传算法(GA)
、粒子群优化(PSO)
和萤火虫算法(FA)
。大多数受自然启发的算法都使用了群体智能的一些特征。在受自然启发的算法中,萤火虫算法(firefly algorithm, FA)是由XinShe Yang在2007年末和2008年初提出的,至今已有近10年的发展历程,在过去几年中取得了重大进展。
在热带和温带地区的夏季天空中,萤火虫的生物发光是一种令人惊叹的景象。据估计,世界上大约有2000种萤火虫,大多数种类的萤火虫都会发出短暂而有节奏的闪光。每个物种都有不同的闪光模式和节奏,这种闪光的主要功能之一是作为一种信号系统,与其他萤火虫进行交流。闪光的频率、强度和间隔时间构成了信号系统的一部分,雌性萤火虫对雄性萤火虫独特的闪光模式做出反应。一些热带萤火虫甚至可以同步闪光,导致自组织行为。随着与闪烁源距离的增加,夜空中的光强度也会降低,能见度通常可以达到几百米,具体取决于天气条件。萤火虫的吸引力通常与它闪光的亮度和其闪光模式的定时准确性有关。
基于以上特点,杨新社开发了萤火虫算法(FA)。在FA内部,萤火虫的吸引力是由它的亮度决定的。由于光吸收的指数衰减和光随距离变化的平方反比定律,采用高度非线性项来模拟光强或吸引力的变化。在FA中,位置(作为问题的解向量)的主要算法方程为:
其中, 是控制随机漫步步长的比例因子, 是控制萤火虫可见性(以及搜索模式)的比例相关参数。另外, 是两只萤火虫之间距离为零时的吸引力常数(即 )。在上式中,右手边的第二项是随距离变化的非线性吸引力,第三项是随机化项,其中 表示每次迭代都要从高斯分布中抽取的随机数向量。该系统是一个非线性系统,这可能导致算法行为方面的丰富特征。从广义上讲,萤火虫算法(FA)属于群体智能范畴。
基于群体智能(swarm intelligence,SI)的算法都利用了群体智能的某些方面。需要指出的是,萤火虫 和萤火虫 之间的距离 可以定义为它们之间的笛卡尔距离。然而对于一些其他的问题如互联网路由问题,这个“距离”可以定义为时间延迟。对于某些组合问题,它甚至可以定义为汉明距离(Hamming Distance)。汉明距离是两个等长字符串对应位置上不同字符的个数。它通常用于比较两个二进制位串或其他符号串,以确定它们之间的相似度或差异。此外,由于萤火虫的亮度与其位置作为指标相关联,其他萤火虫看到的吸引力取决于它们的相对位置和相对亮度。所以需要对所有萤火虫进行配对比较。FA的主要步骤可以概括为以下伪代码。
此外,是控制FA中随机或扰动强度的参数。逐步减少随机性,加快整体收敛速度。因此,我们可以使用
式中为初值,为化简因子。在大多数情况下,我们可以使用 = 0.9到0.99。
事实上,由于FA是一个非线性系统,它具有将整个群体自动细分为多个子群体的能力。这是因为近距离吸引比远距离吸引更强,而群体的划分与吸引力变化的平均范围有关。在分成多群后,每个子群都可能围绕一个局部模式群集。因此,萤火虫算法自然适用于多模态优化问题。所以根据“情人眼里出西施”的原则,通过比较相对亮度来选择最佳方案。
该算法和方程式取自《自然启发算法和应用优化》一书。
应用领域和场景
萤火虫算法在多个领域都有广泛应用,包括但不限于:
-
函数优化:解决非线性、多峰值等复杂函数的优化问题。
-
图像处理:用于图像分割、图像配准等任务。
-
无线传感器网络:用于节点部署和数据路由优化。
-
机器学习:优化模型参数,提高模型性能。
-
特征选择和故障处理:用于选择重要特征,提升模型准确性,并在故障诊断中识别问题源头。
-
天线设计:优化天线阵列的布局,提高信号覆盖和接收效果。
-
结构设计:在土木工程和机械工程中优化结构设计,提高稳定性和性能。
-
调度:在生产和制造过程中优化任务调度,提高效率,减少等待时间。
-
化学相平衡:用于化学反应中求解相平衡问题,确定不同组分的最优配比。
-
动态问题:解决随时间变化的问题,如动态路径规划、动态资源分配等,提