1.萤火虫算法概述
萤火虫闪烁的光芒在热带和温带地区的夏季天空中是一道令人惊叹的风景。大约有两千种萤火虫,大多数萤火虫会发出短暂而有节奏的闪光。闪光的模式对于特定物种来说往往是独一无二的。闪光是由生物发光过程产生的,这种信 系统的真正功能仍在争论中。然而,这种闪光的两个基本功能是吸引交配伙伴(交流)和吸引潜在猎物。此外,闪光还可以作为一种保护性警告机制。
有节奏的闪光、闪光的频率和时间构成了将两性联系在一起的信 系统的一部分。在同一物种中,雌性萤火虫对雄性萤火虫独特的闪光模式做出反应,而在某些物种中,如photuris(萤火虫中的一种肉食动物),雌性萤火虫可以模仿其他物种的交配闪光模式,从而引诱并吃掉可能误认为闪光是潜在合适配偶的雄性萤火虫。
我们知道,距离光源特定距离处的光强度服从平方反比定律。也就是说,光照强度I 随着距离r的增加而减小。此外,空气吸收的光随着距离的增加而变得越来越弱。这两个综合因素使得大多数萤火虫只在有限的距离内可见,通常在夜间几百米,这通常足以让萤火虫交流。
而萤火虫算法是由剑桥大学学者 Xin-She Yang于 2008 年提出的一种新型的自然启发式优化算法,该算法模拟自然界中热带萤火虫的发光机制和行为方式,是一种基于群体智能的随机搜索算法。
为了构建萤火虫算法的数学模型,使用以下三个理想化准则:
(1)算法中的所有萤火虫都不分雌雄,即萤火虫之间的吸引只基于亮度信息,不考虑性别的影响。
(2)萤火虫之间的吸引力和亮度成正比,亮度越大,吸引力越强。且两者都将随着距离的增大而减小。因此对于任意两只萤火虫,亮度小的萤火虫会向亮度大的萤火虫移动,亮度最大的萤火虫将随机移动。
(3)萤火虫的光亮度与待优化目标函数的值有关。
2.萤火虫算法的基本原理
2.1 萤火虫算法的仿生学原理
萤火虫算法的基本仿生学原理:首先,利用搜索空间中的点模拟自然界中的萤火虫个体;其次,将优化过程中的搜索和位置更新过程模拟成自然界中萤火虫个体间相互吸引和移动的过程;将待求解问题的目标函数值模拟成萤火虫个体所处位置处的亮度信息;最后,将迭代过程中寻找最优可行解的过程模拟成萤火虫个体优胜劣汰的过程。
2.2 萤火虫算法的数学模型
由于距离的增加和空气对光的吸收,萤火虫i的亮度会随着距离r的增加而逐渐减小。为了对萤火虫之间的相互吸引力进行建模,本节首先给出萤火虫绝对亮度和相对亮度的定义。
定义 2.1:绝对亮度。对于萤火虫i,初始光强度(r =0处的光强度)为萤火虫i的绝对亮度,记作
定义 2.2:相对亮度。萤火虫i在萤火虫j所在位置处的光强度为萤火虫i对萤火虫j的相对亮度,记作
萤火虫算法的核心思想:是萤火虫被种群中所有绝对亮度比它大的萤火虫所吸引,并根据算法中的位置更新公式进行位置更新,不断迭代直至达到算法的停止准则(达到既定的迭代次数或寻优精度。
下面将分别对相对亮度、吸引力和位置更新机制进行数学建模。一般情况下,用待优化函数的目标函数值表示算法的绝对亮度。假设待优化的目标函数是d维的,并假设在解空间内随机初始化的萤火虫的个数为n,则可以用 i=1,2,…,n是一个d维向量,表示该待优化问题的一个潜在解。其中
萤火虫i的绝对亮度
绝对亮度的大小可以直接用来衡量萤火虫所代表的潜在解的优劣,即绝对亮度大的萤火虫所代表的潜在解更好,反之亦然。
萤火虫i的亮度随着距离r的增加以及空气的吸收而减弱,定义萤火虫i对萤火虫j的相对亮度为:
其中,
假设萤火虫j的绝对亮度比萤火虫i的绝对亮度大,则萤火虫i被萤火虫j吸引而向j移动。这种吸引力的大小是由萤火虫j对萤火虫i的相对亮度决定的,相对亮度越大,吸引力越大。
定义 2.3:吸引力。由萤火虫j 相对亮度的定义,可得萤火虫j对萤火虫i的吸引力为:
其中,
定义 2.4:位置更新。由于被萤火虫j吸引,萤火虫i向其移动而更新自己的位置,i位置更新公式如下:
其中,t为算法的迭代次数;
2.3 萤火虫算法的算法实现
算法的实现过程可以归纳为:首先将种群中的萤火虫随机散布在待优化问题的解空间内;通过萤火虫所处位置处目标函数公式计算萤火虫所在位置处的绝对亮度,绝对亮度高的萤火虫将吸引绝对亮度低的萤火虫向其移动;根据式(2-3)计算绝对亮度高的萤火虫对绝对亮度低的萤火虫的吸引力强度,并根据式(2-4)对绝对亮度低的萤火虫的位置信息进行更新;最后利用新的位置上的目标函数值更新位置移动后的萤火虫的绝对亮度信息。这样通过有限次的位置的移动,所有的个体都将聚集在绝对亮度最高的萤火虫的位置上,从而实现待优化问题的寻优过程。
萤火虫算法需要执行算法初始化和算法迭代两个大的环节。算法迭代过程又包括绝对亮度更新、吸引力更新和位置更新三个阶段。
2.4 萤火虫算法的参数选取策略研究
萤火虫算法的可调节的参数主要包括:光吸收系数γ、最大吸引力
- 光吸收系数γ对算法性能的影响
通过对位置移动公式(2-4)的理论分析,根据光吸收系数γ的取值不同,萤火虫算法包含 2 种渐进形式。
当γ→0 时,指数因子
由式(2-5)可以衍生出多个萤火虫算法的变体。首先,当
当γ→∞时,
此时,若
仿真实验:求四峰函数(2-7)的最优值,由于函数不能通过以往的方法求出其最优值,所以引入群智能优化算法进行求解该函数的最优值,函数如下:
通过matlab仿真实验,当种群规模为15时,根据γ取值的不同,分别计算了当γ=1.0,3.0,5.0,8.0,20.0,100.0时的最优值,并且在代码执行过程中,会自动将子群数分为不同的模块。
代码段:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!