*3.2. PSO*

In the PSO algorithm, each individual is called a "particle", and each particle will find a potential optimal solution at each iteration. Assuming that the size of the population is *N*, each particle *i* (*i* = 1, 2, ... , *N*) in the population has its own initial position *Xi* (*Xi* = *xi*1, *xi*2, ... , *xid*) and initial velocity *Vi* (*Vi* = *vi*1, *vi*2, ... , *vid*), and they will search for the optimal solution in *D*-dimensional space according to their own individual extremum *pbest* and global extremum *gbest*. Individual extremum is the current best point found by each particle in the search space, and global extremum is the current best point found by the whole particle group in the search space. During the search process, the updating formula of particle's relevant state parameters is as follows:

$$\mathbf{v}\_{i}^{t+1} = \eta \mathbf{v}\_{i}^{t} + \mathbf{c}\_{1} \ast \text{rand1}(\mathbf{i}) \cdot (\mathbf{p}\_{\text{best}}^{t} - \mathbf{x}\_{i}^{t}) + \mathbf{c}\_{2} \ast \text{rand2}(\mathbf{i}) \cdot (\mathbf{g}\_{\text{best}}^{t} - \mathbf{x}\_{i}^{t}) \tag{7}$$

$$x\_{i}^{t+1} = x\_{i}^{t} + v\_{i}^{t} \tag{8}$$

$$
\eta = \eta\_{\rm start} - (\eta\_{\rm start} - \eta\_{\rm cmd})\frac{t}{T} \tag{9}
$$

where η is the inertia weight that determines the specific gravity of the particle to the current velocity. If the η is large, the particle has a strong exploration ability and can span a longer distance to find the global optimal solution, but it may cause the particle to oscillate back and forth before and after the optimal solution. If the η is small, it means that particles have better ability to find the optimal solution locally, but they can easily to fall into the local optimization solution.

The flow of the standard PSO algorithm (Algorithm 2) is given below, where *bup* and *blo* represent the upper and lower bounds of the problem domain, respectively, and *D* represents the dimension of the solution space.

#### **Algorithm 2. PSO [46]**
