Algorithms - Particle Swarm Optimization (PSO)

The OSTRICH particle swarm optimization (PSO) algorithm

Initial Publication:

Modified:

The following optional group will configure the PSO algorithm and will be processed if [ProgramType] is set to “ParticleSwarm”.

BeginParticleSwarm
SwarmSize            
NumGenerations       
ConstrictionFactor   
CognitiveParam       
SocialParam          
InertiaWeight        
InertiaReductionRate 
InitPopulationMethod 
ConvergenceVal       
EndParticleSwarm
BeginParticleSwarm
SwarmSize            20
NumGenerations       50
ConstrictionFactor   1.00
CognitiveParam       2.00
SocialParam          2.00
InertiaWeight        1.20
InertiaReductionRate 0.10
InitPopulationMethod Random
ConvergenceVal       1.00E-4
EndParticleSwarm

Figure 1: General Format (left) and Example (right) of the PSO Algorithm Group

Where BeginParticleSwarm and EndParticleSwarm are parsing tags that wrap a set of algorithm configuration variables. The variables are described below:

  • SwarmSize: The size of the particle swarm. The default value is 20.
  • NumGenerations: The number of generations in the PSO. The default value is 50.
  • ConstrictionFactor: The value of χ¬ in the PSO algorithm. Setting¬ less than 1.00 will restrict the searchable design space after each iteration and accelerate convergence, but can lead to entrapment in local minima. The default value is 1.00.
  • CognitiveParam: The weight given to the local knowledge of each particle. High values (relative to the SocialParam) will cause particles to bias their search to the area surrounding each particles local best. The default value is 2.00.
  • SocialParam: The weight given to the global (social) knowledge of each particle. High values (relative to the CognitiveParam) will cause particles to bias their search to the area surrounding the global best. The default value is 2.00.
  • InertiaWeight: The initial weight given to the velocity used in each particle’s previous generation of movement. High values tend to cause particles to ’overshoot’ their destination, which is desirable in initial generations because it allows for more complete exploration of the design space. The default is 1.2.
  • InertiaReductionRate: Relative reduction rate for the inertia weight. As the optimization proceeds, the inertia weight is reduced by InertiaReductionRate × 100% of its current value. This reduces overshoot over successive generations such that late-generation searches are clustered around the global best solution. If this value is set to linear, the inertia weight will be linearly reduced from its initial value to a final value (i.e. at the last generation) of zero. The default value is 0.10.
  • InitPopulationMethod: This variable controls how the algorithm configures the initial swarm of candidate solutions. Supported values are: “random”, “LHS” (Latin Hypercube Sampling), and “QuadTree”. The default value is “random”.
  • ConvergenceVal: This is the convergence value for the algorithm. If the relative difference between the current minimum and the median of the latest generation is less than or equal to this value, the algorithm will halt. The default value is 1.00E-4.

References

Beielstein, T., Parsopoulos, K. E.,Vrahatis, M. N. 2002. Tuning PSO parameters through sensitivity analysis. Technical Report, Reihe Computational Intelligence CI 124\/02. Collaborative Research Center, Department of Computer Science, University of Dortmund (available online at http://ls11-www.cs.uni-dortmund.de/people/tom/).

Katare, S., Kalos, A.,West, D. Year. "A hybrid swarm optimizer for efficient parameter estimation." Paper presented at the Proceedings of the IEEE Congress on Evolutionary Computation (CEC2004), vol. 1, 2004.

Kennedy, J.,Eberhart, R. C. 1995. Particle swarm optimization, Piscataway, NJ.

Kennedy, J., Eberhardt, R. C.,Shi, Y. 2001. Swarm Intelligence. Morgan Kaufmann, San Francisco(CA).