*4.1. Particle Swarm Optimization*

The particle swarm optimization (PSO) algorithm was inspired by the study of artificial life and was proposed as a global stochastic search algorithm in the simulation of bird flock foraging [26]. The particle swarm optimization algorithm has strong anti-interference ability, good results, fast speed, and memory function, and is also a multi-agent optimization system. Each particle can dynamically adjust according to the surrounding state to find its optimal and overall solution [27].

In the optimization process, after initializing the target population in N-dimensional space, the particles constantly update their positions and velocities, generating a new position each time and solving the next time to attain the optimal result. The iterative expression for the update rate as well as the position in the process of particle solution is

$$\begin{cases} \boldsymbol{\upsilon}\_{i}^{k+1} = \omega \boldsymbol{\upsilon}\_{i}^{k} + c\_{1} \boldsymbol{r}\_{1} (\boldsymbol{P}\_{M} - \boldsymbol{x}\_{i}^{k}) + c\_{2} \boldsymbol{r}\_{2} (\boldsymbol{G}\_{M} - \boldsymbol{x}\_{i}^{k})\\ \boldsymbol{x}\_{i}^{k+1} = \boldsymbol{\upsilon}\_{i}^{k+1} + \boldsymbol{x}\_{i}^{k} \end{cases} \tag{25}$$

where: *k* is the number of iterations; *ω* is the inertia weight coefficient; *vi <sup>k</sup>* and *xi <sup>k</sup>* are the velocity and position of particles; *c*<sup>1</sup> and *c*<sup>2</sup> are acceleration factors; *r*<sup>1</sup> and *r*<sup>2</sup> are random numbers between [0,1]; *PM* is the particle individual extreme value; and *GM* is the extreme value of the population.
