10.1 introduction

Bat Algorithm (BA) is an Algorithm based on swarm intelligence, which is inspired by the echolocation of miniature bats and proposed by Xin-She Yang(Yang, 2010a)[1] in 2010. Most microbats radiate sounds to their surroundings and listen for the echoes of those sounds from different objects to identify prey, avoid obstacles, and track dark nests. The sound pulse varies by bat species, and basically, frequency tuning is a mutation because it causes fluctuations in the solution, mostly near the better solution, although larger mutations lead to global searches. Specific selection is achieved by applying pressure to relatively constant selection due to the use of optimal solutions in the population that has been established so far. Compared with genetic algorithm, there is no obvious crossover; However, variations in loudness and pulse emission can make a difference. In addition, there is an automatic scaling feature, where utilization becomes concentrated as the search approaches global optimization in loudness and pulse emissivity variations, resulting in an automatic switch from the exploration phase to the utilization phase.

10.2 Overview of the natural behavior of bats

Bats are the only winged mammals with extraordinary echolocation abilities. They are the second most diverse mammal in the world, with more than 1,200 species. Bats can be divided into two groups: echolocation microbats and fruit-eating giant bats. Bat algorithm was developed by Yang Xin-She (2010a)[1] based on the behavior of type I bats. Most bats rest in an upside down roosting position. All miniature bats and some giant bats emit ultrasonic waves to produce echoes. The brains and auditory nervous system of miniature bats can produce in-depth images of their environment by comparing outbound pulses with repeated echoes. Microbats emit these ultrasonic waves (produced through their larynx), usually through their mouths and occasionally through their noses, and they end the ultrasonic wave before the echo returns. Echolocation can be either a low-load cycle or, initially, a high-load cycle. In the first case, bats can distinguish between their calls and repeated echoes according to time; In the second case, the bat emits a continuous call that separates the pulse from the echo at a frequency. Echolocation, also known as biological sonar, is mainly used by animals for navigation and foraging. With the help of these echoes, bats measure the size and distance of objects, and some species are even able to measure how fast objects are moving.

10.3 Mathematical expression of bat algorithm

