## 2 Emerging Algorithms Description
### Grey Wolf Optimizer (GWO)
#### 2.1.3 GWO Algorithm  
The GWO adopts the processes of grey wolves (social hierarchy and group hunting) to perform the optimization process. Generally speaking, let us denote with \(NP\) the number of population members, with \(D\) the number of decision variables to be optimized, with \(MaxIt\) the number of maximum iterations, and with \(\vec{V}\) the vector including the position of each member of the population. The \(\alpha\), \(\beta\), and \(\delta\) wolves of the pack model the first (best) three solutions (members of the population with the best value of the objective function), whereas the \(\omega\) members are the rest of the candidate solutions. If we define \(\vec{V}_{nolf}\) as the position vector for each wolf of the pack with respect to the position vector of the prey (\(\vec{V}_{prey}\)), which is the optimized position vector of the desired solution, GWO computes the position vectors of each member of the population employing the social hierarchy and the group hunting processes. Moreover, a set of coefficient vectors, which are used to define the position vector of each member of the population, adjust the search mechanism between the exploitation and the exploration phases of the algorithm. The coefficient vectors are computed by randomly distributed vectors.  
Algorithm A1 (see Appendix A.1) outlines the previously described structure of the Grey Wolf Optimizer. During the initialization of the algorithm, its main parameters (\(NP\), \(D\), \(MaxIt\), and boundaries) are selected based on the optimization problem. Furthermore, the position vectors \(\vec{V}_{wolf}\), \(\vec{V}_{\alpha}\), \(\vec{V}_{\beta}\), and \(\vec{V}_{\delta}\) are randomly defined. With respect to the position vector, each member of the population is ranked to determine the alpha (\(\alpha\)), beta (\(\beta\)), delta (\(\delta\)), and omega (\(\omega\)) wolves (social hierarchy process). At each iteration (group hunting process), two independent loops are taking place--the prey encirclement, and the prey hunting. In the first loop, the objective functions of all members are computed,  
\[F_{obj}=F(\vec{V}_{SI}) \tag{1}\]  
where \(F\) being the objective function of the optimization problem (in GWO \(SI=wolf\)). At the same time, the algorithm updates the position vectors of the first three categories of wolves according to their objective function values. During the second loop, the position vectors of \(\omega\) wolves are updated based on the position vectors of the first three categories as follows  
\[\vec{V}_{wolf}=\frac{\vec{V}^{I}+\vec{V}^{II}+\vec{V}^{III}}{3} \tag{2}\]  
where \(\vec{V}^{I}\), \(\vec{V}^{II}\), and \(\vec{V}^{III}\) are given by  
\[\begin{array}{l}\vec{V}^{I}=\vec{V}_{\alpha}-\bar{R}^{I}_{\alpha}\cdot\vec{ W}_{\alpha}\\ \vec{V}^{II}=\vec{V}_{\beta}-\bar{R}^{I}_{\beta}\cdot\vec{W}_{\beta}\\ \vec{V}^{III}=\vec{V}_{\delta}-\bar{R}^{I}_{\delta}\cdot\vec{W}_{\delta}\end{array} \tag{3}\]  
In (3), \(\vec{V}_{\alpha}\), \(\vec{V}_{\beta}\), and \(\vec{V}_{\delta}\) are the position vectors of the \(\alpha\), \(\beta\), and \(\delta\) wolves, respectively, while  
\[\vec{W}_{n}=|\bar{R}^{II}_{n}\cdot\vec{V}_{n}-\vec{V}_{wolf}|\quad n\in\{ \alpha,\beta,\delta\} \tag{4}\]  
and \(\bar{R}^{I}_{n}=2c\cdot\vec{r}_{1}-c\), \(\bar{R}^{II}_{n}=2\cdot\vec{r}_{2}\). Finally, the \(c\) parameter is equal to \(c=2-i\cdot\frac{2}{MaxIt}\), \(i\) being the index of the current iteration.