*3.2. Particle Swarm Optimization*

The PSO algorithm is a stochastic optimization algorithm used to find the optimal positions of particles and is based on the social behavior of animals moving in flocks [19,20]. In BO-TMA studies, each particle representing an estimated initial target state vector consists of four elements: the positions and velocities in the *x* and *y* directions. First, at *k* = 1, the particles are uniform, randomly spread along the bearing line within the target-observer distance from 1 to 30 km. A specific velocity vector, which

is randomly selected in the range of 0|*v*ˆ| 10 m/s, where |*v*ˆ| = |*v*ˆ*x*| <sup>2</sup> + - - *v*ˆ*y* - - - 2 , is assigned to each particle. Then, the position of each particle at the next scan time (*k* = 2) is calculated using the dynamic model shown in Section 2.1 from the position at *k* = 1. In this manner, a total of *K* positions are determined for each particle, which forms a particle trajectory. After that, the shortest distance between each particle position and the bearing line corresponding to the same scan time number is calculated. This distance is then normalized by the distance between the observer and particle position at each scan time to avoid excessive convergence to local optima, which happens because distance error increases as the distance between the observer and the particle increases. Finally, the normalized distance errors for all *K* particle positions are summed to obtain an objective function *J <sup>m</sup>* for the *m*-th particle, which is expressed as:

$$J^{\rm m} = \sum\_{k=1}^{K} \frac{\min\_{i} \sqrt{\left(\mathfrak{p}\_{\rm xm}(k) - \mathfrak{p}\_{\rm xl}(k, i)\right)^{2} + \left(\mathfrak{p}\_{\rm ym}(k) - \mathfrak{p}\_{yl}(k, i)\right)^{2}}}{\sqrt{\left(\mathfrak{p}\_{\rm xm}(k) - \mathfrak{p}\_{\rm xo}(k)\right)^{2} + \left(\mathfrak{p}\_{\rm ym}(k) - \mathfrak{p}\_{\rm yo}(k)\right)^{2}}},\tag{13}$$

where *p*ˆ*xm*(*k*) and *p*ˆ*ym*(*k*), respectively, are the positions in the *x* and *y* directions of the *m*-th particle at scan time *k*; and *pxo*(*k*) and *pyo*(*k*) are the observer positions in the *x* and *y* directions at scan time *k*. The total particle number used here was 200 (Table 1). Since each particle is considered a candidate for the target, the next step is to find the initial state vector of the particle that produces the minimum value of *J <sup>m</sup>*. In this study, the PSO algorithm was used as an optimization technique to find the optimal target trajectory. In each generation, the best values for the state vectors consisting of the positions and velocities of the particles are evaluated by comparison with state vectors selected during previous generations, and the state change rates of the particles are adjusted based on the experiences of the particles and their companions. The state vectors in the next generation are updated with the sum of the present state vectors and the adjusted state change rates of the particles [20]. The process is expressed as [19]:

$$
\upsilon\_p(n+1, m, d) = \upsilon\_1 \upsilon\_p(n, m, d) + \upsilon\_l(n, m, d) + \upsilon\_s(n, m, d), \tag{14}
$$

$$\mathbf{x}\_{l}(n,m,d) = c\_{2}r\_{1}\{\mathbf{x}\_{pl}(m,d) - \mathbf{x}\_{p}(n,m,d)\},\tag{15}$$

$$\text{tr}\_{\mathbb{S}}(\mathfrak{n}, m, d) = \text{cr}\_{\mathbb{P}} \{ \mathbf{x}\_{\mathbb{P}^\mathbb{S}}(d) - \mathbf{x}\_{\mathbb{P}}(\mathfrak{n}, m, d) \},\tag{16}$$

$$\text{rand } \mathbf{x}\_p(n+1, m, d) = \mathbf{x}\_p(n, m, d) + \upsilon\_p(n+1, m, d), \tag{17}$$

where *xp*(*n*, *m*, *d*) represents the state vector of the *m*-th particle for the *n*-th generation with dimension *d*. Dimension *d* is one of 1, 2, 3, and 4 corresponding to the positions and velocities of the particles at *k* = 1, that is, *p*ˆ*xm*(1), *p*ˆ*ym*(1), *v*ˆ*xm*(1), and *v*ˆ*ym*(1), respectively. In addition, *vp*(*n*, *m*, *d*) represents the state change rates of the particles for *xp*(*n*, *m*, *d*). Finally, *vl*(*n*, *m*, *d*) and *vs*(*n*, *m*, *d*) are the local state change rate and the social state change rate for the *m*-th particle, respectively. The local state vector *xpl*(*m*, *d*) is the best state vector of the *m*-th particle obtained from the first generation to the *n*-th generation, and the social state vector *xps*(*d*) is the best state vector of the particle with the smallest *J <sup>m</sup>* of all particles up to the *n*-th generation. In the above equations, *c*1, *c*2, and *c*<sup>3</sup> are acceleration weight constants determined empirically through many trial runs to be 0.73, 0.1, and 0.2, respectively. Random numbers *r*<sup>1</sup> and *r*<sup>2</sup> are selected in the range between 0 and 1. The process is iterated until the state vector of each particle converges to the best state vector that satisfies the minimum position errors. In our case, the generation is terminated when the standard deviations of the positions, σ*p*, and velocities, σ*v*, of 200 particles converge to values less than 100 m and 0.2 m/s, respectively. Finally, the trajectory of the particle with the best state vector is selected as the target trajectory.


**Table 1.** Particle swarm optimization parameters used to find the optimal initial position and velocity of target.
