pass::particle_swarm_optimisation Class Reference

#include <particle_swarm_optimisation.hpp>

Inheritance diagram for pass::particle_swarm_optimisation:
Collaboration diagram for pass::particle_swarm_optimisation:

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()

pass::particle_swarm_optimisation::particle_swarm_optimisation ( )
noexcept

Initializes an object of this type.

Member Function Documentation

◆ optimise()

pass::optimise_result pass::particle_swarm_optimisation::optimise ( const pass::problem problem)
virtual

Optimises problem, storing the result and performance characteristics of the optimisation in the returned optimise_result.

Compute the new velocity

Implements pass::optimiser.

Here is the call graph for this function:

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: