萤火虫算法
萤火虫算法(Firefly Algorithm)是一种启发式算法,灵感来自于萤火虫闪烁的行为。萤火虫的闪光,其主要目的是作为一个信号系统,以吸引其他的萤火虫。剑桥大学的Xin-She Yang(音译:杨新社)教授提出了萤火虫算法,其假设为:1
萤火虫不分性别,这样一个萤火虫将会吸引到所有其他的萤火虫;吸引力与它们的亮度成正比,对于任何两个萤火虫,不那么明亮的萤火虫被吸引,因此移动到更亮的一个,然而,亮度又随着其距离的增加而减少;如果没有比一个给定的萤火虫更亮的萤火虫,它会随机移动。
亮度应与目标函数联系起来。萤火虫算法是以自然为灵感的启发式优化算法。
基本信息
- 中文名
萤火虫算法
- 外文名
Firefly Algorithm
- 类别
仿生群智能优化算法
- 提出者
Xin-She Yang
- 灵感来源
来自于萤火虫闪烁的行为
- 学科
光学
算法描述
萤火虫算法的伪代码可以概括为:
Begin
1)目标函数![]()
2)生成一个萤火虫的初始人口![]()
3)制定光照强度l,因此,它与
(例如,对于最大化问题
或
;
4)定义吸收系数![]()
while(T < MaxGeneration)
for i =1:n(所有n萤火虫)
for j =1:n(n萤火虫)
if({\displaystyle I_{j}>I_{i}}),
移动萤火虫i向j;
end if
吸引力与距离
;
评估新的解决方案和更新的光强度;
end for j
end for i
排名萤火虫和找到当前最佳;
end while