EDA365电子论坛网

标题: MATLAB是怎样实现蝙蝠算法的 [打印本页]

作者: ulppknot    时间: 2020-11-9 13:54
标题: MATLAB是怎样实现蝙蝠算法的

  P! r+ |# V7 S) ?( ^. P为什么会有这么多基于群智能的算法,蚁群、粒子群、鱼群、烟花、炮竹、猪群、牛群、马群、羊群、猴群、鸡群。。。算法。??????( R+ M- z+ b2 `3 y  q4 v! ^4 N3 h

3 G9 p2 N0 x/ P( u* S蝙蝠算法( BA) 是 Yang 教授于 2010 年基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法。该算法是一种基于迭代的优化技术,初始化为一组随机解,然后 通过迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强了局部搜索。与其他算法相比,BA 在准确性和有效性方面远优于其他算法,且没有许多参数要进行调整。
: p' ]/ r' F1 [# j8 d. K' X: L' q
BA算法是模拟自然界中蝙蝠利用一种声呐来探测猎物、避免障碍物的随机搜索算法即模拟蝙蝠利用超声波对障碍物或猎物进行最基本的探测、定位能力并将其和优化目标功能相联系。BA算法的仿生原理将种群数量为的蝙蝠个体映射为D维问题空间中的NP个可行解,将优化过程和搜索模拟成种群蝙蝠个体移动过程和搜寻猎物利用求解问题的适应度函数值来衡量蝙蝠所处位置的优劣,将个体的优胜劣汰过程类比为优化和搜索过程中用好的可行解替代较差可行解的迭代过程。在蝙蝠搜索算法中,为了模拟蝙蝠探测猎物、避免障碍物,需假设如下三个近似的或理想化的规则:7 ^2 r9 u" j3 i8 _7 d% O6 g

, P, b( T1 X/ o# v! T) Z伪代码:
6 @0 G7 }! d3 [/ b5 O# X
- k6 D3 n, E! d+ n" P, C& P, L ! k! A8 [! }! J
. T# D# Z8 G" Z  C0 z/ @. C
Maltab实现:0 ^% ?: M" _5 F1 v0 P8 e2 F

; g/ z; V3 |; D, m主函数代码:
% S8 L: e* W, K, T/ w6 X( n' p) d- f* z# y; s

, \8 i. b# G- _2 ~6 ]* ?          其中evaluate是评价函数,自己写。
# k6 A" }* A! ?4 f% ^. S3 |: O& D0 y9 M) B

作者: regngfpcb    时间: 2020-11-9 14:58
MATLAB的蝙蝠算法实现




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2