• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

智能计算:萤火虫算法[附matlab代码]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

萤火虫算法(Firefly Algorithm)是一种启发式算法,灵感来自于萤火虫闪烁的行为。萤火虫的闪光,其主要目的是作为一个信号系统,以吸引其他的萤火虫。剑桥大学的Xin-She Yang教授提出了萤火虫算法,其假设为: 

萤火虫不分性别,这样一个萤火虫将会吸引到所有其他的萤火虫;吸引力与它们的亮度成正比,对于任何两个萤火虫,不那么明亮的萤火虫被吸引,因此移动到更亮的一个,然而,亮度又随着其距离的增加而减少;如果没有比一个给定的萤火虫更亮的萤火虫,它会随机移动。

亮度应与目标函数联系起来。萤火虫算法是以自然为灵感的启发式优化算法。萤火虫算法已被应用到几乎所有领域科学和工程,如数字图像压缩和图像处理,特征值优化,特征提取和故障检测,天线设计,工程结构设计, 调度和旅行商问题,语义组成,化学相平衡, 聚类,动态问题, 刚性图像配准问题,参数选择,蛋白质折叠问题等等。

算法流程
萤火虫优化算法流程如下:
a) 初始化算法基本参数。设置萤火虫数目 m, 最大吸引度β0 , 光强吸收系数 γ, 步长因子 α, 最大迭代次数 maxT 或搜索精度 ε。
b) 随机初始化萤火虫的位置, 计算萤火虫的目标函数值作为各自最大萤光亮度 I0。
c) 由式( 1) ( 2) 计算群体中萤火虫的相对亮度 I 和吸引度β, 根据相对亮度决定萤火虫的移动方向。
d) 根据式( 3) 更新萤火虫的空间位置, 对处在最佳位置的萤火虫进行随机扰动。
e) 根据更新后萤火虫的位置, 重新计算萤火虫的亮度。
f) 当满足搜索精度或达到最大搜索次数则转 g) ; 否则, 搜索次数增加 1, 转 c) , 进行下一次搜索。
g) 输出全局极值点和最优个体值。算法的时间复杂度为 O( m2 ) , m 是萤火虫数目。
获取完整资料和代码

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap