Revision 84117867 of "Repulsive particle swarm optimization" on enwiki

In [[mathematics]], specifically in [[optimization (mathematics)|optimization]], '''repulsive particle swarm optimization'''  ('''RPSO''') is a [[global optimization]] [[algorithm]]. It belongs to the class of [[stochastic|stochastic]] [[evolutionary algorithm|evolutionary]] global optimizers, and is a variant of [[particle swarm optimization]] (PSO). 

There are several different realizations of RPSO. Common to all realizations is the repulsion between particles. This can prevent the [[swarm intelligence|swarm]] being trapped in [[local minimum|local minima]], which would cause a premature [[convergence|convergence]] and would lead the optimization algorithm to fail to find the [[global optimum]]. 

In RPSO the future [[velocity]] <math>\mathbf{v}_{\mathrm{next}}</math> of a particle at position <math>\mathbf{x}</math> with a recent velocity <math>\mathbf{v}</math> is calculated by

:<math>\mathbf{v}_{\mathrm{next}} = \omega \mathbf{v} + a \ \chi_1 \ (-\mathbf{x}+\hat{\mathbf{x}})
                     + b \ \chi_2 \ \omega (-\mathbf{x}+\hat{\mathbf{y}})
                     + c \ \chi_3 \ \omega \ \mathbf{z}</math>

where 
*<math>\chi_1,\ \chi_2,\ \chi_3</math> : random numbers <math>\in [0,\ 1]</math>
*<math>\omega</math> : inertia weight <math>\in [0.01,\ 0.7]</math>
*<math>\hat{\mathbf{x}}</math> : best position of a particle
*<math>\hat{\mathbf{y}}</math> : best position of a randomly chosen other particle from within the swarm
*<math>\mathbf{z}</math> : a random velocity vector
*<math>a,b,c</math> : constants

The main difference between PSO and RPSO is the propagation mechanism to determine new positions for a particle in the search space. 
RPSO is capable of finding global optima in more complex [[search space|search spaces]]. On the other hand, compared to PSO it may be slower on certain types of optimization problems.

==See also==
*[[Particle swarm optimization]]
*[[Ant colony optimization]]
*[[Genetic algorithm]]
*[[Swarm intelligence]]
*[[Differential evolution]]

==External links==
*[http://psotoolbox.sourceforge.net Particle Swarm Optimization toolbox] An open source PSO toolbox written in Matlab. ([http://sourceforge.net/projects/psotoolbox sourceforge home for the project])
*[http://www.particleswarm.info Particle Swarm Central ]

[[Category:Optimization algorithms]]