# An Efficient and Fast Hybrid GWO-JAYA Algorithm for Design Optimization
## 2 The FHGWJA Algorithm
The best three individuals of the new population are reset as wolves \(\alpha\), \(\beta\), and \(\delta\) with the corresponding design vectors \(\overset{\rightarrow}{X_{\alpha}}\), \(\overset{\rightarrow}{X_{\beta}}\), and \(\overset{\rightarrow}{X_{\delta}}\). The best and worst solutions are set as \(\overset{\rightarrow}{X_{best}}\) and \(\overset{\rightarrow}{X_{worst}}\), respectively. In order to avoid stagnation, ranking of wolves \(\alpha\), \(\beta\), and \(\delta\) is checked with another elitist criterion if FHGWJA did not update their positions in the current iteration. The criterion is again based on the concept of descent direction. The \(\overset{\rightarrow}{S_{\beta}}=(\overset{\rightarrow}{X_{best}}-\overset{ \rightarrow}{X_{\beta}})\) and \(\overset{\rightarrow}{S_{\delta}}=(\overset{\rightarrow}{X_{best}}-\overset{ \rightarrow}{X_{\delta}})\) obviously are descent directions with respect to positions \(\overset{\rightarrow}{X_{\beta}}\) and \(\overset{\rightarrow}{X_{\delta}}\) of wolves \(\beta\) and \(\delta\), and the design improves by moving towards the \(\alpha\) wolf. Hence, FHGWJA perturbs \(\overset{\rightarrow}{X_{\beta}}\) and \(\overset{\rightarrow}{X_{\delta}}\) along the descent directions \(\overset{\rightarrow}{S_{\beta}}\) and \(\overset{\rightarrow}{S_{\delta}}\). The positions of wolves \(\beta\) and \(\delta\) are \"mirrored\" with respect to \(\overset{\rightarrow}{X_{best}}\) as follows:  
\[\left\{ \begin{aligned} (\overset{\rightarrow}{X_{\beta}})^{mirr}& =(1+\eta_{mir,\beta})\overset{\rightarrow}{X_{best}}-\eta_{mir, \beta}\overset{\rightarrow}{X_{\beta}}\\ (\overset{\rightarrow}{X_{\delta}})^{mirr}&=(1+\eta_ {mirr,\delta})\overset{\rightarrow}{X_{best}}-\eta_{mir,\delta}\overset{ \rightarrow}{X_{\delta}}\end{aligned} \right. \tag{16}\]  
where \(\eta_{mirr,\beta}\) and \(\eta_{mirr,\delta}\) are two random numbers in the interval (0,1) that limit step sizes to reduce the probability of generating infeasible positions. The best three positions amongst \(\overset{\rightarrow}{X_{\alpha}}\), \(\overset{\rightarrow}{X_{\beta}}\), \(\overset{\rightarrow}{X_{\delta}}\), \((\overset{\rightarrow}{X_{\beta}})^{mirr}\), and \((\overset{\rightarrow}{X_{\delta}})^{mirr}\) are taken as wolves \(\alpha\), \(\beta\), and \(\delta\) for the next iteration, while the two worst positions are compared with the rest of the population and may replace \(X_{worst}^{\rightarrow}\) and the 2 nd worst design of the old population. The latter operation also covers the case that \((\overset{\rightarrow}{X_{\beta}})^{mirr}\) and \((\overset{\rightarrow}{X_{\delta}})^{mirr}\) did not improve any of the wolves \(\alpha\), \(\beta\), and \(\delta\). The mirror strategy used in FHGWJA is illustrated in Figure 2. In particular, the figure shows the following: (i) the original positions of wolves \(\alpha\), \(\beta\), and \(\delta\), respectively, correspond to points P\({}_{\text{opt}}\)\(\equiv\)P\({}_{\alpha}\), P\({}_{\beta}\), and P\({}_{\delta}\) of the search space; (ii) the positions of \"mirror\" wolves \(\beta^{mirr}\) and \(\delta^{mirr}\) are defined with Equation (16) and, respectively, correspond to points P\({}_{\beta,\text{mirr}}\) and P\({}_{\delta,\text{mirr}}\) of the search space; (iii) the cost function gradient vector \(\
abla\overset{\rightarrow}{W_{\text{best}}}\) is evaluated at \(\overset{\rightarrow}{X_{best}^{\rightarrow}}\). It can be seen that the \"mirror\" wolves \(\beta^{mirr}\) and \(\beta^{mirr}\) defined by Equation (16) lie on descent directions and may even improve \(X_{best}^{\rightarrow}\), the position of wolf \(\alpha\). In fact, it holds that \(\
abla\overset{\rightarrow}{W_{\text{best}}}\times((\overset{\rightarrow}{X_{ \beta}})^{mirr}-\overset{\rightarrow}{X_{opt}})<0\) and \(\
abla\overset{\rightarrow}{W_{\text{best}}}\times((\overset{\rightarrow}{X_ {\delta}})^{mirr}-\overset{\rightarrow}{X_{opt}})<0\), where \"\(\times\)\" denotes the scalar product between two vectors.