diff --git a/src/math/math_PSO.hxx b/src/math/math_PSO.hxx index 308c70b70d..45554c0607 100644 --- a/src/math/math_PSO.hxx +++ b/src/math/math_PSO.hxx @@ -25,6 +25,33 @@ class math_PSOParticlesPool; //! In this class implemented variation of Particle Swarm Optimization (PSO) method. //! A. Ismael F. Vaz, L. N. Vicente //! "A particle swarm pattern search method for bound constrained global optimization" +//! +//! Algorithm description: +//! Init Section: +//! At start of computation a number of “particles” are placed in the search space. +//! Each particle is assigned a random velocity. +//! +//! Computational loop: +//! The particles are moved in cycle, simulating some “social” behavior, so that new position of +//! a particle on each step depends not only on its velocity and previous path, but also on the +//! position of the best particle in the pool and best obtained position for current particle. +//! The velocity of the particles is decreased on each step, so that convergence is guaranteed. +//! +//! Algorithm output: +//! Best point in param space (position of the best particle) and value of objective function. +//! +//! Pros: +//! One of the fastest algorithms. +//! Work over functions with a lot local extremums. +//! Does not require calculation of derivatives of the functional. +//! +//! Cons: +//! Convergence to global minimum not proved, which is a typical drawback for all stochastic algorithms. +//! The result depends on random number generator. +//! +//! Warning: PSO is effective to walk into optimum surrounding, not to get strict optimum. +//! Run local optimization from pso output point. +//! Warning: In PSO used fixed seed in RNG, so results are reproducible. class math_PSO { public: