李志明+莫愿斌+张森

摘要 飞蛾扑火优化(MFO)算法是一种新颖的群智能优化算法,该算法的主要灵感来源于飞蛾在自然界中被称为横向定位的飞行方式。作为一种新提出的仿生群智能优化算法,分析了飞蛾扑火优化算法的生物学原理,对算法的实现过程建立了数学模型。通过典型的函数优化对算法进行了仿真测试,结果显示飞蛾扑火优化算法是可行性的、有效的。最后,对将来的工作做进一步的展望。

关键词 最优化;横向定位;飞蛾扑火优化;函数优化

中图分类号:TP301 文献标识码:A 文章编号:1009-3044(2016)31-0172-05

Abstract: The Moth-flame Optimization (MFO) algorithm is a novel swarm intelligence optimization algorithm. The main inspiration of this algorithm is the navigation method of moths in nature called transverse orientation. As a novel bionic swarm intelligence optimization algorithm, this paper analyzed the bionic principle of moth-flame optimization algorithm and built mathematical modelling for the process of the realization. By means of 10 typical benchmark functions are tested, the results demonstrate that MFO is effecitive and feasible. Finally, the future prospects for further work.

Key words: Optimization; Transverse orientation; Moth-flame optimization; Function optimization

优化是工程数学问题,优化过程就是对特定问题找到最优解决方案的过程。优化方法大致可以分为确定性优化和随机优化两大类。确定性优化研究虽相对成熟,却具有对工程应用条件较为苛刻等缺点。正因如此,随机优化方法得到了迅速发展。其中,群智能优化算法便属于随机优化方法的范畴。群智能算法一般来源于对自然界中一些生物群体行为的模仿,具有操作简单,易于并行处理,鲁棒性强等特点,已发展成为优化问题中的研究热点。比较典型的群智能算法有粒子群优化算法(Particle Swarm Optimization, PSO)[1]、萤火虫算法(Firefly Algorithm, FA)[2,3]、蝙蝠算法(Bat Algorithm, BA)[4]、布谷鸟优化算法(Cuckoo OpAtimization algorithm, COA)[5]、人工蜂群算法(Artificial Bee Colony algorithm, ABC)[6]、灰狼优化算法(Grey Wolf Optimizer, GWO)[7]等。这些算法将待优化问题的可能解看做解空间,具有不受搜索空间连续或可微的限制等诸多优点,因此,群智能算法已在模式识别[8]、路径规划[9]、组合优化[10]等诸多领域得到了较为广泛的应用。

在自然界具有很多巧妙的运行机制,其蕴含的智慧宝库,为人类解决复杂的问题提供了充足的灵感。飞蛾扑火优化(Moth-flame optimization, MFO)[11] 算法是由澳大利亚格里菲斯大学Mirjalili提出的一种新型的群智能优化算法,其灵感来源于在夜间飞蛾的一种称为横向定位的导航方式。本文分析了飞蛾扑火算法的仿生原理,并通过10个典型函数优化的测试,对该算法的可行性和有效性进行验证。

1 飞蛾扑火优化算法

1.1 仿生原理

飞蛾是非常类似于蝴蝶家族的昆虫,在自然界中像这样的昆虫有160000种之多。比较有趣的是飞蛾在夜里特殊的导航方式——利用月光来飞行。它们利用一个叫做横向定位的机制来进行导航飞行。在这种导航方式中,飞蛾相对于月亮保持一个固定的角度来飞行。这种方式在直线轨道上长距离的飞行是一个非常有效的机制。由于月亮距飞蛾较远,所以这种机制能确保其沿直線飞行。

在现实世界里,我们时常看到飞蛾围绕着人造光做螺旋形飞行,这是因为当飞蛾遇到一束人造光时,它们试图与人造光维持一个同样的角度沿直线飞行。而由于这样一束人造光与飞蛾之间距离较近,所以,与这样一束光维持一个相同的角度便导致了飞蛾做无用的螺旋飞行。飞蛾被人造光误导而表现出这样的行为说明了横向定位的低效性。横向定位的低效性决定了仅当光源非常远的时候进行直线飞行时才是可行的。

