## 3 The Algorithm
### SaNSDE Algorithm
\begin{table}
\begin{tabular}{c c} \hline \hline
**Variable** & **Meaning** \\ \hline \(LP\) & the learning period of the self-adaptive algorithm \\ \hline \(H\) & the number of generations to be executed \\ \hline \(NP\) & the population size (the number of individuals in the population) \\ \hline \(g\) & the generation index \\ \hline \(L\) & the dimension of the vector \(x\) of decision variables defined in Table 1 \\ \hline \(z_{i}\) & The \(i\)-th individual in the population, represented by a binary vector with the same dimensions as the vector \(x\) of the decision variables defined in Table 1 \\ \hline \(z_{il}\) & the element in the \(l\)-th dimension of \(z_{i}\) \\ \hline \(v_{i}\) & the mutant vector corresponding to \(z_{i}\) \\ \hline \(v_{il}\) & the element in the \(l\)-th dimension of \(v_{i}\) \\ \hline \(u_{i}\) & the mutant vector corresponding to \(z_{i}\) \\ \hline \(u_{il}\) & the element in the \(l\)-th dimension of \(u_{i}\) \\ \hline \(F_{i}\) & the scale factor for the \(i\)-th individual in the population \\ \hline \(cr_{i}\) & the crossover rate of the \(i\)-th individual \\ \hline \(f_{p}\) & the parameter that determines the generation of the scale factor \(F_{i}\) and selection of mutation strategy \\ \hline \(s\) & a mutation strategy: \(s\) = 1 represents mutation strategy \(v_{\rm dig}\gets z_{r_{1}\rm lg}+F_{i}(z_{r_{2}\rm lg}-z_{r_{1}\rm lg})\) and \(s\) = 2 \\ \hline \(n_{s}\) & the number of individuals generated by mutation strategy \(s\) successfully replacing the original individual and entering the next generation \\ \hline \(m_{s}\) & the number of individuals generated by mutation strategy \(s\) failing to replace the original individual and which are discarded \\ \hline \(CR_{rec}\) & an array recording the crossover rate \(cr_{i}\) associated with individual \(i\) successfully replacing the original individual and entering the next generation \\ \hline \(CR_{m}\) & the parameter defined by \(CR_{m}=\frac{|\langle\frac{CR_{m}}{|\langle CR_{m}\rangle}|}{|CR_{m}|}\) to generate the crossover rate \(cr_{i}\) of individual \(i\) \\ \hline \(r\) & a random number with uniform distribution \(U(0,1)\) \\ \hline \(r_{1}\) & a random number with Gaussian distribution \(N(\mu,\sigma_{1}^{2})\) with mean \(\mu\) and standard deviation \(\sigma_{1}\) \\ \hline \(r_{2}\) & a random variable \(r\) with uniform distribution \(U(0,1)\) \\ \hline \(T(u_{i})\) & a function to transform a trial vector \(u_{i}\) to a binary vector \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Notations of symbols, variables and parameters used in the proposed algorithm. value of \(f_{p}\) will be updated according to the successful or failed update counter after the learning period \(LP\). Based on the notations above, the proposed self-adaptive neighborhood search Differential Evolution algorithm is defined in Algorithm 1 as follows. ``` Step 0: Initialize parameters \(CR_{m}=0.5\) and \(f_{p}=0.5\)  Generation of random population with \(NP\) individuals  Set the learning period \(LP\) \(CR_{m}=0.5\) \(f_{p}=0.5\) Initialize a population with \(NP\) individuals randomly Step 1: For \(g=1\) to \(H\)  For \(i=1\) to \(NP\) Step 1.1: Generate \(r\) with uniform distribution \(U(0,1)\) If \(r<f_{p}\)  Generate \(r_{1}\) with Gaussian distribution \(N(\mu,\sigma_{1}^{2})\) \(F_{i}=r_{1}\) Else  Generate \(r_{2}\) with uniform distribution \(U(0,1)\) \(F_{i}=r_{2}\) End If  Generate \(cr_{i}\) with Gaussian distribution \(N(CR_{m},\sigma_{2}^{2})\) Step 1.2: Generate \(rand_{i}=U(0,1)\)  For \(l\in\)[1, 2,..., \(L\)]  If \(rand_{i}<f_{p}\) \(s=1\) \(v_{il}\gets z_{rl}+F_{i}(z_{rl}-z_{r_{2}l})\) Else \(s=2\) \(v_{il}\gets z_{il}+F_{i}(z_{hl}-z_{il})+F_{i}(z_{rl}-z_{rl})\) End If  End For Step 1.3: Trial vector computation  For \(l\in\) [1, 2,..., \(L\)] \(u_{il}=\left\{ \begin{array}{l}v_{il}\ if\ Rand(0,1)<CR\\ x_{il}\ otherwise\end{array}