*3.1. Migration Behavior*

A sooty tern must meet three requirements during a migration:

Collision avoidance: SA is used to compute a new search agent location to avoid collisions with its neighborhood search agents (i.e., sooty terns).

$$
\stackrel{\rightarrow}{\dot{C}}\_{st} = s\_A \cdot \stackrel{\rightarrow}{P}\_{st}(z) \tag{4}
$$

where → *Cst* denotes the position of a sooty tern that does not collide with other terns. → *Pst* represents the current location of the sooty tern. *z* signifies the current iteration, and *s<sup>A</sup>* denotes the migration of a sooty tern in the solution space.

Converge in the direction of best neighbor: Following collision evasion, the search agents converge in the path of the finest neighbor.

$$
\stackrel{\rightarrow}{\dot{M}}\_{\rm st} = \mathbb{C}\_{B} \cdot \stackrel{\rightarrow}{P}\_{\rm st}(z) \left( \stackrel{\rightarrow}{P}\_{b\rm st}(z) - \stackrel{\rightarrow}{P}\_{\rm st}(z) \right) \tag{5}
$$

where → *Mst* denotes a different position of a search agent (i.e., sooty tern). → *Pbst*(*z*) shows the best location of a search agent, and *C<sup>B</sup>* signifies the random variable and can be computed as follows:

$$\mathcal{C}\_B = 0.5 \,\text{R}\_{and} \tag{6}$$

where *Rand* represents any arbitrary number in the range of 0 and 1.

Updating corresponding to best search agent: Finally, the sooty tern can revise its location in relation to the best search agent.

$$
\vec{D}\_{st} = \vec{\mathcal{C}}\_{st} + \vec{\mathcal{M}}\_{st} \tag{7}
$$

where → *Dst* signifies the difference between the search agent and the best fittest search agent.
