## 3 Optimization Algorithms
### Grasshopper Optimization Algorithm (GOA)
This process is applied recursively until the patterns at a node either contains only a small number of sets or having negligible variations. The following phase includes developing a linear regression at each node. In the next phase, a pruning process is executed to catalyze the computing efficiency and avoid over-fitting. In the last phase, to deal with the sharp discontinuities that are results of data branching, the smoothing process is executed. The smoothing parameter is represented as follows:

\[A^{\prime}=\frac{ra+sb}{r+s} \tag{15}\]

where \(A^{\prime}\) is the calculated value passed up to the next higher node; \(a\), \(b\), \(r\), and \(s\) are, respectively, the calculated target at this node, the model's estimated output at the current node, the cardinal number of training set that reach the node, and a smoothing parameter. ## 4 Results

Before running the models, the data need to be prepared. In the first step, because of having different inputs with different scales, the dataset should be normalized in [1, 2, 1] using following equation:

\[i_{n}=\frac{2(i-i_{min})}{(i_{max}-i_{min})}-1 \tag{16}\]

where \(i\) is an input value, \(i_{n}\), \(i_{max}\), and \(i_{min}\) are normal, maximum and minimum values of the \(i\), respectively. Furthermore, every ANN requires a dataset to train the network, another data set to validate the training process, and a whole other data set to test the network. Usually the datasets are allocated to these phases by randomizing the patterns. The drawback of this method is overfitting. As a result, in the present research, k-fold cross-validation method is employed in which the data records are randomized and split into k fold [26, 28, 40, 82, 86, 87, 88]. Then, the model is run k times, and it uses a fold in each time for validating and testing. For instance, in the \(i\)th run, the \(i\)th fold is served as validation and testing dataset, and other folds are served for training. When the runs are finished, the average error of k times running the network is represented as the error of the network. Using this method results in that all records are served as training, validating, and testing. Every model has its own adjustment parameters that need to be determined. The trial-and-error method is the most popular method for this purpose. Therefore, it is employed in the present research. The adjustment parameters of GA, SSA, and GOA are represented in \[wb_{n+1}=wb_{l}-[J]+\mu\,I]^{-1}\,J^{-1}\,e \tag{12}\]0

After running all models, three ANNs with different architecture, which are optimized by three different algorithms, are made that are illustrated in \[wb_{n+1}=wb_{l}-[J]+\mu\,I]^{-1}\,J^{-1}\,e \tag{12}\]1 Moreover, M5P tree model is visualized in \[wb_{n+1}=wb_{l}-[J]+\mu\,I]^{-1}\,J^{-1}\,e \tag{12}\]2 According to the Figure 5, hybridized ANN with GA (ANNGA) has a couple of the HLs and eleven neurons in each of them. Moreover, the hybridized ANN with SSA (ANNSA) contains two HLs with seven neurons in the HL number one and nine neurons in the HL number two, and the hy \begin{table}
\begin{tabular}{c c} \hline \hline
**Parameters** & **Values** \\ \hline Number of iterations & 100 \\ Size of populations & 30 \\ Hidden layer’s maximum number of neurons & 16 \\ Maximum number of hidden layers & 3 \\ The number of folds & 5 \\ ANNs training algorithm & Levenberg-Marquardt \\ Activation function of output layer’s neuron & Linear \\ Activation function of hidden layers’ neurons & Hyperbolic tangent sigmoid \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Adjustment parameters of modified ANNs. (ANNGOA) has six neurons in its only HL. Hence, the ANNGOA has the simplest structure while the ANNGA has the biggest structure, and the ANNSSA is in between them. Biases and weights of the ANNs and the coefficient of the M5P tree is represented in the Appendix A.