## 2 Methodology  
### Particle Swarm Optimization Algorithm (PSO)  
Particle swarm optimization (PSO) algorithm is a population-based swarm intelligence optimization algorithm that was introduced by [PERSON] and [PERSON] (2000) and has been widely used by scientists in various applications. PSO algorithm was inspired by the flock of birds and fish schools. When compared to other evolutionary algorithms, such as bacterial foraging algorithm (BFA), it can be observed that PSO is simpler to implement and more computationally efficient in converging to optimal solutions ([PERSON] and [PERSON], 2000). Moreover, PSO is robust to control parameters and easy to implement in various software packages ([PERSON] and [PERSON], 2000). The implementation of PSO algorithm starts by distributing a population of particles within the defined search space. These particles move towards the optimal solution by computing the objective function at each iteration. Each particle then computed the personal best (_pbest_) solution and was then compared with all the particles. The global best (_gbest_) solution can then be determined at each iteration until the termination criterion is met and the optimal solution is defined. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Parameter** & **Minimum Value** & **Maximum Value** \\ \hline \(v\) & 1000 rpm & 3000 rpm \\ \(f\) & 180 mm/min & 300 mm/min \\ \(a\) & 0.2 mm & 0.6 mm \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Experiment parameters constraints. The position and velocity of each particle is computed and updated at each iteration, according to specific equations that corresponds to the values of personal best and global best solutions. The following are the set of equations that correspond to each step in the pseudocode of Algorithm 1 of the classical PSO algorithm. In Step 1, let the position of the \(i\)-th particle in the d-dimensional search space be represented as follows:  
\[X_{i}=[x_{i1}\ x_{i2}\ \dots\ x_{id}]^{T} \tag{5}\]  
Similarly, the velocity array can be represented as follows:  
\[V_{i}=[v_{i1}\ v_{i2}\ \dots\ v_{id}]^{T} \tag{6}\]  
During each iteration, the fitness of each particle is evaluated and compared with its personal best array of solutions; if the current fitness is better than the previous fitness values, the current personal best solution is updated with the new fitness value and added to the array of personal best solutions, which can be defined as follows:  
\[P_{i}=[p_{i1}\ p_{i2}\ \dots\ p_{id}]^{T} \tag{7}\]  
In Step 4 of the PSO pseudocode, the global best solution is determined at each iteration among all the fitness values of the whole population, and the array of global best solutions is defined as follows:  
\[P_{g}=\Big{[}p_{g1}\ p_{g2}\ \dots\ p_{gd}\Big{]}^{T} \tag{8}\]  
The particle's velocity and position are updated in Equations (9) and (10), respectively, as follows:  
\[V_{i}(t+1)=V_{i}(t)+c_{1}r_{1}(P_{i}-X_{i}(t))+c_{2}r_{2}\big{(}P_{g}-X_{i}(t )\big{)} \tag{9}\]  
\[X_{i}(t+1)=X_{i}(t)+\ \Delta t\ V_{i}(t+1) \tag{10}\]  
```
Step 1: Setting population size and random initialisation of particle positions and velocities. Step 2: Evaluation of particles fitness according to required objective function Step 3: Evaluation of _personal best_ solution of each particle Step 4: Evaluation of global best solution Step 5: Velocity update Step 6: Position update Step 7: Repeat Steps 2-6 until termination criteria met. ```  
**Algorithm 1** Classical PSO algorithm  
The PSO algorithm will be terminated once the termination criterion is met; whether it is a maximization or minimization problem, the terminal criterion is usually the number of iterations that is defined by the user. The selection of PSO control parameters is a critical step that can negatively impact the optimization process and may result in premature convergence and narrow down the search diversity and local maxima traps [29].