生物学基理
蝙蝠算法(Bat Algorithm,BA)算法是模拟自然界中蝙蝠利用一种声呐来探测猎物、避免障碍物的随机搜索算法即模拟蝙蝠利用超声波对障碍物或猎物进行最基本的探测、定位能力并将其和优化目标功能相联系。BA算法的仿生原理将种群数量为的蝙蝠个体映射为D维问题空间中的NP个可行解,将优化过程和搜索模拟成种群蝙蝠个体移动过程和搜寻猎物利用求解问题的适应度函数值来衡量蝙蝠所处位置的优劣,将个体的优胜劣汰过程类比为优化和搜索过程中用好的可行解替代较差可行解的迭代过程。
算法原理
每一个蝙蝠 (相当于) D维问题空间中NP个可行解
蝙蝠移动过程 (相当于) 优化过程
蝙蝠寻找食物 (相当于) 模拟搜索
方程构建
算法流程
步骤1:参数初始化:种群规模m,最大迭代次数n,目标函数f(x),蝙蝠位置𝑥𝑖(𝑖=1,2,3……𝑚)x_i (i=1,2,3……m),速度𝑣𝑖,声波v_i,声波频率𝑓𝑖f_i,声波响度𝐴𝑖A_i,脉冲速率𝑟𝑖r_i。
步骤2:找出当前最优位置𝑋∗X_∗,并根据公式(2)-(4)
更新位置和速度。
步骤3:随机生成rand1,如果rand1>𝑟𝑖r_i,在最优解中选一一个最优,然后在最优解周围生成一个局部解,否则按照公式(4)更新位置
步骤4:生成随机数rand2,如果rand2<𝐴𝑖A_i,并且此时适应度值大于步骤3的适应度值,那么根据公式(6)、(7)减少𝐴𝑖A_i,增加𝑟𝑖r_i
步骤5:对所有个体适应值排序,找出最佳𝑋∗X_∗
步骤6:重复2-5,直到满足最大迭代次数,输出最优值
参考文献:
Yang X S. A new metaheuristic bat-inspired algorithm[M]//Nature inspired cooperative strategies for optimization (NICSO 2010). Springer, Berlin, Heidelberg, 2010: 65-74.