#include <CovarianceMatrixAdaptation.hpp>
Public Member Functions | |
CovarianceMatrixAdaptation (EnergyInterface &energy, float_t sigma, float_t min_update, std::size_t lambda) | |
CovarianceMatrixAdaptation (EnergyInterface &energy, float_t sigma, float_t min_update) | |
bool | minimize (size_t n_max_steps, size_t &n_actual_steps) |
This class attempts (module programming errors) to implement the covariance matrix adaptation as in Nikolaus Hansen, "The CMA Evolution Strategy: A Tutorial".
imaging::CovarianceMatrixAdaptation::CovarianceMatrixAdaptation | ( | EnergyInterface & | energy, | |
float_t | sigma, | |||
float_t | min_update, | |||
std::size_t | lambda | |||
) |
Construct a CMA object to minimize energy. The minimum should not be more 3 sigma away from the current argument of energy. The parameter lambda denotes the population size in the CMA algorithm. If the threshold minimal_update is not met during a step of the minimization the algorithm stops. To actually start the minimization the user must call minimize().
imaging::CovarianceMatrixAdaptation::CovarianceMatrixAdaptation | ( | EnergyInterface & | energy, | |
float_t | sigma, | |||
float_t | min_update | |||
) |
Construct a CMA object to minimize energy. The minimum should not be more 3 sigma away from the current argument of energy. If the threshold minimal_update is not met during a step of the minimization the algorithm stops. To actually start the minimization the user must call minimize().
References imaging::EnergyInterface::dimension().
bool imaging::CovarianceMatrixAdaptation::minimize | ( | size_t | n_max_steps, | |
size_t & | n_actual_steps | |||
) | [virtual] |
Start the minimization process. At most n_max_steps will be performed. If the convergence criterion (as set in the constructor) is met before the number of maximal steps is reached the function returns true. Otherwise it returns false. The actual number of performed stops is stored in n_steps. Upon return, the energy (as set in the constructor) will have the solution as its current argument.
Implements imaging::MinimizerInterface.
References imaging::EnergyInterface::current_argument(), imaging::EnergyInterface::current_energy(), imaging::MessageInterface::DEBUG_ONLY, imaging::inverse_square_root(), imaging::normal_distribution(), imaging::MessageInterface::out, imaging::EnergyInterface::set_argument(), imaging::SQUARE_ROOT_2, and imaging::symmetric_square_root().