## 2 Material and Methods
### Slime Mould Algorithm and Adaptive Opposition Slime Mould Algorithm  
A stochastic optimizer called SMA has been proposed by [PERSON] et al. (2016). Inspired by the oscillation of the mode of slime mould in nature, the proposed SMA method has been successfully applied in many studies in the literature ([PERSON] et al., 2016; [PERSON] et al., 2017). Suppose there are \(\mathbf{N}\) slime moulds with a lower boundary (\(\mathbf{LB}\)) and upper boundary (\(\mathbf{UB}\)) in the search space. The position of the \(\mathbf{i}\)th slime mould in \(\mathbf{d}\) dimensions is represented as \(\mathbf{X}_{i}=\left(\mathbf{x}_{i}^{1},\mathbf{x}_{i}^{2},\ldots,\mathbf{x}_{i}^{d}\right)\), \(\forall i\in[\mathbf{1},\mathbf{N}]\), and the fitness of \(\mathbf{i}\)-th slime is expressed as \(f(\mathbf{X}_{i}),\forall i=[\mathbf{1},\mathbf{N}]\). Thus, the position of \(\mathbf{N}\) slime mould and its fitness at the present moment (iteration) \(\mathbf{t}\) may be stated according to Equations (29) and (30):  
\[X(t)=\left[ \begin{array}{ccc}x_{1}^{1}&x_{1}^{2}&\cdots&x_{1}^{d}\\ x_{2}^{1}&x_{2}^{2}&\cdots&x_{2}^{d}\\ \vdots\vdots\vdots\vdots\\ x_{N}^{1}&x_{N}^{2}&\cdots&x_{N}^{d}\end{array} \right]=\left[ \begin{array}{c} X_{1}\\ X_{2}\\ \vdots\\ X_{N}\end{array} \right] \tag{29}\]  
\[f(X)=\left[f(X_{1}),\;f(X_{2}),\ldots,f(X_{N})\right] \tag{30}\]  
For the next iteration (\(\mathbf{t}+\mathbf{1}\)) in the SMA, the position of the slime mould is updated using Equation (31). \[\mathbf{X}_{i}(\mathbf{t}+\mathbf{1})=\left\{ \begin{array}{ccc}\mathbf{X}_{LB}(\mathbf{t})+\bm {V}_{b}(\mathbf{W}\cdot\mathbf{X}_{A}(\mathbf{t})-\mathbf{X}_{B}(\mathbf{t}))&\mathbf{r}_{1}\geq\delta \;\textit{and}\;\mathbf{r}_{2}<\mathbf{p}_{i}\\ \mathbf{V}_{c}\cdot\mathbf{X}_{i}(\mathbf{t})&\mathbf{r}_{1}\geq\delta\;\textit{and}\;\mathbf{r}_ {2}\geq\mathbf{p}_{i}\\ \textit{rand}\cdot(\mathbf{UB}-\mathbf{LB})+\mathbf{LB}&\mathbf{r}_{1}<\delta\end{array} \right., \forall i\in[\mathbf{1},\mathbf{N}] \tag{31}\]  
where \(\mathbf{V}_{b}\) and \(\mathbf{V}_{c}\) represent random velocity, \(\mathbf{X}_{LB}\) represents the best local individual for the current iteration, \(\mathbf{W}\) represents the weight vector, and \(\mathbf{X}_{A}\) and \(\mathbf{X}_{B}\) represent randomly pooled slime mould samples from the available populations. \(\mathbf{r}_{1}\) and \(\mathbf{r}_{2}\) are random valuesbetween 0 and 1. The probability that the slime mould will appear at a random search site is set at \(\delta\) 0.03. \(\mathbf{p}_{i}\) is the \(i\)-th slime mould's threshold value, which assists in picking the slime mould position using the best individual or itself for the following iteration, and is computed as shown in Equation (32). \[p_{i}=\tan h|f(X_{i})-f_{GB}|,\forall i\in[1,N], \tag{32}\]  
where \(\mathbf{f}(\mathbf{X}_{i})\) is the fitness value of the \(i\)-th slime mould \(\mathbf{X}_{i}\), and \(\mathbf{f}(\mathbf{X}_{GB})\) is the global best fitness value \(\mathbf{f}_{GB}\) derived by Equation (33) of the global best position \(\mathbf{X}_{GB}\). \[f_{GB}=f(X_{GB}) \tag{33}\]  
Equation (34) may be used to calculate the weight \(W\) of \(N\) different types of slime mould in the current iteration:  
\[W\Big{(}sortInd_{f}(i)\Big{)}= \begin{cases}1+rand\cdot\log\Big{(}\frac{f_{BB}- f(X_{i})}{f_{LB}-f_{LW}}+1\Big{)}\ 1\leq i\leq\frac{N}{2}\\ 1-rand\cdot\log\Big{(}\frac{f_{BB}-f(X_{i})}{f_{LB}-f_{LW}}+1\Big{)}\ \frac{N}{2}<i\leq N \end{cases}  \tag{34}\]  
where \"rand\" represents a random number between \([0,1]\). The local worst fitness value is represented by \(\mathbf{f}_{Lw}\), and the local best fitness value is represented by \(\mathbf{f}_{LB}\). \(\mathbf{f}_{LB}\) and \(\mathbf{f}_{Lw}\) are calculated based on the fitness value \(\mathbf{f}\) given in Equation (30).