## 3 Materials and Methods
### Bat Algorithm  
The BA was proposed by Cambridge University scholar [PERSON] [32] and has been approved as a useful method to solve the optimization problem. The principle of BA lies in the echolocation behavior of the microbats. The microbats emit sound pulse, and the sound pulse will be bounced back when it hits objects; then, bats listen for the echoes to estimate the surrounding scenario and search for their prey.  
We assume that the microbats pursue the optimal solution in a d-dimensional space, and the velocity and location of the \(i\)th bat at step \(t\) are \(v_{i}^{t}\) and \(x_{i}^{t}\), respectively. Then the updated velocity \(v_{i}^{t+1}\) and location \(x_{i}^{t+1}\) at step \(t+1\) are given by  
\[x_{i}^{t+1}=x_{i}^{t}+v_{i}^{t+1}. \tag{29}\]  
\[v_{i}^{t+1}=v_{i}^{t}+(x_{i}^{t}-x^{*})\times F_{i}. \tag{30}\]  
where \(x^{*}\) is the current global best solution in the bat group. \(F_{i}\) is the frequency of the sound pulse emitted by the \(i\)th microbat, and it can be obtained as shown in Equation (31):  
\[F_{i}=F_{\text{min}}+(F_{\text{max}}-F_{\text{min}})\times\mu. \tag{31}\]  
where \(F_{\text{max}}\), \(F_{\text{min}}\) are the maximum and the minimum sound frequency of the microbat.  
After selecting a solution from the current best solutions, each bat performs a local search and produces a related new solution \(x_{new}\) utilizing the random walk according to Equation (32):  
\[x_{new}=x_{old}+\varepsilon\times A^{t}. \tag{32}\]  
where \(A^{t}\) is the average loudness of the sound pulse of the microbats at step \(t\).  
If the new solution is better than the current best solution, it will be accepted as an optimal solution with a certain probability. Meanwhile, the emission rate \(r_{i}^{t}\) and loudness \(A_{i}^{t}\) of the \(i\)th microbat at step \(t\) + 1 are updated by  
\[A_{i}^{t+1}=\alpha\times A_{i}^{t}. \tag{33}\]  
\[r_{i}^{t+1}=r_{i}^{0}\times(1-\exp(-\gamma\times t)). \tag{34}\]  
where \(\alpha\) and \(\gamma\) are constants and \(0<\alpha<1\), \(\gamma>0\).  
Based on the above description of BA, its pseudo code is shown in Algorithm 1. In fact, BA is much superior to other popular metaheuristic approaches such as particle swarm optimization (PSO), genetic algorithm (GA), and Harmony search [32]. Therefore, due to its strong ability in searching for optimal solutions, BA is utilized in engineering and industrial applications.  
```
Initialize the bat population \(\mathbf{x_{t}}\) and \(\mathbf{v_{t}}\) (\(i\) = 1, 2,..., \(n\))  Initialize frequencies \(\mathbf{F_{t}}\), pulse rates \(\mathbf{r_{t}}\) and the loudness \(\mathbf{A_{t}}\) while(\(t\) < max number of iterations)  Generate new solutions by adjusting frequency, update velocities and locations if(\(rand>\mathbf{r_{i}}\))  Select a solution among the best solutions  Generate a local solution around the selected best solution endif  Generate a new solution by flying randomly if(\(rand<\mathbf{A_{t}}\)\(\mathbf{\delta_{t}}/(\mathbf{x_{t}})\) </(\(\mathbf{x^{*}}\)))  Accept the new solutions  Increase \(r_{i}\) and reduce \(A_{i}\) endif  Rank the bats and find the current best \(\mathbf{x^{*}}\) endwhile
```  
**Algorithm 1** The pseudo code of the bat algorithm.