## 3 Methodology
### Combining ANN and GA  
For training the ANN, the Levenberg-Marquardt method was used as a quadratic least-squares method. This method has various advantages, i.e., it finds the best fit among the observations and the model response by estimation of initial conditions [51], but also a significant disadvantage, i.e., finding local minima as the optimal solution of the problem, while methods such as the GA can calculate the absolute minimum when defining the optimal components of the GA [49]. By combining these two methods and using the GA for the primary education of weights and finding the initial weights, the GA covers the major disadvantage of iterative methods in training ANN weights [49], and a combination will provide higher accuracy than that of the GA and the ANN alone. By using iterative methods, the ANN attempts to optimize the solution, which is derived from genetics because the genetic method has the ability to reach the optimal solution. Reaching the specified threshold of difference in initial chromosomes with optimal chromosomes is the end condition of the GA [52]. In fact, using an iterative method in training the ANN increases the accuracy in the process of finding the relative minimum for a defined function, as well as providing a test to ensure the solutions obtained from the GA [48]. In addition to reducing the processing time required in the ANN, the network can reach the desired accuracy with the least amount of processing. The method of GANN is summarized as follows [52].  
1. Network Design  
The network design includes defining the network input data, the number of intermediate layers, the number of neurons in the middle layer, the selection of the transfer function type, and the choice of the method type for network training such as Levenberg-Marquardt.  
2. Finding the Best Initial Weights by Using the Genetic Algorithm  
In an ANN, the initial weights are given randomly. However, in the case of using the GA, these weights are entered into the ANN as initial weights in absolute minimum. An objective function is defined for the initial weights trained by this method. The comparison of the weights of each round with the next round of processing is achieved based on their least difference. In the first step, the inputs, the number of neurons and outputs, and the initial random weights are entered into the ANN.  
Consequently, the GA is defined, and the interval and the number of its generations are specified. These weights are calculated in each round by the algorithm, and the mean square error is computed in each round. Additionally, the results are optimized in each round to reach the optimal solution, which is the absolute minimum of the objective function that was mentioned before at the GA part. The end condition for the GA is to reach the specified difference between the initial chromosomes with optimal chromosomes [43].  
3. Network Training  
Comparison and assessment of combined ANN models such as GANN, PSO-ANN (particle swarm optimization), ICA-ANN (imperialist competitive algorithm), and ABC-ANN (artificial bee colony) showed that the GA provided the highest performance in optimizing the ANN model [50]. The network trained by the GA is retrained with the Levenberg-Marquardt method, which increases the chance of achieving optimal weights for this type of ANN. This method is essential because it is a test to ensure the accuracy of the solutions resulting from the GA [52].