## 2 Materials and Methods
### Generalized Moving Peaks Benchmark  
As mentioned before, real-world dynamic optimization problems have complex landscapes and, therefore, algorithms applied to them have to be able to find desirable solutions while also reacting to the environmental changes. The latter is important due to the fact that these changes cause the shift of the optimal solution, namely, the previously found solution becomes suboptimal and the new one should be found for a current environment. Thus, in order to evaluate the performance of the proposed algorithms, it is crucial to use benchmark problems that can be described by the following features:  
* Easy implementation;
* High configurability with respect to the number of components, the shape of components, dimension, environmental change frequency, and severity;
* Variety of characteristics (modularity, components with different condition numbers, different intensity of local and global modality, heterogeneity, different levels of irregularities, symmetric and asymmetric components, and so on). One of the most popular and well-known generators for DOP benchmarks is the Moving Peaks Benchmark (MPB) [8], which is based on changing the components and their locations over time. However, this benchmark generator cannot be considered useful or practical due to its irrelevance to real-world problems. Therefore, the Generalized Moving Peaks Benchmark (GMPB) generator was later proposed [10]. GMPB is a benchmark generator with fully controllable features: it is capable of generating problems with fully non-separable to fully separable structure, with homogeneous or highly heterogeneous, balanced or highly imbalanced sub-functions, with unimodal or multimodal, symmetric or asymmetric and smooth or highly irregular components. The GMPB benchmark generator, introduced in [10], has the following baseline function:  
\[f^{(t)}(x)=\max_{k\in\{1_{c},...,m\}}\left\{h_{k}^{(t)}-\sqrt{T\bigg{(}\Big{(} x-c_{k}^{(t)}\Big{)}^{T}R_{k}^{(t)T},k\bigg{)}W_{k}^{(t)}T\bigg{(}R_{k}^{(t)} \Big{(}x-c_{k}^{(t)}\Big{)}^{T},k\bigg{)}}\right\} \tag{2}\]  
\[T(y_{j},k)=\left\{ \begin{array}{cc}exp\Big{(}log\big{(}y_{j}\big{)}+\tau_{k} ^{(t)}\Big{(}sin\big{(}\eta_{k,1}^{(t)}log\big{(}y_{j}\big{)}\Big{)}+sin\Big{(} \eta_{k,2}^{(t)}log\big{(}y_{j}\big{)}\Big{)}\Big{)}\Big{)},\;y_{j}>0\\ 0,\;y_{j}=0\end{array} \right.\qquad\qquad\qquad\qquad\qquad\qquad\qquad j= \overline{1,d} \tag{3}\]  
In these formulas the following notations are used: \(x\) is a solution vector, \(d\) is the number of dimensions, \(m\) is the number of components, \(c_{k}^{(t)}\) is the vector of center positions of the \(k\)-th component at time \(t\), \(R_{k}^{(t)}\) is the rotational matrix of component \(k\) in the environment \(t\), \(W_{k}^{(t)}\) is a width matrix (it is a \(d\times d\) diagonal matrix where each diagonal element is the width of the component \(k\)), and, finally, \(\eta_{k,l}^{(t)}\), \(l=\overline{1,4}\), and \(\tau_{k}^{(t)}\) are the irregularity parameters of the component \(k\). Here, for each component, the height, width, irregularity, and all other parameters change as soon as the environmental change happens. The mentioned function (1) can be used with basic parameters, thus, in the simplest form: in the case where the generated DOP would be symmetric, unimodal, and smooth, the result would be easily optimized. To make the generated problems more complex, the irregularity parameters \(\eta_{k,l}^{(t)}\) and \(\tau_{k}^{(t)}\) should be changed. By setting different values to those parameters the end-user can get irregular and/or multimodal optimization tasks. The higher values of the irregularity parameters (\(\eta_{k,l}^{(t)}\) and \(\tau_{k}^{(t)}\)) increase the number of local optima in a given peak. It should be noted that identical values of the irregularity parameters \(\eta_{k,l}^{(t)}\) lead to the symmetric DOPs, while the components with different \(\eta_{k,l}^{(t)}\) values are asymmetric.