EvolvingObjects
|
Constricted velocity performer for particle swarm optimization. More...
#include <eoConstrictedVelocity.h>
Public Types | |
typedef POT::ParticleVelocityType | VelocityType |
Public Member Functions | |
eoConstrictedVelocity (eoTopology< POT > &_topology, const VelocityType &_coeff, const VelocityType &_c1, const VelocityType &_c2, eoRealVectorBounds &_bounds, eoRealBoundModifier &_bndsModifier, eoRng &_gen=rng) | |
Full constructor: Bounds and bound modifier required. | |
eoConstrictedVelocity (eoTopology< POT > &_topology, const VelocityType &_coeff, const VelocityType &_c1, const VelocityType &_c2, eoRealVectorBounds &_bounds, eoRng &_gen=rng) | |
Constructor: No bound updater required <-> fixed bounds. | |
eoConstrictedVelocity (eoTopology< POT > &_topology, const VelocityType &_coeff, const VelocityType &_c1, const VelocityType &_c2, eoRng &_gen=rng) | |
Constructor: Neither bounds nor bound updater required <-> free velocity. | |
void | operator() (POT &_po, unsigned _indice) |
Evaluate the new velocities of the given particle. | |
void | updateNeighborhood (POT &_po, unsigned _indice) |
Update the neighborhood of a particle. | |
eoTopology< POT > & | getTopology () |
eoTopology<POT> getTopology | |
Protected Attributes | |
eoTopology< POT > & | topology |
const VelocityType & | c1 |
const VelocityType & | c2 |
const VelocityType & | coeff |
eoRng & | gen |
eoRealVectorBounds & | bounds |
eoRealBoundModifier & | bndsModifier |
eoDummyRealBoundModifier | dummyModifier |
Constricted velocity performer for particle swarm optimization.
Derivated from abstract eoVelocity, At step t+1 : v(t+1)= C * [ v(t) + c1*r1 * (xbest(t)-x(t)) + c2*r2 * (gbest(t) - x(t)) ] C is fixed for all the particles and all the generations. Default C = 2 * k / abs(2 - P - sqrt (P*(P-4))) (ci and C given;P=c1*r1 + c2*r2 ; Ri chosen at random * in [0;1])
Definition at line 46 of file eoConstrictedVelocity.h.
eoConstrictedVelocity< POT >::eoConstrictedVelocity | ( | eoTopology< POT > & | _topology, |
const VelocityType & | _coeff, | ||
const VelocityType & | _c1, | ||
const VelocityType & | _c2, | ||
eoRealVectorBounds & | _bounds, | ||
eoRealBoundModifier & | _bndsModifier, | ||
eoRng & | _gen = rng |
||
) | [inline] |
Full constructor: Bounds and bound modifier required.
_topology | - The topology to get the global/local/other best |
_coeff | - The constriction coefficient |
_c1 | - The first learning factor used for the particle's best. Type must be POT::ParticleVelocityType |
_c2 | - The second learning factor used for the local/global best(s). Type must be POT::ParticleVelocityType |
_bounds | - An eoRealBaseVectorBounds: real bounds for real velocities. If the velocities are not real, they won't be bounded by default. Should have a eoBounds ? |
_bndsModifier | - An eoRealBoundModifier used to modify the bounds (for real bounds only). |
_gen | - The eo random generator, default=rng |
Definition at line 66 of file eoConstrictedVelocity.h.
eoConstrictedVelocity< POT >::eoConstrictedVelocity | ( | eoTopology< POT > & | _topology, |
const VelocityType & | _coeff, | ||
const VelocityType & | _c1, | ||
const VelocityType & | _c2, | ||
eoRealVectorBounds & | _bounds, | ||
eoRng & | _gen = rng |
||
) | [inline] |
Constructor: No bound updater required <-> fixed bounds.
_topology | - The topology to get the global/local/other best |
_coeff | - The constriction coefficient |
_c1 | - The first learning factor used for the particle's best. Type must be POT::ParticleVelocityType |
_c2 | - The second learning factor used for the local/global best(s). Type must be POT::ParticleVelocityType |
_bounds | - An eoRealBaseVectorBounds: real bounds for real velocities. If the velocities are not real, they won't be bounded by default. Should have a eoBounds ? |
_gen | - The eo random generator, default=rng |
Definition at line 91 of file eoConstrictedVelocity.h.
eoConstrictedVelocity< POT >::eoConstrictedVelocity | ( | eoTopology< POT > & | _topology, |
const VelocityType & | _coeff, | ||
const VelocityType & | _c1, | ||
const VelocityType & | _c2, | ||
eoRng & | _gen = rng |
||
) | [inline] |
Constructor: Neither bounds nor bound updater required <-> free velocity.
_topology | - The topology to get the global/local/other best |
_coeff | - The constriction coefficient |
_c1 | - The first learning factor used for the particle's best. Type must be POT::ParticleVelocityType |
_c2 | - The second learning factor used for the local/global best(s). Type must be POT::ParticleVelocityType |
_gen | - The eo random generator, default=rng |
Definition at line 113 of file eoConstrictedVelocity.h.
void eoConstrictedVelocity< POT >::operator() | ( | POT & | _po, |
unsigned | _indice | ||
) | [inline, virtual] |
Evaluate the new velocities of the given particle.
Need an indice to identify the particle into the topology. Steps are :
_po | - A particle |
_indice | - The indice (into the topology) of the given particle |
Implements eoBF< POT &, unsigned, void >.
Definition at line 136 of file eoConstrictedVelocity.h.
References eoRealVectorBounds::adjust_size(), eoRealBaseVectorBounds::minimum(), and eoRng::uniform().
eoTopology<POT>& eoConstrictedVelocity< POT >::getTopology | ( | ) | [inline, virtual] |
eoTopology<POT> getTopology
Implements eoVelocity< POT >.
Definition at line 179 of file eoConstrictedVelocity.h.