## 2 The DNFS Algorithm  
### The SC-ANFIS Submodel  
The structure of the ANFIS is composed of an adaptive neural network and an FS. It not only inherits the adaptive learning ability of neural networks, but also keeps the interpretability of FSs. The ANFIS can adjust the parameters according to prior knowledge so that the predicted values are closer to the target values, which has achieved great success in many applications [27]. The SC-ANFIS is proposed in this paper, which applies subtractive clustering (SC) to construct a Sugeno fuzzy inference system in the ANFIS. The SC-ANFIS can effectively avoid the combinatorial explosion of fuzzy rules when the dimensionality of the input is very high. In addition, the fuzzy rules generated by SC are more consistent with the data than those obtained without clustering. The input space can be divided appropriately, and the number of membership functions (MFs) and the parameters for each input domain can be reasonably determined [28]. There are two other well-known methods to construct fuzzy inference systems: (1) grid partitioning; (2) fuzzy c-means clustering [29]. It has been proven that SC is better than other algorithms [30; 31], and it was adopted as the method to generate the fuzzy inference system in the ANFIS.  
There are several types of MFs in the ANFIS (e.g., triangular, trapezoidal, generalized bell, Gaussian, etc.) that can be applied [32]. The MF used in the SC-ANFIS is Gaussian, considering that it has the advantages of being nonzero, simple, and smooth and having fewer parameters compared with other MFs [33]. Furthermore, relevant studies have demonstrated that the performance of the Gaussian MF is better than others in many nonlinear complex problems [34; 35]. The general ANFIS structure, which has five layers and two inputs, is as follows:  
Layer 1: Calculate the MF values for each input domain.  
\[\begin{split} O_{1}^{i}=u_{A_{i}}(x_{1}),i=1,2\mid O_{1}^{i}=u_{B _{(i-2)}}(x_{2}),i=3,4\end{split} \tag{1}\]  
where \(x_{1},x_{2}\) are the inputs and \(u_{A_{i}}(x)\) and \(u_{B_{(i-2)}}(x)\) are the corresponding MF values, which can be expressed in the Equation (2).  
\[\begin{split} u_{A_{i}}(x_{1})=u_{B_{i}}(x_{2})=e^{-\frac{(x-x_{i })^{2}}{2\sigma_{i}^{2}}},i=1,2\end{split} \tag{2}\]  
where \(c_{i}\) and \(\sigma_{i}\) are the parameters of the Gaussian MF that result in the different shapes of the MF for each input;  
Layer 2: Multiply the MF values of the inputs as the excitation intensity corresponding to the fuzzy rule:  
\[\begin{split} O_{2}^{i}=w_{i}=u_{A_{i}}(x_{1})\times u_{B_{i}}( x_{2}),i=1,2;\end{split} \tag{3}\]  
Layer 3: Normalize the incentive intensity of the fuzzy rule, which represents the weight of the rule in all rule bases:  
\[\begin{split} O_{3}^{i}=\bar{w}_{i}=\frac{w_{i}}{w_{1}+w_{2}},i= 1,2;\end{split} \tag{4}\]  
Layer 4: Calculate the output of each fuzzy rule:  
\[\begin{split} O_{4}^{i}=\bar{w}_{i}f_{i}=\bar{w}_{i}(px_{1}+qx_{ 2}+r),i=1,2\end{split} \tag{5}\]where \(\{p,q,r\}\) are the consequent parameters for each fuzzy rule;  
Layer 5: Integrate the output of all fuzzy rules and calculate the final output.  
\[O_{5}^{1}=\sum_{i}\bar{w}_{i}f_{i},i=1,2 \tag{6}\]  
where \(O_{k}^{i}\) is the output of the \(k\)-th layer.