The delta updater implements a specific position and velocity update procedure. More...
#include <delta_updater.h>
Public Member Functions | |
DeltaUpdaterTCS (double delta) | |
The constructor, where the fixed bound for sum of absolute velocities and distance to the global optimum can be specified. More... | |
DeltaUpdaterTCS (double initial_delta, double gamma) | |
The constructor, where the adaptable bound for the sum of absolute velocities and distance to the global optimum can be specified. More... | |
virtual std::vector< bool > | DimensionsOfDeltaUpdate (Particle *p) |
Determines in which dimensions the delta update should be applied. More... | |
std::string | GetName () |
Returns a string representation of this object. More... | |
Public Member Functions inherited from highprecisionpso::DeltaUpdater | |
DeltaUpdater (double delta) | |
The constructor, where the fixed bound for sum of absolute velocities and distance to the global optimum can be specified. More... | |
DeltaUpdater (double initial_delta, double gamma) | |
The constructor, where the adaptable bound for the sum of absolute velocities and distance to the global optimum can be specified. More... | |
void | LoadData (std::ifstream *input_stream, ProgramVersion *version_of_stored_data) |
Loads data to reset the state of the position and velocity updater to the state which was stored. More... | |
std::vector< std::vector< unsigned long long > > | NumberOfDeltaUpdates () |
Returns the number of delta updates per particle and dimension. More... | |
void | StoreData (std::ofstream *output_stream) |
Stores the current state of this position and velocity updater such that it can completely restore the current state with this data. More... | |
void | Update (Particle *p) |
Processes a single movement of the specified particle. More... | |
Public Member Functions inherited from highprecisionpso::PositionAndVelocityUpdater | |
virtual | ~PositionAndVelocityUpdater () |
Additional Inherited Members | |
Protected Attributes inherited from highprecisionpso::DeltaUpdater | |
mpf_t * | delta_ |
const double | gamma_ |
const double | initial_delta_ |
Detailed Description
The delta updater implements a specific position and velocity update procedure.
In most cases this updater acts according to the standard movement equations, but if the velocity and the distance to the global attractor drops below some bound the velocity is reinitialized with small random values. This variant is described in the paper "Particle Swarm Optimization Almost Surely Finds Local Optima" by M. Schmitt and R. Wanka published in Journal TCS 2014.
Constructor & Destructor Documentation
highprecisionpso::DeltaUpdaterTCS::DeltaUpdaterTCS | ( | double | delta | ) |
The constructor, where the fixed bound for sum of absolute velocities and distance to the global optimum can be specified.
- Parameters
-
delta The bound for velocities and the distance to the global attractor.
highprecisionpso::DeltaUpdaterTCS::DeltaUpdaterTCS | ( | double | initial_delta, |
double | gamma | ||
) |
The constructor, where the adaptable bound for the sum of absolute velocities and distance to the global optimum can be specified.
The bound is initially the value of initial_delta. For each usage of the non standard movement equations the bound is multiplied by gamma.
- Parameters
-
initial_delta The initial bound for velocities and the distance to the global attractor. gamma The scaling factor after each non standard move of a particle.
Member Function Documentation
|
virtual |
Determines in which dimensions the delta update should be applied.
If the sum of absolute values of the velocity plus the distance to the global attractor drops below a bound for all particles in the current dimension, then the velocity is reinitialized with some small values. In all other cases the standard movement equations for the particle swarm algorithm are used. This variant is described in the paper "Particle Swarm Optimization Almost Surely Finds Local Optima" by M. Schmitt and R. Wanka published in Journal TCS 2014.
- Parameters
-
p The particle, which should be updated.
- Returns
- A boolean vector, which contains a truth value for each dimension specifying whether the delta update should be applied to the respective dimension.
Reimplemented from highprecisionpso::DeltaUpdater.
|
virtual |
Returns a string representation of this object.
- Returns
- The name of the object.
Reimplemented from highprecisionpso::DeltaUpdater.
The documentation for this class was generated from the following file:
- src/position_and_velocity_updater/delta_updater.h