## 2 Cerebellar Model Articulation Controller Theory  
A cerebellar model articulation controller (CMAC) is a new neurological architecture proposed by [PERSON] et al. in 1975 [23; 24; 25; 26]. CMAC is a learning structure that mimics the human cerebellum. It is a neural network based on partial learning and can approximate nonlinear continuous functions with arbitrary precision. The CMAC neural network not only can hierarchically represent information but also can correct the partial weight coefficient. The learning velocity is high and the structure is simple. It possesses the advantages of local generalization, which makes it easier to be applied in real-time control compared with other neural networks; hence, it is one of the most widely applied neural networks in control. \begin{table}
\begin{tabular}{l l} \hline \hline
**Full Form** & **Abbreviation** \\ \hline Takagi–Sugeno–Kang & TSK \\ Artificial Neural Network & ANN \\ Wavelet Neural Network & WNN \\ Cerebellar Model Articulation Controller & CMAC \\ Recurrent Cerebellar Model Articulation Controller & RCMAC \\ Self–Organizing Cerebellar Model Articulation Controller & SOXMAC \\ Fuzzy Cerebellar Model Articulation Controller & FCMAC \\ Adaptive Takagi–Sugeno–Kang Fuzzy Self-Organizing & ATFSORC \\ Recurrent Cerebellar Model Articulation Controller & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Full forms and the corresponding abbreviations used in this study. As suggested by its name, the so-called cerebellar model articulation controller is derived by mimicking the operating manner of the human cerebellum. The architecture of CMAC is somewhat similar to an artificial neural network; in fact, it can be regarded as a simplified artificial neural network. The biggest difference is that unlike the artificial neural network, which uses only the triggered memory in each learning, CMAC will use all the memories in each learning, thereby drastically improving the learning velocity and usage of memory. Figure 1 is a schematic diagram of a generalized CMAC mapping. The architecture includes an input state space, an association memory space, a weight memory space, an actual output (\(y\)), a desired output (\(y_{d}\)), and a learning algorithm. Vector \(\mathbf{S}\) of the input state, vector \(\mathbf{A}\) of the association memory, and vector \(\mathbf{W}\) of the weighted memory are, respectively, defined as follows:  
\[\mathbf{S}=\left[ \begin{array}{cccc}s_{1}&s_{2}&\dots&s_{n}\end{array} \right]^ {T}\in\Re^{n}, \tag{1}\]  
\[\mathbf{A}=\left[ \begin{array}{cccc}a_{1}&a_{2}&\dots&a_{p}\end{array} \right]^ {T}\in\Re^{p}, \tag{2}\]  
\[\mathbf{W}=\left[ \begin{array}{cccc}w_{1}&w_{2}&\dots&w_{p}\end{array} \right] ^{T}\in\Re^{p}. \tag{3}\]  
Quantization of continuous inputs:  
At the beginning of the CMAC action, the quantization step is first performed to quantize the input learning sample into n discrete input states (\(s_{1}\)-\(s_{n}\)) in order to delimit each input state to a limited closed interval for variation. A higher number of quantization implies a higher learning resolution. Although the arithmetic precision can be increased, thereby increasing the control precision, it consumes relatively more memories; thereby, the arithmetic velocity is reduced, and thus the learning velocity decreases. Therefore, control precision and learning velocity are subjected to a trade-off for the user's needs. Mapping of input state space to association memory space:  
After the input signal goes through the CMAC quantization step, the quantized input state is mapped to the association memory space. For mapping the input state space to the association memory space, an input state must be mapped to at least two or more association memory addresses, and the association memory addresses mapped by the adjacent input state need to have at least one overlap.