## 2 Data and Methods
### Methodology
#### 2.3.4 GEP Method  
The GEP method was first introduced by [PERSON] in 2001. It is still considered as an applicable technique to set up complex computer programs and computational models [59; 60]. Generally, those computer programs and models are sophisticated tree networks, exactly similar to the living organisms. The basis of the GEP method is identical to the genetic programming (GP) and genetic algorithms (GAs) approaches. In other words, the GEP method modifies the population of the initial individuals through the fitness evaluation process performed via one or more genetic operators [61]. The basic discrepancy between the GP, GAs, and the GEP approaches lies in the essence of the individuals; in the GP algorithm, the individuals represent the nonlinear beings which have miscellaneous dimensions and forms. On the other hand, the GAs incorporate the individuals as the linear strings with constant lengths. The GEP approach also applies the individuals as the linear strings with consistent length but it expresses them as the nonlinear beings with different dimensions and shapes. To use the GEP method, generally, five elements are required: the terminal set, the function set, the fitness function, the control factors, and the stop criterion [60; 62]. In GEP, solutions are represented as strings of symbols known as chromosomes. These chromosomes consist of genes, which are typically represented as mathematical or logical functions or operators. The solving process commences with the generation of a set of chromosomes in the initial population. Afterward, each chromosome is represented as the expression trees. These expression trees represent mathematical expressions or computer programs. GEP's unique feature is its use of expression trees to represent solutions. Then, all individuals undergo the fitness evaluation operation. GEP employs a genetic algorithm to evolve and improve the population of expression trees over generations. This process involves selection, recombination (crossover), mutation, and reproduction. Crossover involves the exchange of genetic material between two parent expression trees, resulting in two offspring. Mutation introduces random changes to the genes in an expression tree. Fitness functions are used to evaluate the performance of the expression trees. Through this, the best fitted individuals are selected and transferred to the next irritation. The surviving individuals are modified in each irritation, and the process continues until the stop criterion is met [61]. In Figure 5, the GEP algorithm flowchart has been depicted. Therefore, in general, it can be said that the GEP algorithm uses the linear genomes as the genetic basis, as well as the operators such as mutation, crossover, recombination, inversion, and transposition. While it is typically advised to keep the mutation and inversion rates at low values within the range of 0.01 to 0.1, the transposition and recombination rates are commonly recommended to be in the moderate range of 0.1 to 0.4 [63]. The genomes are expressed by the chromosomes, and each chromosome is composed of genes which are translated to solve a complex problem. One of the advantages of GEP is its ability to discover mathematical relationships within data without prior knowledge of the functional form of the equations. It is particularly useful when dealing with complex, non-linear, or multidimensional data. GEP's adaptability and capability to evolve both the structure and content of expressions make it a powerful tool for symbolic regression and automatic program generation. However, it may require careful parameter tuning and significant computational resources, especially for complex problems. For detailed information about the GEP algorithm see [PERSON]'s book [63]. Although the GEP algorithm is a potent tool to predict the unknown variables, the overfitting issue may be a concern.