## 4 Creation of Two-Head Self-Adaptive Metaheuristic Algorithms
The mutation strategy parameters \(s_{1}\) and \(s_{2}\) specify two candidate mutation strategies to be used to create a mutant vector, which is used for creation of a trial vector. The probability \(f_{p}\) influences the probability distribution to be used to generate the scale factor. The probability \(f_{p}\) also influences the mutation strategy to be used to create a mutant vector. The meaning of the crossover probability, \(cr\), is the same as the one used in the standard DE approach. The difference is that the crossover probability, \(cr\), in the self-adaptive metaheuristic algorithm will be updated regularly to improve the performance. The learning period parameter, \(LP\), specifies the number of generations to update \(f_{p}\) and \(cr\). The overall operation of the proposed algorithm is divided into three steps: Step 1: initialization of parameters, Step 2: initialization of the population and Step 3: evolution of the population. In Step 1, the following parameters are initialized: the mutation strategy parameters \(s_{1}\) and \(s_{2}\), the probability related to generating a scale factor and selecting a mutation strategy, \(f_{p}\), the crossover probability, \(cr\), the learning period parameters, \(LP\), the population size parameter, \(NP\), and the number of generations, \(G\), of the evolution processes. In Step 2, the initial population is created randomly. In Step 3, the individuals in the population evolve through the generation of scale factors, calculation of mutant vectors, calculation of trial vectors and updating the success counter, the failure counter, success rate and related parameters. \begin{table}
\begin{tabular}{c c} \hline
**DE Mutation Strategy** & **Definition** \\ \hline \(s=1\) & \(\mu_{1}=v_{(t+1)in}=z_{tr_{1}n}+F_{i}(z_{tr_{2}n}-z_{tr_{3}n})\) & (11) \\ \hline \(s=2\) & \(\mu_{2}=v_{(t+1)in}=z_{tbn}+F_{i}(z_{tr_{2}n}-z_{tr_{3}n})\) & (12) \\ \hline \(s=3\) & \(\mu_{3}=v_{(t+1)in}=z_{tr_{1}n}+F_{i}(z_{tr_{2}n}-z_{tr_{3}n})+F_{i}(z_{tr_{4}n} -z_{tr_{5}n})\) & (13) \\ \hline \(s=4\) & \(\mu_{4}=v_{(t+1)in}=z_{tbn}+F_{i}(z_{tr_{1}n}-z_{tr_{3}n})+F_{i}(z_{tr_{3}n}-z_ {tr_{4}n})\) & (14) \\ \hline \end{tabular}
\end{table} 
Table 3: Four DE mutation strategies. the crossover probability, \(cr\). If the random number is less than \(cr\), the algorithm sets the value of the element \(u_{gil}\) of the trial vector to the value of the corresponding element \(v_{gil}\) of the mutant vector. Otherwise, the algorithm sets the value of the element \(u_{gil}\) of the trial vector to the value of the corresponding element \(z_{gil}\) of the individual. In Step 3-4, the algorithm determines whether to select the trial vector. Step 3-4 also updates the success counter and the failure counter as needed. In Step 3-5, the algorithm updates the success rate, \(f_{p}\), and \(cr\) at the end of each learning period. The algorithm updates the crossover probability \(cr\) by the average of the historical crossover probability value of \(cr_{i}\) that has successfully improved performance. The historical crossover probability value of \(cr_{i}\) that has successfully improved performance is stored in a list \(L\) in Step 3-4. Therefore, the crossover probability \(cr\) is updated by \(cr=\frac{\sum\limits_{k\in\{1,\sum,|L|\}}L^{(k)}}{|L|}\). The algorithm will exit if the termination condition is satisfied. The pseudo code of a two-head self-adaptive metaheuristic algorithm with two DE mutation strategies is shown in Algorithm 1.