The Particle Swarm Optimization (PSO) algorithm is a biologically based optimization algorithm that is well suited to the optimization of non-differentiable and multi-modal functions. These types of functions are difficult for many optimization techniques to deal with. And, PSO converges more quickly than many other search algorithms that can deal with these ill-behaved functions.

Despite its advantages over other optimization methods, PSO does suffer from certain drawbacks. Most notably, it can become trapped in local minima and converge to suboptimal solutions. This possibility can be decreased by changing the way in which randomness affects the particles. In the original PSO, the velocity of the particles was updated by

vi = vi + c1 * rand (Global Best xi – xi) + c2 * rand * (Personal Best xi – xi)

Where rand represents a random variable uniformly distributed on the interval ⌊0,1⌋. Through different experiments, it has been found that the optimal values of c1 and c2 tend to be between 1.5 and 1.7. These give means for cj rand between .75 and .85 and standard deviations between .433 and .491.

In Gaussian Particle Swarm Optimization (GPSO), the uniform random variables are replaced by the absolute value of Gaussian random variables. From a statistical point of view, this has the effect of changing the mean to .798 and the standard deviation to .603. More importantly, this also provides the data with a significant tail: approximately five percent of the randomly selected numbers are greater than 2, as compared to none under the uniform distribution. By leaving the mean relatively unchanged, we have not slowed down the convergence. But, by increasing the standard deviation and probability of large values, we have increased the chances of escaping from local minima by overshooting the best value found so far.

Gaussian PSO has many applications as a method for optimizing nonlinear functions. It can be used to determine IIR filter coefficients in echo cancellation, to determine optimal weights in antenna arrays for a desired radiation pattern, or to extract a signal whose general type is known from a noisy signal, among other applications.