蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法。
该算法基于迭代优化,初始化为一组随机解,然后迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强局部搜索速度。
该算法具有实现简单、参数少等特点。
将种群中的蝙蝠个体映射为D维问题空间中的NP个可行解,将优化过程和搜索模拟成种群蝙蝠个体移动过程和搜寻猎物,利用求解问题的适应度函数值来衡量蝙蝠所处位置的优劣,将个体的优胜劣汰过程类比为优化和搜索过程中用好的可行解替代较差可行解的迭代过程。
在蝙蝠的随机搜索过程中,为了更方便的模拟蝙蝠探测猎物、避免障碍物,需假设如下三个近似的或理想化的规则:
(1)所有蝙蝠都采用回声定位感知距离;
(2)蝙蝠在位置xi以速度vi随机飞行,具有固定的频率fmin,同时根据自身与猎物的距离,自动调整波长和脉冲响度;
(3)假设脉冲响度的变化方式为从一个最大值A0 整数变化到固定最小值Amin,变化区间根据问题调整。
算法描述:
每个虚拟蝙蝠以随机的速度Vi在位置Xi(问题的解)飞行,同时蝙蝠具有不同的波长、响度Ai和脉冲发射率r。蝙蝠狩猎和发现猎物时,它改变频率、响度和脉冲发射率,进行最佳解的选择,直到目标停止或条件得到满足。这本质上就是使用调谐技术来控制蝙蝠群的动态行为,平衡调整算法相关的参数,以取得蝙蝠算法的最优。通过对多个标准测试函数的测试,展现了在连续性优化问题中的较好应用。
模型构建
算法流程
运行结果显示:
Matlab实现代码
蝙蝠算法与遗传算法、粒子群算法相比,收敛速度更快,训练神经网络时也更有优势。已用于工程设计、分类等应用。
蝙蝠算法的性能主要包括:局部搜索、局部最优解、收敛速度、最优解和适应度值。
参考:
https://blog.csdn.net/u011835903/article/details/107937903
https://www.cnblogs.com/caoer/p/12641369.html
https://www.omegaxyz.com/2019/02/12/ba-matlab/
https://blog.csdn.net/qq_40456829/article/details/92775377
Copyright © 2012-2021 首页-恒彩平台-注册登录站 备案号:琼ICP备xxxxxxxx号