When looking for target, object or prey, bat flies randomly at position XI at speed vi, which has static frequency fmin, varying wavelength λ and loudness A0. The frequency varies from fmin to Fmax, and the loudness of the sound can vary between A0 and Amin as required. Xin-she Yang (2010a)[1] established a series of rules to update the speed, position, and loudness of bats searching for prey. The mathematical formula for the bat algorithm is as follows: F I = min ⁡ + f (f Max ⁡ – f min ⁡) x beta (1) {f_i} = {f_ {\ min}} + \ left ({{f_ {\ Max}} – {f_ {\ min}}} \ right) \ times \ beta \ tag fi = fmin + 1 (fmax – fmin) x beta (1) + v I t + 1 = v I t I t ∗ – x) (x x I f (2) v_i ^ {t + 1} = v_i ^ t + \ left ({x_i ^ t – {x_ *}} \ \ times right) {f_i} \ tag + 1 = 2 vit vit + (xit ∗) – x x fi (2) x I t I t + v + 1 = x I t (3) x_i ^ {t + 1} = x_i ^ t + v_i ^ t \ tag 3xit+1=xit+vit(3) A I t+1= α A I t, R I t + 1 = r I 0 [1 – exp ⁡ – gamma (t)] (4) A_i ^ {t + 1} = \ alpha A_i ^ t, r_i ^ {t + 1} = r_i ^ 0 [1 – \ exp (t) – \ gamma] \ tag 4Ait+1=αAit,rit+1=ri0[1−exp(−γt)](4) A I t → 0,r I t → r I U, A s t – up (5) A_i \ ^ t to 0, r_i ^ t \ to r_i ^ U, {\ rm {}} as t \ {\ rm {}} to \ infty \ tag 5 ait – > 0, rit – riU, ast – up (5)

Where β is the uniformly distributed random number within [0,1], X * represents the global optimal solution in the current population, r represents the pulse emissivity, α and γ are constant and 0

0. After selecting the global optimal solution, each local solution (Xold) in the current population updates its position using Equation (6) : X new=xold+εAt(6) {x_{new}} = {x_{old}} + \varepsilon {A^t}\tag 6xnew=xold+εAt(6)
α

Where ε is any number between [-1,1].

BA combines the best features of particle swarm optimization, genetic algorithm and harmonic search, so it provides good results compared to these algorithms. The adjustment of parameters α and γ will affect the convergence rate. The BA implementation is a bit complicated, but it has proven its performance and is called a good nature-inspired meta-heuristic.

10.4 Bat algorithm variants

Bat algorithm has achieved good results in optimization. Recently, it has undergone many refinements, and some variants have been developed by hybridizing it with existing meta-heuristics or introducing some new parameters, some of which are discussed here.

10.4.1 Chaotic Bat Algorithm

Gandomi and Yang(2014)[2] developed four varieties of chaotic BA, each of which was verified with the help of 13 chaotic maps. These chaotic maps replace fixed parameters and enhance flexibility and diversity because different chaotic maps can lead to different behaviors of the algorithm. The proposed improvement is mainly to change the parameters β and γ (see Formula (7) and (8) respectively), loudness A and pulse emissivity R. F I = min ⁡ + f (f Max ⁡ – f min ⁡) x C M I (7) = {f_i} {f_ {\ min}} + \ left ({{f_ {\ Max}} – {f_ {\ min}}} \ right) \times C{M_i}\tag 7fi=fmin+(fmax−fmin)×CMi(7) v I t + 1 = V I t +(x I t − x ∗)×CM I × f I (8) v_i^{t + 1} = v_i^t + \ left ({x_i ^ t – {x_ *}} \ right) C {M_i} \ \ times times \ {f_i} tag vit + 1 = vit + 8 (xit ∗) – x x the CMi x fi (8)

10.4.2 Binary Bat Algorithm

Mirjalili, Mirjalili and Yang(2014)[3] modernized the program and produced the binary version of BA after modifying some basic concepts of speed and position. In the discrete binary search space, since the existing methods cannot update the position, the transfer function is introduced to update the position. The transfer function is as follows: I k (t) S (v) = 1 + 1 e I – v k (t) (9) S \ left ({v_i ^ k (t)} \ right) = \ frac {1} {{1 + {e ^ {- v_i ^ k (t)}}}} \ tag 9 s (vik (t)) = 1 + e – vik (t) 1 (9)

Where vik(t) represents the speed of the i-th individual in the k-dimension. The position update using the transfer function is as follows:

X_ {I}^{k}(t+1)= {0 if rand < S (v I k (t+1)) 1 if rand ≥ S (v I k (t+1)) (10) x_{I}^{k}(t+1)=\left\{

01 if  rand <S(vki(t+1)) if  rand ≥S(vki(t+1))0 if  rand <S(vik(t+1))1 if  rand ≥S(vik(t+1))

\ right \ tag {10} xik (t + 1) = {01 if rand < S (vik (t + 1)) if rand p S (vik (t + 1)) (10)

In this process, each individual is assigned a 0 or a 1, so that, as the speed increases, the individual’s position remains the same. To overcome this problem, a new V-shaped transfer function is proposed, and a new position updating process is designed by using this function, as shown in Equations (11) and (12) respectively: I k (t) V (V) = 2 PI ∣ arctan ⁡ (PI 2 V I k (t)) ∣ \ left (11) V ({v_i ^ k (t)} \ right) = \ left | {\ frac {2} {\ PI } \ arctan \ left ({\ frac {\ PI} {2} v_i ^ k (t)} \ right) | \} \ right tag {11} V (vik (t)) = ∣ ∣ ∣ ∣ PI 2 arctan (2 PI vik (t)) ∣ ∣ ∣ ∣ (11)

X I k (t + 1) = {(x I k (t)) − 1 if rand ⁡ < V (V I k (t + 1)) x I k (t) if rand ⁡ ≥ V (V I k (t + 1)) (12) x_{i}^{k}(t+1)=\left\{

(xki (t)) – 1 xki < V (t) if rand (vki (t + 1)) if rand p V (vki (t + 1)) (xik (t)) – 1 if rand < V (vik (t + 1)) xik (t) if rand p V (vik (t + 1))

\ right \ tag {12} xik (t + 1) = {(xik (t)) – 1 xik < V (t) if rand (vik (t + 1)) if rand p V (vik (t + 1)) (12)

10.4.3 Parallel Bat Algorithm

The parallel version of BA was proposed by Tsai, Dao, Yang and Pan (2014)[4]. In parallel BA, groups are divided into sub-groups, and then these sub-groups work independently. In Tsai, Dao, Yang and Pan (2014)[4], the group is divided into G group, and the total iteration contains R (R={R1,2R1,3R1… }) times communication. The parallel BA algorithm is as follows:

Step1: Initialization: Bat population is generated and divided into G group. Each group is initialized separately and the iteration set R is defined to implement the communication strategy. Step2: evaluation: obtain the fitness value of each bat in each group. Step3: Update: Use basic BA (Equations (2) and (3)) to update bat speed and position. Step4: Communication strategy: Select the optimal bat (Gt) in the current population and migrate it to each group, and replace the worst bat in each group with mutant Gt every R1 iterations. Step5: Terminate: Repeat step2-Step5 until the termination condition is met. Stores the optimal value of the function f(Gt) and the location of the optimal bat among all bat Gt.

10.4.4 Directional bat algorithm

Chakri, Khelif, Benouaret, and Yang(2017)[5] proposed a new variant of BA — directional BA(dBA), which made four new modifications to the basic BA algorithm to solve high-dimensional problems. Bats generate sound pulses in two different directions, one that is the best in the current colony and the other that is random, using individual fitness to determine the location of the best viable food source. The mathematical formula of bat movement is given by Eq. (13) : {x I t + 1 = x I t + (x ∗ − x I t) f 1 + (x k t − x I t) f 2 if f (x k t) < f (x I t) x I t + 1 = x I t + (x X I t) f 1 otherwise (13) \left\{

Xt +1i= Xti +(x∗− Xti) F1 +(XTK − Xti)f2xt+ 1I = Xti +(x∗− Xti) F1 if F(XTK)<F(xTI) otherwise XIT +1= XIT +(x∗−xit) F1 +(XKT − XIT) F2 if F (XKT) < F (xit) xit + 1 = xit + (x ∗ – xit) f1 otherwise

\right.\tag {13}{xit+1=xit+(x∗−xit)f1+(XKT −xit)f2xit+1=xit+(x∗−xit)f1 if F(XKT)

F1 = fmin + (fmax – fmin) x rand1f2 = fmin + (fmax – fmin) x rand2f1 = fmin + (fmax – fmin) x rand1f2 = fmin + (fmax – fmin) x rand2

\right.\tag {14}{f1=fmin+(fmax−fmin)× RAND1f2 =fmin+(fmax−fmin)× RAND2 (14) the proposed strategy only enhances the exploration ability in the early iteration and can avoid premature convergence. The bat position is updated by using Formula (15), in which loudness At and monotone decreasing function WIT are used. X I t + 1 = x I t + < A t > ε w I t (15) x_i^{t + 1} = x_i^t + < {A^t} > \varepsilon w_i^t\tag {15}xit+1=xit+

εwit(15) I w I t = (w I up 1-0 – w t Max ⁡) x (t – t Max ⁡) + w (I) up (16) w_i ^ t = \ left ({\ frac {{{w_ {i0}} – {w_ {I \ infty }}}}{{1 – {t_{\max }}}}} \right) \times \left( {t – {t_{\max }}} \right) + {w_{i\infty }}\tag {16} wit = (1 – tmaxwi0 – wi up) x (t – tmax) + wi up (16)

The initial value (WI0) and final value (WI ∞) of the scaling parameter are calculated by using Equations (17) and (18) respectively: I w I 0 = (U b – b L I) / 4 (17) {w_ {i0}} = \ left ({U} {b_i} {b_i}} – L \ right) / 4 \ tag {17} wi0 = (Ubi – Lbi) / 4 (17) w up = I w I 0/100(18) {w_{I \infty}} = {w_{i0}}/100\tag {18} WI ∞= WI0/100 (18) Chakri et al. (2017)[5] proposed the variation of pulse rate and loudness as shown in Equations (19) and (20). R t = 0 (r – r up 1 – t Max ⁡) x (t – t Max ⁡) + r up (19) ^ t {r} = \ left ({\ frac {{{r_0} – {r_ \ infty}}} {{1 – {t_ {\ Max }}}}} \ times \ the left/right) ({t – {t_ {\ Max}}} \ right) + {r_ \ infty} \ tag {19} rt = (1 – tmaxr0 – r up) x (t – tmax) + r up (19) A t = (A 0 – A up 1 – t Max ⁡) x (t – t Max ⁡) + A up (20) {A} ^ t = \ left ({\ frac {{{A_0} – {A_ \ infty}}} {{1 – {t_ {\ Max}}}}} , right), times, left ({t – {t_ {\ Max}}} \ right) + {A_ \ infty} \ tag {20} At = (1 – tmaxA0 – up A) x (t – tmax) + A up (20)

The proposed two sets of pulses emit in different directions, and both exploration and utilization are improved because it allows movement in the direction of the optimal bat closer to the favorable search space. In addition, the proposed adaptive pulse emission rate and loudness control the exploration and utilization in different iterations.

10.4.5 Adaptive bat algorithm

Fister, Fong, and Brest(2014)[6] proposed an adaptive BA, in which the control parameters are expected to be adjusted automatically when the algorithm is running. The adaptive adjustment of loudness and pulse rate proposed by Fister is as follows: A t + 1 = {A b (t) + rand ⁡ 0 (A u b (t) − A l b (t)) if rand ⁡ 1 < τ 1 A (t) otherwise (21) A^{t+1}=\left\{

A(t)lb+rand0(A(t) UB −A(t)lb)A(t) if RAND1 <τ1 otherwise Alb(t)+rand0⁡(Aub(t)−Alb(t)) if Rand1 <τ1A(t) otherwise

\ right \ tag {21} At + 1 = {propagated (t) + rand0 (Aub (t) – propagated (t)) (t) if A rand1 < tau 1 otherwise (21)

τ I (I ={1,2}) represents the learning rate and takes a fixed value τ I =0.1. Using this adaptive strategy, every 10 candidate solutions are reconstructed, and Fister et al. (2014) hybridized this adaptive technique with a popular evolutionary algorithm, differential evolution (DE). The best feature of nature-inspired meta-heuristics is that they are cooperative, not competitive, so they can interbreed with each other. The hybrid BA uses DE strategy to update the experimental solution, as shown below: Y n = {D E − S trategy, if rand ⁡ (0, 1) ≤ C R ∨ n = D x I n (t) otherwise (23) y_{n}=\left\{

DE− srategy, x(t)in if rand(0,1)≤CR∨n=D otherwise DE− srategy, if rand⁡(0,1)≤CR∨n=Dxin(t) otherwise

\right.\tag {23}yn={DE−S trategy, xin(t) if rand(0,1)≤CR∨ =D otherwise (23) consider four DE strategies: DE/rand/1/bin: Y j = x r 1, j + F × (x r 2, j − x r 3, J) (24) {y_j} = {x_ {r1, j}} + F \ times \ left ({{x_ {r2, j}} – {x_ {r3, j}}} \ right) \ tag {24} yj = xr1, j + F * (xr2, j – xr3, j) (24) DE/best / 1 / bin: Y j = x b e s t, j + F × (x r 1, j − x r 2, J) (25) {y_j} = {x_ {best, j}} + F \ times \ left ({{x_ {r1, j}} – {x_ {r2, j}}} \ right) \ tag {25} yj = xbest, j + F * (xr1, j – xr2, j) (25) DE/best / 2 / bin: Y j = x b e s t, j + F × (x r 1, j + x r 2, j − x r 3, j − x r 4, j ) (26) {y_j} = {x_{best,j}} + F \times \left( {{x_{r1,j}} + {x_{r2,j}} – {x_{r3,j}} – {x_{r4,j}}} \right)\tag {26} yj = xbest, j + F * (xr1, j + xr2, j – xr3, j – xr4, j) (26) DE/rand_to_best / 1 / bin: Y j = x I, j + F × (b e s t j − x I, j) − F × (x r 1, j − x r 2, j ) (27) {y_j} = {x_{i,j}} + F \times \left( {bes{t_j} – {x_{i,j}}} \right) – F \times \left( {{x_{r1,j}} – {x_{r2,j}}} \ \ tag right) {27} yj = xi, j + F * (bestj – xi, j) – F * (xr1, j – xr2, j) (27)

The DE strategy used is the best solution in the modification operation, i.e. “rand_to_best/1/bin”, “best/2/bin”, and “best/1/bin”, usually directing the simulated bat in the direction of the current best solution.

reference

  1. Yang, X.-S., A New Metaheuristic Bat-Inspired Algorithm, in Nature Inspired Cooperative Strategies for Optimization (NICSO 2010), J.R. González, et al., Editors. 2010, Springer Berlin Heidelberg: Berlin, Heidelberg. p. 65-74.
  2. Gandomi, A.H. and X.-S. Yang, Chaotic bat algorithm. Journal of Computational Science, 2014. 5(2): p. 224-232.
  3. Mirjalili, S., S.M. Mirjalili, and X.-S. Yang, Binary bat algorithm. Neural Computing and Applications, 2014. 25(3): p. 663-681.
  4. Tsai, C.-F., et al. Parallelized Bat Algorithm with a Communication Strategy. in Modern Advances in Applied Intelligence. 2014. Cham: Springer International Publishing.
  5. Chakri, A., et al., New directional bat algorithm for continuous optimization problems. Expert Systems with Applications, 2017. 69: p. 159-175.
  6. Fister jr, I., et al., A Novel Hybrid Self-Adaptive Bat Algorithm. TheScientificWorldJournal, 2014. 2014: p. 709738.