#include <particle_swarm_optimisation.hpp>
Public Member Functions | |
particle_swarm_optimisation () noexcept | |
virtual optimise_result | optimise (const pass::problem &problem) |
Public Member Functions inherited from pass::optimiser | |
optimiser (const std::string &name) | |
Public Attributes | |
arma::uword | swarm_size |
double | inertia |
double | cognitive_acceleration |
double | social_acceleration |
double | neighbourhood_probability |
Public Attributes inherited from pass::optimiser | |
double | acceptable_fitness_value |
arma::uword | maximal_iterations |
arma::uword | maximal_evaluations |
std::chrono::nanoseconds | maximal_duration |
const std::string | name |
Detailed Description
Implements the Standard Particle Swarm Optimisation 2011 algorithm (http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6557848)
The initialisation variables can be found in (http://clerc.maurice.free.fr/pso/SPSO_descriptions.pdf)
Constructor & Destructor Documentation
◆ particle_swarm_optimisation()
|
noexcept |
Initializes an object of this type.
Member Function Documentation
◆ optimise()
|
virtual |
Optimises problem
, storing the result and performance characteristics of the optimisation in the returned optimise_result
.
Compute the new velocity
Implements pass::optimiser.
Member Data Documentation
◆ cognitive_acceleration
double pass::particle_swarm_optimisation::cognitive_acceleration |
Particles are pulled towards their personal best found parameter with a strength
Is initialized to 0.5 + log(2)
.
◆ inertia
double pass::particle_swarm_optimisation::inertia |
Controls the inertia of the particles:
Is initialized to 1 / (2 * log(2))
.
◆ neighbourhood_probability
double pass::particle_swarm_optimisation::neighbourhood_probability |
Probability of a particle to be in the neighbourhood of another particle. Must be in range [0, 1]
.
Is initialized to 1 - (1 - 1/population_size)^3
. Based on Clerc description (Method 2) http://clerc.maurice.free.fr/pso/random_topology.pdf
◆ social_acceleration
double pass::particle_swarm_optimisation::social_acceleration |
Particles are pulled towards the global best found parameter with a strength
Is initialized to 0.5 + log(2)
.
◆ swarm_size
arma::uword pass::particle_swarm_optimisation::swarm_size |
The number of particles used during optimisation.
Is initialized to 40
.
The documentation for this class was generated from the following files:
- /Users/romeo/Desktop/PASS/include/pass_bits/optimiser/particle_swarm_optimisation.hpp
- /Users/romeo/Desktop/PASS/src/optimiser/particle_swarm_optimisation.cpp