## 4 Optimization Algorithms
### Grey Wolf Optimizer (GWO) Algorithm  
A grey wolf optimizer [22] is an intelligent group optimization algorithm proposed by [PERSON] et al. of Griffith University, Australia, in 2014. The algorithm is an optimized search method inspired by the behavior of gray wolves when they hunt prey. The levels of the gray wolf social hierarchy are separated into \(\alpha\), \(\beta\), \(\delta\), and \(\omega\) from top to bottom. Wolf \(\alpha\) represents the fittest solution, whereas the second and third best solutions are \(\beta\) and \(\delta\), respectively. The remaining wolves, \(\omega\), are candidate solutions. The GWO procedure has three steps: encircling, hunting, and attacking. The encircling behavior is modeled by the following equations:  
\[\overset{\rightarrow}{D}=\left|\overset{\rightarrow}{C}\cdot\overset{ \rightarrow}{X}_{p}(t)-\overset{\rightarrow}{X}(t)\right| \tag{21}\]  
\[\overset{\rightarrow}{X}(t+1)=\overset{\rightarrow}{X}_{p}(t)-\overset{ \rightarrow}{A}\cdot\overset{\rightarrow}{D} \tag{22}\]  
where \(t\) denotes the current iterations, \(\overset{\rightarrow}{X}\) is the position vector of a grey wolf, \(\overset{\rightarrow}{X}_{p}\) is the position vector of the prey, and \(\overset{\rightarrow}{A}\) and \(\overset{\rightarrow}{C}\) are coefficient vectors calculated by  
\[\overset{\rightarrow}{A}=2\overset{\rightarrow}{a}\cdot\overset{ \rightarrow}{r_{1}}-\overset{\rightarrow}{a} \tag{23}\]  
\[\overset{\rightarrow}{C}=2\cdot\overset{\rightarrow}{r_{2}} \tag{24}\]  
where \(\overset{\rightarrow}{a}\) is the convergence factor, decreasing linearly from 2 to 0 in the iterative process, and \(\overset{\rightarrow}{r_{1}}\) and \(\overset{\rightarrow}{r_{2}}\) are random vectors on the range [0, 1]. The outcome of these equations is that the random vectors \(\overset{\rightarrow}{r_{1}}\) and \(\overset{\rightarrow}{r_{2}}\) allow wolves to reach any position around the prey. In the hunting stage, the first three best solutions obtained so far are saved, and other wolves are forced to update their positions according to the best agent. The position update equations are as follows:  
\[\overset{\rightarrow}{D}_{\alpha}=\left|\overset{\rightarrow}{C}_{1} \cdot\overset{\rightarrow}{X}_{\alpha}-\overset{\rightarrow}{X}\right|\text {, }\overset{\rightarrow}{D}_{\beta}=\left|\overset{\rightarrow}{C}_{2} \cdot\overset{\rightarrow}{X}_{\beta}-\overset{\rightarrow}{X}\right|\text {, }\overset{\rightarrow}{D}_{\beta}=\left|\overset{\rightarrow}{C}_{3} \cdot\overset{\rightarrow}{X}_{\beta}-\overset{\rightarrow}{X}\right| \tag{25}\]\[\stackrel{{\rightarrow}}{{X}}_{1}=\stackrel{{ \rightarrow}}{{X}}_{\alpha}-\stackrel{{\rightarrow}}{{A}}_{1}\cdot \left(\stackrel{{\rightarrow}}{{D}}_{\alpha}\right)\text{, }\stackrel{{ \rightarrow}}{{X}}_{2}=\stackrel{{\rightarrow}}{{X}}_{\beta}- \stackrel{{\rightarrow}}{{A}}_{2}\cdot\left(\stackrel{{ \rightarrow}}{{D}}_{\beta}\right)\text{, }\stackrel{{\rightarrow}}{{X}}_{3}=\stackrel{{ \rightarrow}}{{X}}_{\delta}-\stackrel{{\rightarrow}}{{A}}_{3} \cdot\left(\stackrel{{\rightarrow}}{{D}}_{\delta}\right) \tag{26}\] \[\stackrel{{\rightarrow}}{{X}}(t+1)=\frac{\stackrel{{ \rightarrow}}{{X}}_{1}+\stackrel{{\rightarrow}}{{X}}_{2}+ \stackrel{{\rightarrow}}{{X}}_{3}}{3} \tag{27}\]  
The final stage of hunting is to \"attack the prey\" (obtain the optimal solution). As iterations progress, the value of \(\stackrel{{\rightarrow}}{{a}}\) decreases from 2 to 0, pushing the wolves to approach the prey. Note that the range of \(\stackrel{{\rightarrow}}{{A}}\) is related to the value of \(\stackrel{{\rightarrow}}{{a}}\). When \(|\mathrm{A}|<1\), the wolves are forced to attack toward the prey. With the GWO algorithm, the optimal control parameters of the proposed FOFPID controller can be found. The procedure is described as follows:  
1. Initialize the wolf group (\(\alpha,\ \beta,\delta,\omega\)) and select the GWO algorithm parameters. 2.