## 3 Proposed Approach
### Evolutionary Algorithms
#### 3.3.2 NL-SHADE-RSP Algorithm  
The NL-SHADE-RSP algorithm is a modification of the L-SHADE approach, first introduced in [6]. It is a further development of the L-SHADE-RSP algorithm, presented in [78], which uses selective pressure for the mutation procedure. The effect of the selective pressure was studied in detail in [79]. The mutation strategy proposed for the L-SHADE-RSP approach is called current-to-pbest/r, and it is different from the original current-to-pbest strategy only with regard to the choosing of indexes \(k\) and \(l\). To be more specific, for each individual \(i\) the probability \(pr_{i}\) is calculated in the following way:  
\[R_{i}=\exp^{\frac{-i}{NP}}, \tag{15}\] \[pr_{i}=\frac{R_{i}}{\sum_{j=1}^{NP}R_{j}}, \tag{16}\]  
where \(R_{i}\) is the rank of the \(i\)-th individual. In addition, ranks \(R_{i}\), \(i=\overline{1,NP}\), were set as indexes of individuals in an array sorted by the fitness values, with largest ranks assigned to the best individuals. Finally, indexes \(k\) and \(l\) were chosen with the corresponding probabilities. In NL-SHADE-RSP, the same current-to-pbest/r strategy is used, however, the rank-based selective pressure is applied only to the index \(l\), and only if it is chosen from the population, while the index \(k\) is chosen uniformly.  
In contrast to the L-SHADE and L-SHADE-RSP approaches, in NL-SHADE-RSP the population size is reduced in a non-linear manner:  
\[NP_{g+1}=round\Big{(}(NP_{min}-NP_{max})NFE_{r}^{1-NFE_{r}}+NP_{max}\Big{)}, \tag{17}\]  
where \(NFE_{r}=\frac{NFE}{NFE_{max}}\) is the ratio of the current number of fitness evaluations.  
The external archive \(A\) is used for the index \(l\) in the current-to-pbest/r mutation procedure with probability \(p_{A}\), and in the NL-SHADE-RSP algorithm this probability is automatically adjusted. The latter is achieved by implementing the adaptation strategy, originally proposed for the IMODE algorithm [80]. Firstly, the probability \(p_{A}\) should be within the range \([0.1,0.9]\), and initially it is set to 0.5, unless the archive is empty. Then, the probability \(p_{A}\) is calculated in the following way:  
\[p_{A}=\frac{\frac{\Delta f_{A}}{n_{A}}}{\frac{\Delta f_{A}}{n_{A}}+\frac{ \Delta f_{wA}}{1-n_{A}}}, \tag{18}\]  
where \(n_{A}\) is the amount of archive usage, which is incremented every time an offspring is generated using archive \(A\), \(\Delta f_{A}\) and \(\Delta f_{wA}\) are the fitness improvements achieved with and without archive, respectively. It should be noted that the new value of \(p_{A}\) is checked to be within the range \([0.1,0.9]\) by applying the following rule:  
\[p_{A}=min(0.9;max(0.1;p_{A})). \tag{19}\]  
In NL-SHADE-RSP, both binomial and exponential crossover operators are used with a probability of 0.5. The description of the exponential crossover is given in [6]. For exponential crossover, the Success-History Adaptation (SHA) is applied, but at the beginning of the generation, the crossover rates \(Cr_{i}\) generated for each individual \(i\) are sorted according to fitness values, so that smaller crossover rate values are assigned to better individuals. For the binomial crossover, value \(Cr_{b}\) is calculated in the following way:  
\[Cr_{b}=\begin{cases}0,&\text{if }NFE<0.5\times NFE_{max}\\ 2\times\frac{NFE-0.5}{NFE_{max}},&\text{otherwise}\end{cases}. \tag{20}\]Finally, the _pbest_ value for current-to-pbest/r mutation in NL-SHADE-RSP is controlled in the same way as in the jSO algorithm [81]:  
\[pbest=\frac{pbest_{max}-pbest_{min}}{NFE_{max}}\times NFE+pbest_{min}. \tag{21}\]  
Note that the following user-defined parameters were used: \(pbest_{max}=0.4\) and \(pbest_{min}=0.2\). Furthermore, the _pbest_ parameter linearly decreases as it is performed in jSO.Detailed pseudo-code of the NL-SHADE-RSP algorithm is presented in [6].