## 6 Sidelobe Reduction via Optimizing the Sensor Selection Algorithm
### The Robust Canonical Particle Swarm
\right)^{\vec{x}_{|N|N|}} \tag{24}\]  
Hence, the best position is defined as the local or personal-best \(\vec{x}^{\prime}_{p_{best}}\) achieved by the evaluation of the objective function for collaborative sensors during the first iteration of selection as follows. \[\mathbf{p}=\left( \begin{array}{ccccc}&p_{11}&p_{12}&\ldots&p_{1|N|}\\ \end{array} \right)^{p_{|N|N|}} \tag{25}\]  
Moreover, each particle knows its \(\vec{x}^{\prime}_{p_{best}}\) best value so far, which corresponds to experience of each particle. Among all iteration of all collaborative clusters, a new position is considered to be a global-best position \(\vec{x}^{\prime}_{g_{best}}\) and is defined by  
\[\mathbf{G}=[g_{1},g_{1},\ldots,g_{|N|}] \tag{26}\]  
Moreover, each particle may either achieves a better position or does not by adjusting its velocity based on the evaluation of the objective function defined in Equation (20) in the previous position as well as the best previous positions of all particles. Specifically, each particle tries to adjust the velocity based on the following information to modify its position and refine its own weight:  
1. The distance between the current position and the \(\vec{x}^{\prime}_{p_{best}}\)
2. The distance between the current position and the \(\vec{x}^{\prime}_{g_{best}}\)  
After a certain number of iterations, \(\epsilon\) all particles of the swarm converge towards positions that are optimal either locally or globally. The degree of influence among the personal and global-best solutions should be defined by coefficients. For instance, the personal position is defined by coefficient \(\phi_{1}\), meanwhile the influence of the best global or neighborhood exchange solution is defined by a coefficient \(\phi_{2}\). Accordingly, updating the velocity and position of an \(\kappa\)th particle at \(\epsilon\)th iteration is defined mathematically as  
\[\vec{v}^{\prime+1}_{t} :=[\omega*v^{\prime}_{\kappa}] \tag{27a}\] \[+[\phi_{1}*rand()\otimes(\vec{x}^{\prime}_{p_{best}}-\vec{x}^{ \prime}_{\kappa})]\] (27b) \[+[\phi_{2}*rand()\otimes(\vec{x}^{\prime}_{g_{best}}-\vec{x}^{ \prime}_{\kappa})] \tag{27c}\]  
The position of the \(\kappa\)th particle/sensor for the next iteration is updated such that \(\vec{x}^{\prime+1}_{\kappa}=\vec{x}^{\prime}_{\kappa}+v^{\prime+1}_{\kappa}\), where \(\phi_{1}\) is the cognitive parameter, \(\phi_{2}\) is the social parameter, \(\omega\) is defined as the inertia weight index that tries to explore a new cluster, and \(rand()\) is a random number within [0,1]. The ratio of \(\phi_{1}:\phi_{2}\) determines the importance of \(\vec{x}^{\prime}_{p_{best}}\) and to \(\vec{x}^{\prime}_{g_{best}}\). There are many may to implement the constriction coefficient \(\xi\). One of the simplest methods is shown in Equation (27), whereas the first term of expresses the previous velocity of the information vector (in other word the personal-best vector before starting to change particles/sensors information with their neighbors). Meanwhile, the second and third terms are used to change or update the velocity of the information vector from personal-best vector to global-best. Without the second and third terms, the vector will keep on moving in the same direction until it hits the boundary. The inertia weight \(\omega\), regulates the influence of the previous velocity \(v^{\prime}\) on the new velocity \(v^{\prime+1}\), and it should not be confused with beamforming coefficient weights, whereas the inertia weight is a constriction coefficient, which helps to balance global exploration and local exploitation, and thus helps in preventing velocity explosions. It is defined as follows [41]:  
\[\omega=\frac{2}{\phi+\sqrt{\phi^{2}-4\phi}},\quad\text{with}\quad\phi=\phi_{1 }+\phi_{2}>4 \tag{28}\]The [PERSON]'s constriction method is used [45], where \(\phi\) is commonly set to 4.1 which helps to control the convergence of particles, whereas \(\phi_{1}=\phi_{2}=2.05\), and \(\omega\) is set as a constant value.