## 2 Materials and Methods
### Methods
#### 2.2.2 Fuzzy Cognitive Maps Evolutionary Learning  
Real-Coded Genetic Algorithm (RCGA)  
The RCGA algorithm defines individual in the population as follows [24]:  
\[W^{\prime}=\left[w_{1,2},w_{1,3},\ w_{1,A},\ldots,w_{j,i},\ldots,w_{n,n-1} \right]^{T} \tag{3}\]  
where \(w_{j,i}\) is the weight of the relationship between the \(j\)th concept and the \(i\)th concept.  
Individual in the population is evaluated with the use of a fitness function based on data error [66]:  
\[fitness_{p}(MSE_{tr}(l))=\frac{1}{aMSE_{tr}(l)+1} \tag{4}\]  
where \(a\) is a parameter, \(l\) is the number of generation, \(l\) = 1,... \(L\), \(L\) is the maximum number of generations, \(p\) is the number of individual, \(p\) = 1,...,\(P\), \(P\) is the population size, and \(MSE_{tr}(l)\) is the data error, described as follows:  
\[MSE_{tr}(l)=\frac{1}{N_{tr}}\sum_{l=1}^{N_{tr}}{e_{t}}^{2} \tag{5}\]  
where \(t\) = 1,...,\(N_{tr}\), \(N_{tr}\) is the number of training records, and \(e_{t}\) is the one-step-ahead prediction error at the \(t\)th iteration, described as follows:  
\[e_{t}=Z(t)-X(t) \tag{6}\]  
where \(X(t)\) is the predicted value of the output concept, and \(Z(t)\) is the desired value of the output concept.  
When the maximum number of generations L is reached, or the condition (7) is met, which means that the learning process is successful, then the RCGA stops.  
\[fitness_{p}(MSE_{tr}(l))>fitness_{max} \tag{7}\]  
where \(fitness_{p}(MSE_{tr}(l))\) is the fitness function value for the best individual, and \(fitness_{max}\) is a parameter.  
Structure Optimization Genetic Algorithm (SOGA)  
The SOGA algorithm is an extension of the RCGA algorithm [65; 66] that allows the decision-maker to determine the most significant concepts and the relationships between them.  
Individual is evaluated based on the fitness function based on new data error, described as follows [66]:  
\[MSE^{\prime}_{tr}(l)=MSE_{tr}(l)+b_{1}\frac{n_{r}}{n^{2}}MSE_{tr}(l)+b_{2}\frac{n_ {c}}{n}MSE_{tr}(l) \tag{8}\]  
where \(b_{1}\), \(b_{2}\) are the parameters of the fitness function, \(n_{r}\) is the number of the non-zero relationships, \(n_{c}\) is the number of the concepts in the analyzed model, \(n\) is the number of all possible concepts, \(l\) is the number of generation, \(l=1,\ldots,L\), L is the maximum number of generations.  
The fitness function that follows (9) calculates the quality of each population.  
\[fitness_{p}(MSE^{\prime}_{tr}(l))=\frac{1}{aMSE^{\prime}_{tr}(l)+1} \tag{9}\]  
where \(\alpha\) is an experimentally defined parameter, p is the number of the individual, \(p=1,\ldots,P\), P is the population size, and \(MSE^{\prime}_{tr}(l)\) is the new error measure.  
We could construct a less complex time series prediction model by removing the redundant concepts and connections between them with the use of a binary vector \(C\) and the proposed error function.  
The algorithmic steps of the learning and analysis of the FCM in modeling prediction systems with the use of population-based algorithms (SOGA and RCGA) were analytically presented in [69].  
For our experiments, the evolutionary operators, a) ranking selection, b) uniform crossover, and c) random mutation were used [76; 77]. In addition, we applied elite strategy selection, while a probability of crossover \(P_{c}\) and mutation \(P_{m}\) was assigned to each population.