1.2 MFO算法

在MFO算法中,假设飞蛾是候选解,矩阵表示飞蛾的集合,数组用于存储相应的适应度值。该算法的另外一个核心组件是火焰,火焰矩阵用表示,且数组和的维数相等,数组用来存储相应的适应度值。在这里,飞蛾和火焰都是解。它们之间不同之处就是在每一次迭代过程中对待和更新它们的方式不同。飞蛾是在搜索空间里移动的实际搜索主体,而火焰是飞蛾到目前为止获取的最佳位置。因此,倘若找到一个更好的解,每只飞蛾便在标记附近搜索并更新它。通过此机制,飞蛾永远不会错过它的最优解。

2 仿真实验

2.1 实验环境与参数设置

为了验证飞蛾扑火算法的有效性与可行性,文中采用10个基准测试函数来验证其性能。在此次仿真实验中,仿真环境为Win 7操作系统、Intel处理器3.70 GHz、4G内存、仿真软件Matlab 2012a。除飞蛾扑火优化(MFO) [11]算法外,实验中还用到了蝙蝠算法(BA)[4]、粒子群-引力搜索算法(PSOGSA)[12]。其中算法中参数作如下设置:种群规模为30个个体,最大迭代次数为500次,函数维数设置为20维,最后采用独立运行20次最优值的平均值作为测试结果。

2.2 测试函数

从表1可以看出,在单峰函数方面,对于函数,PSOGSA的最优值精度达到了,其求解精度分别比MFO和BA高出14和23个数量级;在平均值方面,MFO的平均求解精度为,分别比PSOGSA和BA高出5和7个数量级。对于函数,PSOGSA的最优值精度达到了,其求解精度分别比MFO和BA高出5和10个数量级;在平均值方面,MFO与PSOGSA的平均求解精度均为,但要稍优于PSOGSA,且两者均比BA提高了2个数量级。对于函数,MFO的最优值精度达到了,虽在其求解精度和平均值方面与PSOGSA相差不大,但总体还是优于PSOGSA的,且在最优值求解精度和平均值方面分别比BA提高了3个和1个数量级。对于函数,PSOGSA的最优值精度达到了,其求解精度与MFO和BA相差不大;在平均值方面,MFO的平均求解精度为,比PSOGSA和BA分别高出1和2个数量级。对于函数,PSOGSA的最优值精度达到了,其求解精度比MFO和BA分别高出14和22个数量级;在平均值方面,MFO的平均求解精度为,比PSOGSA和BA分别高出5和7个数量级。

多峰函数方面,对于函数,BA、PSOGSA、MFO的最优值精度均达到了,平均值方面亦相差不大,但总体而言MFO还是优于BA和PSOGSA的。对于函数,MFO的最优值精度达到了,其求解精度比PSOGSA和BA分别高出3和4个数量级;在平均值方面,MFO的平均求解精度为,比PSOGSA和BA均高出1个数量级。对于函数 ,MFO与PSOGSA的最优值精度均达到了,但还是要优于PSOGSA的;在平均值方面,MFO的平均求解精度为,比PSOGSA和BA分别高出2和4个数量级。对于函数,MFO的最优值精度达到了,其求解精度比PSOGSA和BA分别高出2和6个数量级;在平均值方面,MFO的平均求解精度为,比PSOGSA和BA分别高出1和6个数量级。对于函数,MFO的最优值精度达到了,其求解精度比PSOGSA和BA分别高出4和9个数量级;在平均值方面,MFO的平均求解精度为,比PSOGSA和BA分别高出3和8个数量级。

在单峰函数方面,PSOGSA最优值求解精度是优于MFO和BA的,而在多峰函数方面,MFO是优于PSOGSA与BA的;而在平均值方面,无论是单峰函数还是多峰函数,MFO的平均求解精度均是优于PSOGSA和BA的。

图1-10为BA、PSOGSA、MFO在求解函数平均最优值时函数随迭代次数变化的曲线图。

从以上10幅图可以看到迭代结束时MFO是优于PSOGSA与BA的。从图1,3,5,8,9,10可以看出 当PSOGSA与BA接近收敛到一个值时,MFO还有继续寻优的可能。通过以上各函数优化的结果可以看出,该算法是可行的、有效的。

