1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 萤火虫算法_萤火虫算法(二)

萤火虫算法_萤火虫算法(二)

时间:2024-07-01 05:31:27

相关推荐

萤火虫算法_萤火虫算法(二)

点击上方“蓝字”关注我们吧!

前面已经简单介绍了萤火虫算法,接下来详细介绍萤火虫算法。

天然萤火虫的行为天然萤火虫在寻找猎物、吸引配偶和保护领地时表现出惊人的闪光行为。萤火虫的吸引力取决于它的光照强度,对于任何一对萤火虫来说,较亮的萤火虫会吸引另一只萤火虫。所以,亮度较低的个体移向较亮的个体,同时光的亮度随着距离的增加而降低。

有些萤火虫在一大群萤火虫中表现出同步闪光的行为来吸引猎物,雌萤火虫从静止的位置观察雄萤火虫发出的闪光,在发现一个感兴趣的闪光后,雌性萤火虫会做出反应,发出闪光,求偶仪式就这样开始了。一些雌性萤火虫会产生其他种类萤火虫的闪光模式,来诱捕雄性萤火虫并吃掉它们。

算法原则

1.无性别:无论是求偶还是捕食,都依赖于萤火虫自身通过发光实现吸引的目的。无性别即要求所有的萤火虫视作无性别,且可吸引别的萤火虫。

2.最优解:萤火虫的亮度由它周围的环境所决定。对于最优解,亮度可以简单地被看做最优解的值。当它处在一个最合适的位置上时,亮度最亮,可视为找到了最优解。

3.吸引力法则:亮度高的萤火虫会吸引亮度低的萤火虫。吸引力与亮度成正比,同时会随着两者距离的增加而减少。如果一只萤火虫发现没有比它更亮的萤火虫,那么它就会随机移动。

4.距离反比:由于空气的吸收,光的强度I随着与光源距离r的增加而减小

算法描述

对于任何一两只萤火虫的主要更新公式和是,其中是步长参数,是一个矢量(服从高斯分布或其他的分布)。

算法改进

萤火虫算法只有(~)的历史,但是由于其简单和易于实现,受到优化领域的研究人员和科学家越来越多的欢迎。Francisco,Costa和Rocha()对萤火虫算法进行了一些实验,使用了数学函数范数。范数是一个严格分配非负长度的函数

Francisco提出了两种计算吸引力函数的新方法。首先,利用p函数计算两个萤火虫之间的距离。第二种方法提出了两个新的吸引力函数和,如下所示。

Wang 提出了FA自适应参数,根据迭代次数修改其值:

其中t表示当前迭代次数,的初始值为0.5。第一个等式停止于,第二个等式停止于最大评估次数。Wang等也建议按照下式改变吸引度系数:

其中rand1和rand2均为均匀分布产生的随机数。

Chuah,Wong and Hassan()在萤火虫算法中混合了三种不同的策略,开发了一种新的FA变体,并将其命名为基于swap的离散FA(SDFA),用于解决旅行商问题。该新的策略将萤火虫算法与重置策略、最近邻初始化和固定半径最近邻相结合。

这里,使用交换距离策略计算两个萤火虫之间的距离,如下所示:

其中表示在[0,N]之间的交换距离(swap distance),N代表城市数量。这意味着城市间距离的增加会导致吸引力的逐渐下降。在这个新版本中加入最近邻策略,该策略随机从一个城市开始,一直选择邻近的城市,直到循环完成。此外,重置方法用于跳过局部最优。

Wang等人()利用FA中的交叉策略开发了一个多目标的FA版本。

所提出的算法按照如下生成新的解:

其中t是当前迭代次数,CR表示交叉率,rand(0,1)是[0,1]之间的任意数,对于D维问题,是[0,D]之间的任意数,参数通过式(9)和式(10)进行更新。

扫码关注我们一起学习进步我就知道你在看!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。