mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
0025663: Expand math_PSO class description
math_PSO class description extended.
This commit is contained in:
parent
6b0e8bd1a9
commit
55b05039a4
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user