## 3 Preliminaries  
### Salp Swarm Algorithm  
The SSA algorithm is a stochastic swarm intelligence algorithm developed by [PERSON] et al. in [11]. Essentially, the SSA algorithm inspired by the foraging behavior of salps and their structural spiral-chains in deep oceans. Salps are barrel-shaped marine organisms that return to the family of Salpidae. They gather in a chain like a spiral or a wheel, swim synchronously, and cooperate to find the food. Figure 1 shows an example of a chain of salps. The striking insight of the SSA algorithm is the collective and foraging behavior of salps swarm in the sea. Typically, the SSA is a metaheuristic and global optimizer that capable of handling complex, constrained, and unconstrained problems. As well as, it showed promising performance in various fields, such as feature selection [12; 13; 35; 36; 37], optimization problems in engineering [9; 11], and other applications [10; 38]. A salp's chain consists of a leader salp and follower salps. The leader salp is responsible for searching for a food source, while the follower salps, progressively, follow the leading salp for the sake of reaching a food source. The SSA algorithm is a search and population-based metaheuristic algorithm. Certainly, search algorithms have a known search space, a search criterion, and an evaluation function. Hence, the SSA algorithm has a population of salps (individuals) that represent potential random solutions and belong to a predefined search space. A population of salps (\(X\)) is composed of a leader salp and (\(N-1\)  
Figure 1: A representation of the SSA algorithm, which shows the leader and follower salps. follower salps, which is expressed by a 2-dimensional matrix as in Equation (1). (\(N\)) is the number of salps in the swarm, and (\(d\)) is the dimension of a salp. \[X_{i}=\left[ \begin{array}{cccc}x_{1}^{1}&x_{2}^{1}&\ldots&x_{d}^{1}\\ x_{1}^{2}&x_{2}^{2}&\ldots&x_{d}^{2}\\ \vdots&\vdots&\ldots&\vdots\\ x_{1}^{N}&x_{2}^{N}&\ldots&x_{d}^{N}\end{array} \right] \tag{1}\]  
The objective of the salps is to find the optimal source food (\(F\)). In order to formulate the mathematical model of salps chain; each salp is characterized by a position vector. Thus, the leader salp (\(x_{j}^{1}\)) is illustrated by Equation (2), where (\(F_{j}\)) is the position of the source food in the \(j\)th dimension, (\(c_{2}\)) and (\(c_{3}\)) are two random numerical values in the range [0,1], and (\(ub_{j}\), \(lb_{j}\)) are the upper and lower bounds of the dimension, respectively. \[x_{j}^{1}= \begin{cases}F_{j}+c_{1}\left(\left(ub_{j}-lb_{j}\right)c_{2}+lb_{j} \right)&c_{3}\geq 0.5\\ F_{j}-c_{1}\left(\left(ub_{j}-lb_{j}\right)c_{2}+lb_{j}\right)&c_{3}<0.5\end{cases}  \tag{2}\]  
whereas, (\(c_{1}\)) is a controlling coefficient and decreases over the course of iterations. Typically, (\(c_{1}\)) plays a crucial role in balancing between diversification and intensification, which hinders the algorithm from trapping in local optima or experiencing a premature convergence. Equation (3) describes the behavior of (\(c_{1}\)) parameter, in which, (\(l\)) is the current iteration, and (\(L\)) is the predefined total number of iterations. \[c_{1}=2e^{-(\frac{4l}{L})^{2}} \tag{3}\]  
The follower salps adjust their positions iteratively as expressed in Equation (4), where \(i\geq 2\). Algorithm 1 presents the pseudo-code of the SSA algorithm. \[x_{j}^{i}=\frac{1}{2}(x_{j}^{i}+x_{j}^{i-1}) \tag{4}\]  
The SSA algorithm initializes the population by the randomly generated salps. Thereby, each salp in the chain is assessed based on an objective (or fitness) criterion. The procedure of the algorithm, in an iterative way, modify the positions of all salps (Equation (4)), evaluate them, and assign the fittest salp as the source food (\(F\)). At each iteration, the parameter (\(c_{1}\)) is modified, while each dimension of the leader salp is adjusted regarding Equation (2). Eventually, the algorithm stops when a terminating condition is satisfied.