## Materials and Methods
### Soft Computing Models Overview
#### 2.2.1 Adaptive Neuro-Fuzzy Inference System (ANFIS)  
Fuzzy logic (FL) was introduced many decades ago as a method for identifying several aspects of data that can consider partial set membership [78]. The prime reason behind its popularity is that FL permits input variable even though it is not precisely classified as numerical input [79]. The most important advantage of FL is that it easily generates conclusions from noisy or imprecise input data.  
Choosing the appropriate types of membership functions and the reasonable fuzzy rules to yield the best results depends on having relevant experience and knowledge. In some cases, heavy computing tasks, such as repetitive calculation, must also be used. To train the fuzzy logic model, artificial neural networks can be applied to train the model. A synthesis of neural networks with fuzzy logic approaches could offer a practical tool with the primary abilities of both methods [80; 81; 82].  
A neuro-fuzzy model can be applied as a hybrid algorithm for making decisions from a fuzzy modern soft-computing-based approach using ANN. ANFIS was introduced in 1993 by [PERSON] [83]. The neuro-fuzzy model was improved with the intrinsic learning abilities of ANN. The essential components of fuzzy systems are rules, which are also the basic parts of the whole algorithm. The ANN is used to optimize these rules [84].  
The first proposed ANFIS model had five layers. Figure 1 schematically depicts the structure of ANFIS. The rules are as follows [83].  
\[\text{Rule \#1}:\ f\ X\ is\ A_{1}\ and\ Y\ is\ B_{1},\ then\ f_{1}=p_{1}x+q_{1}y+r_{1} \tag{1}\]  
\[\text{Rule \#2}:\ f\ X\ is\ A_{2}\ and\ Y\ is\ B_{2},\ then\ f_{2}=p_{2}x+q_{2}y+r_{2} \tag{2}\]  
In the above relations, \(A_{1}\)-\(A_{2}\) and \(B_{1}\)-\(B_{2}\) refer to membership functions for input \(x\) and input \(y\), respectively.  
In the first phase, each node is described as a square node for making the membership grades. Applying the membership function, inputs (\(x\) and \(y\)) are mapped as linguistic terms.  
\[O_{1,i}=\mu_{A_{i}}(x),\ \ i=1,2. \tag{3}\]  
where \(x\) is the input value to node \(i\), and \(A_{i}\) is the linguistic term. \(O_{i}^{1}\) is the membership function of \(A_{i}\). In general, there are three significant types of membership functions, named Gaussian, triangular, and trapezoidal. The mathematical expression of the Gaussian function is determined as the following formula:  
\[\mu_{A_{i}}(x)=\exp\left(-\left(\frac{x-a_{i}}{b_{i}}\right)^{2}\right) \tag{4}\]  
where \(a_{i}\) and \(b_{i}\) are defined as the distribution parameters.  
Similar to the previous phase, in layer two, each node is circular, and the output is measured utilizing the following relation:  
\[O_{2,i}=w_{i}=\mu_{A_{i}}(x)*\mu_{B_{i}}(x),\qquad i=1,2. \tag{5}\]  
In the above relation, \(w_{i}\) is determined as the weight of the rule.  
In the next phase, the nodes compute the ratio of the weight of rules, divided by the sum of total weights, as the following relation:  
\[O_{3,i}=\overline{w_{i}}=\frac{w_{i}}{w_{1}+w_{2}},\qquad i=1,2. \tag{6}\]  
The task of this phase is the measurement of the outputs associated with each if-then rule, obtained using the flowing function.  
\[O_{4,i}=\overline{w_{i}}f_{i}=\overline{w_{i}}(p_{i}x+q_{i}y+r_{i}),\;\;i=1,2. \tag{7}\]  
In the above relation, \(\overline{w_{i}}\) refers to the output of the previous layer. \(p_{i}\), \(q_{i}\), and \(r_{i}\) are updated during the training phase.  
In the final phase, the summation of the layers in one circle node is computed as follows:  
\[O_{5,i}=\sum_{i}\overline{w_{i}}f_{i}=\frac{\sum_{i}w_{i}f_{i}}{\sum_{i}w_{i}} \;,\qquad i=1,2. \tag{8}\]  
Figure 1: The structure of the adaptive neuro-fuzzy inference system model.