## 3 New Procedural Binary Particle Swarm Optimization (NPBPSO)  
### Binary Particle Swarm Optimization  
Binary particle swarm optimization was devised by [PERSON] and [PERSON] in 1995 [35; 36]. This technique produces a swarm of particles through a random process, each of which stands for a potential solution to the problem. Thus, to find the best particle, the approach must search iteratively using two equations [37]. The first is the particle velocity equation (speed equation)  
\[V_{ij}^{t+1}=WV_{ij}^{t}+c_{1}r_{1j}\Big{(}pbest_{i}^{t}-X_{ij}^{t}\Big{)}+c_{2 }r_{2j}\Big{(}gbest_{i}^{t}-X_{ij}^{t}\Big{)} \tag{1}\]  
where \(i\) denotes the particle number; \(j\): the number of elements inside the particle; \(V_{ij}^{t}\): the velocity of the particle \(i\) in the previous instant \(t\); \(V_{ij}^{t+1}\): the velocity of the particle \(i\) in the next instant \(t+1\); \(pbest_{i}^{t}\): the most appropriate value reached by the \(i\)-particle until the iteration \(t\); \(gbest_{i}^{t}\): the most appropriate value within the swarm has been reached up to repetition \(t\),  
\[gbest_{i}^{t}=max\Big{(}pbest_{1}^{t}\ pbest_{2}^{t}\dots pbest_{55}^{t}\Big{)}\]  
\(r_{1j}\) and \(r_{2i}\): random values to ensure diversity of investigation and fall within the range \([0,1]\); \(X_{ij}^{t}\): the position of the particle i in the previous instant \(t\); \(W\): a variable representing a percentage of the particle velocity at the previous moment; \(c_{1}\) and \(c_{2}\) acceleration variables that control the speed of reaching the best solution. In applications that use this algorithm, the variables \(c_{1}\) and \(c_{2}\) and \(W\) are calibrated experimentally [38; 39]. \(W\)'s value is constrained to the range [0.3-0.9], while the fields for the two variables \(\epsilon_{1}\) and \(\epsilon_{2}\) are [0.4-2]. As a result, a series of experiments were carried out to arrive at the correct values. The probability of a change in the values of the constituent parts of the particle is determined by Equation (1). Equation (2) represents the particle's new state. \[X_{ij}(t+1)=\left\{ \begin{array}{ll}1\ \ \text{if}&u_{ij}<\text{\emph{sig}}\ \ \Big{[}v_{ij}\ (t+1)\Big{]}\\ 0\ \ \text{if}&u_{ij}\ \geq\text{\emph{sig}}\ \ \Big{[}v_{ij}\ (t+1)\Big{]} \end{array} \right. \tag{2}\]  
\(u_{ij}\): a random value within the interval [0, 1] generated according to an equal probability function at the beginning of each iteration. \[sig\big{(}v_{ij}(t)\big{)}=\frac{1}{1+e^{-v_{ij}(t)}} \tag{3}\]  
Sigma function \(sig(v)\) aims to narrow the numeric values into confined space [0, 1] in order to improve the performance of the algorithm [40]. Figure 1 shows a systematic diagram for working of the binary optimization particle swarm. The algorithm used here operates differently than neural networks. It begins by creating a swarm of potential solutions, referred to as \"particles.\" With the use of two mathematical equations, the speed equation and the new state equation, the algorithm continually enhances these solutions. Following each iteration, an evaluation function is used to assess the resulting solutions and identify the most optimal one. For the particle, after each iteration, all the resulting \"particle\" solutions are evaluated using a special function called the evaluation function, by which the best particle \"optimal solution\" is reached. The data in this algorithm are not divided into \"training, checking, testing\" groups as it is in the neural networks' algorithm. Rather, all the data are applied to the algorithm, and through the evaluation function, we can identify the best particle, the \"best solution\", and ensure that the algorithm is able to reach the optimal solution. Even though the binary particle swarm optimization algorithm shows good accuracy regarding to other AI techniques such as ANN, it still suffers from the phenomenon of immature convergence (falling into a local solution) in which the search process may get stuck in a region that contains an optimal value, which results in a loss of diversity [41].