## 2 Standard PSO algorithm  
The standard PSO algorithm can be condensed in the following updating rule:  
\[ \begin{array}{l}\mathbf{u}_{t+1}^{k}=r_{0}\,c_{0}\,\mathbf{u}_{t}^{k}+r_{1} \,c_{1}\left(\mathbf{p}_{t}^{k}-\mathbf{x}_{t}^{k}\right)+r_{2}\,c_{2}\left( \mathbf{p}_{t}^{g}-\mathbf{x}_{t}^{k}\right)\\ \mathbf{x}_{t+1}^{k}=\mathbf{x}_{t}^{k}+\mathbf{u}_{t+1}^{k},\quad\text{ for }\ k=1,...,m,\quad t=1,...,s.\end{array}  \tag{1}\]  
where:  
* \(\mathbf{x}_{t+1}^{k}\): vector representing the position, in the \(n\)-dimensional problem space, of the \(k\)-th particle in a swarm of \(m\) particles, at the time-step \(t+1\) of \(s\) total steps;
* \(\mathbf{u}_{t+1}^{k}\): displacement (often called velocity) of the particle \(\mathbf{x}^{k}\) from its position \(\mathbf{x}_{t}^{k}\) at the time step \(t\) to its updated position \(\mathbf{x}_{t+1}^{k}\) at the time-step \(t+1\);
* \(\mathbf{p}_{t}^{k}\): vector recording the best position occupied so far by the \(k\)-th particle (personal best position); in a minimization problem for the objective function \(f(\mathbf{x})\), \(\mathbf{p}_{t}^{k}\) is updated as follows: \[ \begin{array}{l}\mathbf{p}_{t+1}^{k}=\begin{cases}\mathbf{p}_{t}^{k},&\text{ if }\ f\Big{(}\mathbf{x}_{t+1}^{k}\Big{)}\geq f\Big{(}\mathbf{p}_{t}^{k}\Big{)},\\ \mathbf{x}_{t+1}^{k},&\text{if }f\Big{(}\mathbf{x}_{t+1}^{k}\Big{)}<f\Big{(} \mathbf{p}_{t}^{k}\Big{)};\end{cases}\end{array} \] (2)
* \(\mathbf{p}_{t}^{g}\): vector recording the best position occupied so far by any particle in the swarm (global best position); in a minimization problem for the objective function \(f(\mathbf{x})\), \(\mathbf{p}_{t}^{g}\) is updated as follows: \[\mathbf{p}_{t+1}^{g}\in\Big{\{}\mathbf{p}_{t+1}^{k},\ k=1,...,m\Big{\}}\quad \text{such that}\quad f\Big{(}\mathbf{p}_{t+1}^{g}\Big{)}=\min_{k=1,...,m}f \Big{(}\mathbf{p}_{t+1}^{k}\Big{)};\] (3)
* \(r_{0}\), \(r_{1}\), \(r_{2}\): independent random coefficients, uniformly distributed in the range [0,1];
* \(c_{0}\), \(c_{1}\), \(c_{2}\): real coefficients called respectively _inertial_, _cognition_ and _social parameter_. Normally, the computation is stopped once \(t\)=\(s\) and the solution is the best individual found so far, _i.e._\(\mathbf{p}_{s}^{g}\), while the minimum so obtained is \(f\left(\mathbf{p}_{s}^{g}\right)\). Basically, the PSO standard algorithm updates the position of each particle using a linear combination of the previous velocity, the distance of the particle from its historical best position and its distance from the global best position found so far. The use of the random coefficients \(r_{0}\), \(r_{1}\), \(r_{2}\), together with the fact that usually the original swarm is randomly generated, gives a stochastic nature to the algorithm. Anyway, this stochastic nature is weighted, in some way, by the presence of the coefficients \(c_{0}\), \(c_{1}\), \(c_{2}\): their value has a paramount importance in the convergence, stability and search domain exploration of the algorithm. It has been proved in several cases that for hard minimization problems only a good choice of these parameters can determine the success of the algorithm, so their choice is of the greatest importance. Unfortunately, the best choice of these parameters is function-dependent, and sometimes it is difficult to found a suitable set of parameters. For this reason, one can think to update also the coefficients \(c_{0}\), \(c_{1}\) and \(c_{2}\), so as to improve the convergence of the algorithm towards a global minimum by a variable compromise between the exploration and exploitation of the search space: in a first stage, exploration can be preferred, in order to improve the probability of exploring interesting parts of the search space, while in a later stage, a better exploitation of the results found so far can improve the rapidity and stability of the convergence towards good points. Generally speaking, high values of the coefficients \(c_{0}\) and \(c_{1}\) improve exploration capability, while increasing values of \(c_{2}\) improves stability and rapidity of convergence.