Bat algorithm

The Bat algorithm is a metaheuristic algorithm for global optimization. It was inspired by the echolocation behaviour of microbats, with varying pulse rates of emission and loudness. The Bat algorithm was developed by Xin-She Yang in 2010.

Metaphor
The idealization of the echolocation of microbats can be summarized as follows: Each virtual bat flies randomly with a velocity $$v_i$$ at position (solution) $$x_i$$ with a varying frequency or wavelength and loudness $$A_i$$. As it searches and finds its prey, it changes frequency, loudness and pulse emission rate $$r$$. Search is intensified by a local random walk. Selection of the best continues until certain stop criteria are met. This essentially uses a frequency-tuning technique to control the dynamic behaviour of a swarm of bats, and the balance between exploration and exploitation can be controlled by tuning algorithm-dependent parameters in bat algorithm.

A detailed introduction of metaheuristic algorithms including the bat algorithm is given by Yang where a demo program in MATLAB/GNU Octave is available, while a comprehensive review is carried out by Parpinelli and Lopes. A further improvement is the development of an evolving bat algorithm (EBA) with better efficiency.