Revision 347362213 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 maxima]], which would cause a premature [[limit of a sequence|convergence]] and would lead the optimization algorithm to fail to find the [[global optimum]]. 

In one type of this RPSO-class algorithm, 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>(different at each iteration)
*<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 repulsion property is realized for a negative <math>b</math>.
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. 
This type of RPSO was first introduced as an application to a robust estimation problem <ref name="RPSO application">{{cite web | url = http://portal.acm.org/citation.cfm?id=998671.999056 | title = Urfalioglu, O., Robust estimation of camera rotation, translation and focal length at high outlier rates, CRV04}}</ref>.
==References==
<references/>

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

==External links==
*[http://psotoolbox.sourceforge.net Particle Swarm Optimization toolbox] An open source PSO toolbox written in Matlab. *[http://www.particleswarm.info Particle Swarm Central ]
*[http://www1.webng.com/economics FORTRAN Codes for RPSO] FORTRAN 77 Codes for Repulsive Particle Swarm Optimization with a large number of test problems


[[Category:Optimization algorithms]]
[[Category:Evolutionary algorithms]]
[[Category:Stochastic algorithms]]