3 结束语

针对一种新颖的群智能算法——飞蛾扑火优化算法(MFO)进行了分析。该算法模拟了自然界中飞蛾向人造光源移动的生物特性,利用进化的方式来实现智能体的行为以达到寻优的目的。通过函数优化的结果可以看出,算法是可行的、有效的,且具有良好的应用前景。另外,飞蛾扑火优化算法在求解一些复杂函数时的收敛率与求解精度存在不足,还需进一步研究;而且,二进制版本的飞蛾扑火优化算法是一个值得研究的工作。

参考文献:

[1] 赵玉新, (英)杨新社, 刘利强. 新兴元启发式优化方法[M]. 科学出版社, 2013:81-147.

[2] Yang X S. Multi-objective Firefly Algorithm for Continuous Optimization [J]. Engineering with Computers, 2013, 29(2):175-184.

[3] 刘长平,叶春明. 一种新颖的仿生群智能优化算法:萤火虫算法[J]. 计算机应用研究,2011,28(9):3295-3297.

[4] Yang X S, A new metaheuristic bat-inspired algorithm, in: Nature Inspired Cooperative Strategies for Optimization [J] Springer, 2010, pp. 65–74.

[5] Rajabioun R, Cuckoo optimization algorithm. Applied Soft Computing [J]. 2011:5508–18.

[6] Karaboga D, Basturk B, A powerful and efficient algorithm for numerical function optimization: artificial bee colony algorithm [J]. J Global Optim 39: 2010: 459–71.

[7] Zhang S, Zhou Y Q. Grey Wolf Optimizer Based on Powell Local Optimization Method for Clustering Analysis[J]. Discrete Dynamics in Nature and Society, 2015: 1-17.

[8] Nezhinsky A E, Verbeek F J. Pattern Recognition for High Throughput Zebrafish Imaging Using Genetic Algorithm Optimization[C]// Iapr International Conference on Pattern Recognition in Bioinformatics. Springer-Verlag, 2010:301-312.

[9] 陳卫东, 朱奇光. 基于模糊算法的移动机器人路径规划[J]. 电子学报, 2011, 39(4):971-974.

[10] 夏亚梅, 程渤, 陈俊亮,等. 基于改进蚁群算法的服务组合优化[J]. 计算机学报, 2012, 35(2):270-281.

[11] S. Mirjalili, Moth-flame optimization algorithm: A novel nature-inspired heuristic paradigm [J]. Knowledge-Based Systems, 2015, 228–249.

[12] Mirjalili S, Hashim SZM .A new hybrid PSOGSA algorithm for function optimization. In Computer and information application (ICCIA), international conference on. IEEE, 2010: 374-377.

