## 2 Basic Theories
### Hybrid PSOGSA Optimization Method  
The basic idea of the particle swarm optimization (PSO) algorithm is to simulate the predatory behavior of birds randomly searching for food. The birds adjust their search path through their own experience and the exchange between the groups so as to find the place with food. The position or path of each bird is a combination of independent variables. Each search will adjust direction and speed according to its own experience and population exchange (the optimal location of historical search), until the optimal solution has been reached. For the PSO algorithm, the typical steps are as follows [36; 37]:  
(1) the position and velocity of the particle swarm are randomly initialized, while best position \(p_{best}\) and \(g_{best}\) are defined by the initialized position;  
(2) the particle fitness should be calculated;  
(3) \(p_{best}\) and \(g_{best}\) are updated based on particle fitness value;  
(4) velocity and position are iterated and updated by:  
\[v_{ji}^{k+1}=\omega\cdot v_{ji}^{k}+c_{1}\cdot r_{1}(p_{bestji}^{k}-x_{ji}^{k} )+c_{1}\cdot r_{2}(g_{bestji}^{k}-x_{ji}^{k}) \tag{19}\]  
\[x_{ji}^{k+1}=x_{ji}^{k}+v_{ji}^{k+1} \tag{20}\]  
(5) step 2 to step 4 are iterated and cycle calculated until the convergent conditions are met: where \(x\) and \(v\) are position and velocity of particles; \(p_{best}\) is the historical best fitness position; \(g_{best}\) is the global best fitness position; \(\omega\) is weight coefficient; \(c_{1}\) and \(c_{2}\) are learning factors; \(r_{1}\) and \(r_{2}\) are random numbers between 0 and 1; subscript \(j\) and \(i\) represent dimension and particle swarm number. For the gravitational search algorithm (GSA), the core idea is: with the circulation of the algorithm, the particles move continuously in the search space by the gravitational force between them to finally find the best solution. It should be pointed out that the particle movement strategy of GSA is different from that of the PSO algorithm. For GSA, the typical steps are as follows [38; 39]:(1) the particle swarm are randomly initialized, while best position \(p_{best}\) and \(g_{best}\) are defined by the initialized position;  
(2) the particle fitness should be calculated;  
(3) \(G\), \(p_{best}\), and \(g_{best}\) should be updated;  
(4) resultant force, acceleration, velocity, and position should be calculated and updated by:  
\[F_{i}^{d}(k)=\sum_{j\in M_{\textit{global},j\
eq i}}^{N}r_{j}F_{ij}^{d}(k) \tag{21}\]  
\[a_{i}^{d}(k)=\frac{F_{i}^{d}(k)}{M_{ii}(k)} \tag{22}\]  
\[v_{i}^{d}(k+1)=r_{i}\cdot v_{i}^{d}(k)+a_{i}^{d}(k) \tag{23}\]  
\[x_{i}^{d}(k+1)=x_{i}^{d}(k)+v_{i}^{d}(k+1) \tag{24}\]  
(5) step 2 to step 4 are iterated and cycle calculated until the convergent conditions are met: where \(G\) is the gravitational constant, which is used for gravity calculation by \(F_{ij}^{d}(k)=G(k)\frac{M_{pi}(k)\cdot M_{pi}(k)}{R_{ij}(k)+\varepsilon}(x_{ j}^{d}(k)-x_{i}^{d}(k))\); \(M_{\textit{a}j}\) is the active gravitational mass related to object \(j\); \(M_{pi}\) is the passive gravitational mass related to object \(i\); \(\varepsilon\) is a small constant to prevent the denominator from being zero; \(R_{ij}\) is the Euclidian distance between \(i\) and \(j\); \(d\) represents the dimension; \(r_{i}\) is random numbers between 0 and 1; \(M_{\textit{abset}}\) is the top \(q\) in descending order of individual qualities; \(a\) is acceleration; \(M_{ii}\) is the mass of object \(i\). Since the PSO algorithm usually easily runs into the local optimization solution and GSA always shows low convergence speed in the later period of the optimization, researchers tried to combine the two methods to guarantee both convergence speed and global convergence [40; 41], which showed good performance in complex optimal problems, especially for multivariable coupling and a non-linear complicated system.