## 5 Differential Evolution Algorithm  
The DE algorithm is a nature-inspired metaheuristic algorithm proposed by [PERSON] and [PERSON] in 1995 [49]. It is an evolutionary algorithm, which is based on the natural and genetic selection of populations. In general, the DE algorithm uses mutation, crossing, and selection operators to generate new individuals. The main characteristic of the DE algorithm is the use of a minimum number of parameters, such as the scale factor, \(F\), crossover rate, \(C_{r}\), the size of the dimensional problem, \(d\), and the number of individuals or population, \(n\), [31]. Initially, the DE algorithm performs a random selection of a population of \(n\) vectors, with uniform distribution, which will cover the entire search space [49]. This selection delivers the initial vector \(x_{i}\), which is used to carry out the mutation, crossover, and selection processes. \[x_{i}^{t}=\left(x_{1,i}^{t},\ \ x_{2,i}^{t},\ \cdots,x_{d,i}^{t}\right) \tag{28}\]  
where \(i=1,2,\,...,\,n\) for each solution \(x_{i}\) in any generation \(t\). The DE algorithm attempts to replicate the biological behavior of evolution in a computer program. The mutation in the evolution of an individual consists of the random variation of one of its genes. The DE algorithm takes this behavior as a reference. For each target vector \(x_{i}\), a mutation vector, \(v_{i}\), is generated according to the following mutation scheme:  
\[v_{i}^{t+1}=x_{p}^{t}+F\cdot\left(x_{q}^{t}-x_{r}^{t}\right) \tag{29}\]  
where \(x_{p}\), \(x_{q}\), and \(x_{r}\) are the target vectors at \(t\), which are created from three randomly chosen individuals in the population to cause a vector, in any of its values, to vary randomly. Note that the scale factor, \(F\), is a real value between \([0,\,\infty)\), which is used to scale the differential variation of the scanning vector (\(x_{q}-x_{r}\)). This study considers a scale factor between \([0,\,1]\), according to [50]. Then, after a random set of vectors have been selected, the crossover operation is carried out. In addition, a mutation operation is also applied to the recombined vector in order to generate the final population. This process is controlled by the parameter \(C_{r}\in[0,\,1]\), which controls the crossover rate [51]. This study uses a binomial crossover scheme, which performs a crossover on each of the variable components. The test vector \(u\) is obtained as follows:  
\[u_{j,i}^{t+1}=\left\{ \begin{array}{l}v_{j,i}^{t+1},\ ifr_{j}\leq C_{r}\wedge j =Jr\\ x_{j,i}^{t},\ ifr_{j}>C_{r}\lor j\
eq Jr\end{array} \right. \tag{30}\]  
where \(j=1,\,2,\,\ldots\,\,.d\), \(r_{j}\in(0,\,1)\), \(C_{r}\in[0,\,1]\) is a user-defined constant, and \(Jr=1,\,\ldots\,\,.d\) is a randomly index, which is chosen to ensure that \(u_{j,i}^{t+1}\) receives at least one component of \(v_{j,i}^{t+1}\). Finally, selection in evolution refers to choosing which individuals pass to the next generation. After the mutation and crossover stages, in which all \(n\) vectors served as a target vector, for selection, the fitness value of each test vector \(f\left(u_{i}^{t+1}\right)\) is compared with its corresponding target vector \(f\left(x_{i}^{t}\right)\) in the current population [31]. Then, the selection of the vectors that will be preserved for the next generation is the one who has the best performance function value [49], i.e.,  
\[x_{i}^{t+1}=\left\{ \begin{array}{l}u_{i}^{t+1},\ iff(u_{i}^{t+1})\leq f(x_{ i}^{t})\\ x_{i}^{t},\ otherwise\end{array} \right. \tag{31}\]  
The DE algorithm pseudo-code used to find the best population for adjusting the FLC parameters of the EMS is presented in Algorithm 2. Note that this study considers \(F=0.7\), \(C_{r}=0.9\), and \(n=25\) according to [31; 50; 52].