Particle Swarm Optimization Article Index for
Particle
Website Links For
Particle Swarm
 

Information About

Particle Swarm Optimization




This is Modeled by particles in Multidimensional Space that have a position and a Velocity . These particles are flying through hyperspace and remember the best position that they have seen. Members of a swarm communicate good positions to each other and adjust their own position and velocity based on these good positions. There are two main ways this communication is done:
  • a swarm best that is known to all

  • local bests are known in neighborhoods of particles

  • Updating the position and velocity is done through the following formulas at each iteration:

  • x \leftarrow x + v

  • v \leftarrow wv + c_1 r_1 (\hat{x}-x) + c_2 r_2 (\hat{x}_g-x)

  • --- w is the inertial constant. Good values are usually slightly less than 1.

  • --- c_1 and c_2 are constants that say how much the particle is directed towards good positions. Good values are usually right around 1.

  • --- r_1 and r_2 are random values in the range 1 .

  • --- \hat{x} is the best the particle has seen.

  • --- \hat{x}_g is the global best seen by the swarm. This can be replaced by \hat{x}_l, the local best, if neighborhoods are being used.



ALGORITHM


  • Initialize x and v of each particle to a random value. The range of these values may be domain specific.

  • Initialize each \hat{x} to the current position.

  • Initialize \hat{x}_g to the position that has the best fitness in the swarm.


  • Loop while the fitness of \hat{x}_g is below a threshold and the number of iterations is less than some predetermined maximum.

  • --- For each particle do the following:


  • -- Update x according to the above equation.


  • -- Calculate fitness for new position.


  • -- If it is better than the fitness of \hat{x}, replace \hat{x}.


  • -- It it is better than the fitness of \hat{x}_g, replace \hat{x}_g.


  • -- Update v according to the above equation.



SEE ALSO



EXTERNAL LINKS







  • CILib - GPLed computational intelligence simulation and research environment written in Java, includes various PSO implementations