蝙蝠算法c语言,一种新颖的群智能算法:飞蛾扑火优化算法相关推荐

  1. 优化算法|MOAVOA:一种新的多目标人工秃鹰优化算法(Matlab代码实现)

  2. 智能优化算法——飞蛾扑火优化算法(完整Matlab实现)

    目录 1 概述 2 飞蛾扑火算法数学模型 3 Matlab实现  4 运行结果  1 概述 飞蛾扑火优化算法(MFO)算法.这个优化算法的主要灵感是自然界中蛾类的导航方法,称为横向定向.蛾在夜间飞行时 ...

  3. 多目标人工秃鹫优化算法(MATLAB源码分享,智能优化算法) 提出了一种多目标版本的人工秃鹫优化算法(AVOA)

    多目标人工秃鹫优化算法(MATLAB源码分享,智能优化算法) 提出了一种多目标版本的人工秃鹫优化算法(AVOA),用于多目标优化问题. AVOA的灵感来源于非洲秃鹫的生活方式. 档案.网格和领导者选择 ...

  4. 国密算法Go语言实现(详解)(九) ——SM2(椭圆曲线公钥密码算法)

    国密算法Go语言实现(详解)(九) --SM2(椭圆曲线公钥密码算法) 原创代码:https://github.com/ZZMarquis/gm 引用时,请导入原创代码库.本文仅以注释方式详解代码逻辑 ...

  5. 介绍一种新的群智能算法---黏菌算法

    一种新的群智能算法-黏菌算法 介绍一种新的群智能算法-黏菌算法 近些年群智能算法由于其效率较高,使用方便的优点引起了广大科研者的关注与兴趣.最近看文献,温州大学的李世民(现在去复旦读研究生了)提出了一 ...

  6. 国密算法Go语言实现(详解)(十) ——SM2(椭圆曲线公钥密码算法)

    国密算法Go语言实现(详解)(十) --SM2(椭圆曲线公钥密码算法) 原创代码:https://github.com/ZZMarquis/gm 引用时,请导入原创代码库.本文仅以注释方式详解代码逻辑 ...

  7. 一种改进非线性收敛方式的灰狼优化算法研究

    文章目录 一.理论基础 1.基本灰狼优化算法(GWO) 2.改进灰狼优化算法(CGWO) (1)引入混沌策略反向学习初始化种群 (2)改进非线性收敛因子 (3)Cauchy变异算子 二.算法实现步骤 ...

  8. 基于群智能的路径规划算法(三)------遗传算法

       本系列文章主要记录学习基于群智能的路径规划算法过程中的一些关键知识点,并按照理解对其进行描述和进行相关思考.    主要学习资料是来自 小黎的Ally 的 <第2期课程-基于群智能的三维路 ...

  9. 基于群智能的路径规划算法(四)------人工蜂群算法

       本系列文章主要记录学习基于群智能的路径规划算法过程中的一些关键知识点,并按照理解对其进行描述和进行相关思考.    主要学习资料是来自 小黎的Ally 的 <第2期课程-基于群智能的三维路 ...

最新文章

  1. 小心!你下载的机器学习工具包可能是病毒:CuPy被掉包,官方一天后才发现
  2. JS的prototype和__proto__
  3. Angular 内容投影 content projection 的一个问题的单步调试
  4. 计算机知识体系图谱总结
  5. Sublime Text3:解决win10输入法输入框不跟随问题
  6. 使用jad反编译Java文件
  7. Oracle cmd sqlplus 命令
  8. m4s格式转换mp3_简单的amr转换mp3音频格式转换方法
  9. java计算机毕业设计咖啡馆管理系统源程序+mysql+系统+lw文档+远程调试
  10. 电商业务容器化遇瓶颈,公有云Docker镜像P2P加速很安全
  11. [python]微信公众号JS逆向
  12. java打印日志的几种方式
  13. linux如何查看tlb大小,TLB缓存是个神马鬼,如何查看TLB miss?
  14. 华为荣耀开机停留在android,华为荣耀8变砖无法开机怎么办 华为荣耀8变砖无法开机解决方法...
  15. python笔记 基础语法·第14课 【三局两胜角斗场小游戏,类与对象】
  16. STC单片机看门狗验证程序
  17. 【正点原子STM32连载】第四十六章 FATFS实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  18. fpga驱动rgb液晶屏_用FPGA设计LCD 转 VGA 其实vga和lcd驱动 非常类似
  19. 全球与中国塑料输送机滚筒市场深度研究分析报告
  20. [AI画图本地免安装部署]Windows 10 Nvidia平台部署AUTOMATIC1111 版本 stable diffusion 免安装版

热门文章

  1. 浅论WBS分解在软件项目中的应用
  2. 案例:DNA分子的结构
  3. 网链经济学(Comunion Economics)
  4. 使用poi读取excel异常IOException: OPC Compliance error [M4.3]: Producers shall not create a document ele...
  5. 的s健康软件可以测试心率.,智慧的运动 三星Gear S2 S健康功能评测
  6. android P lightservice 移植调试增加状态指示灯 保存状态到设置开关 --驱动 hal lib HIDL service framework settingsprovide
  7. 光耦智能门驱动器中去饱和度故障检测
  8. 恒源云(GPUSHARE)_CV论文笔记之CE-FPN(通道增强特征金字塔网络)
  9. mate10 Android 功耗,6个方法完美解决华为Mate10耗电快的问题
  10. day02_LettCode 两数相加 / 无重复字符的最长子串