![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
A Covariance Matrix Adaptation Evolution Strategy Optimizer. More...
#include <itkCMAEvolutionStrategyOptimizer.h>
A Covariance Matrix Adaptation Evolution Strategy Optimizer.
Based on the work by Hansen:
Definition at line 47 of file itkCMAEvolutionStrategyOptimizer.h.
typedef SmartPointer<const Self> itk::CMAEvolutionStrategyOptimizer::ConstPointer |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 55 of file itkCMAEvolutionStrategyOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 63 of file itkCMAEvolutionStrategyOptimizer.h.
typedef Array2D<double> itk::CMAEvolutionStrategyOptimizer::CovarianceMatrixType [protected] |
Definition at line 221 of file itkCMAEvolutionStrategyOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 62 of file itkCMAEvolutionStrategyOptimizer.h.
typedef vnl_diag_matrix<double> itk::CMAEvolutionStrategyOptimizer::EigenValueMatrixType [protected] |
Definition at line 220 of file itkCMAEvolutionStrategyOptimizer.h.
typedef std::vector<MeasureIndexPairType> itk::CMAEvolutionStrategyOptimizer::MeasureContainerType [protected] |
Definition at line 227 of file itkCMAEvolutionStrategyOptimizer.h.
typedef std::deque< MeasureType > itk::CMAEvolutionStrategyOptimizer::MeasureHistoryType [protected] |
Definition at line 223 of file itkCMAEvolutionStrategyOptimizer.h.
typedef std::pair< MeasureType, unsigned int > itk::CMAEvolutionStrategyOptimizer::MeasureIndexPairType [protected] |
Definition at line 226 of file itkCMAEvolutionStrategyOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Definition at line 65 of file itkCMAEvolutionStrategyOptimizer.h.
typedef std::vector< ParametersType > itk::CMAEvolutionStrategyOptimizer::ParameterContainerType [protected] |
Definition at line 222 of file itkCMAEvolutionStrategyOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 59 of file itkCMAEvolutionStrategyOptimizer.h.
typedef SmartPointer<Self> itk::CMAEvolutionStrategyOptimizer::Pointer |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 54 of file itkCMAEvolutionStrategyOptimizer.h.
typedef itk::Statistics::MersenneTwisterRandomVariateGenerator itk::CMAEvolutionStrategyOptimizer::RandomGeneratorType [protected] |
Definition at line 229 of file itkCMAEvolutionStrategyOptimizer.h.
typedef Array<double> itk::CMAEvolutionStrategyOptimizer::RecombinationWeightsType [protected] |
Definition at line 215 of file itkCMAEvolutionStrategyOptimizer.h.
typedef Superclass::ScaledCostFunctionType itk::CMAEvolutionStrategyOptimizer::ScaledCostFunctionType |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Definition at line 64 of file itkCMAEvolutionStrategyOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 66 of file itkCMAEvolutionStrategyOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 52 of file itkCMAEvolutionStrategyOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Definition at line 53 of file itkCMAEvolutionStrategyOptimizer.h.
MetricError | |
MaximumNumberOfIterations | |
PositionToleranceMin | |
PositionToleranceMax | |
ValueTolerance | |
ZeroStepLength | |
Unknown |
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
Definition at line 68 of file itkCMAEvolutionStrategyOptimizer.h.
itk::CMAEvolutionStrategyOptimizer::CMAEvolutionStrategyOptimizer | ( | ) | [protected] |
Constructor
virtual itk::CMAEvolutionStrategyOptimizer::~CMAEvolutionStrategyOptimizer | ( | ) | [inline, protected, virtual] |
Destructor
Definition at line 314 of file itkCMAEvolutionStrategyOptimizer.h.
itk::CMAEvolutionStrategyOptimizer::CMAEvolutionStrategyOptimizer | ( | const Self & | ) | [private] |
virtual void itk::CMAEvolutionStrategyOptimizer::AdvanceOneStep | ( | void | ) | [protected, virtual] |
Compute the m_CurrentPosition = m(g+1), m_CurrentValue, and m_CurrentScaledStep
virtual void itk::CMAEvolutionStrategyOptimizer::FixNumericalErrors | ( | void | ) | [protected, virtual] |
Some checks, to be sure no numerical errors occur
virtual void itk::CMAEvolutionStrategyOptimizer::GenerateOffspring | ( | void | ) | [protected, virtual] |
GenerateOffspring: Fill m_SearchDirs, m_NormalizedSearchDirs, and m_CostFunctionValues
virtual const char* itk::CMAEvolutionStrategyOptimizer::GetClassName | ( | ) | const [virtual] |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
virtual unsigned long itk::CMAEvolutionStrategyOptimizer::GetCurrentIteration | ( | ) | const [virtual] |
Get the current iteration number:
virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentMaximumD | ( | ) | const [virtual] |
The current maximum square root eigen value
virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentMinimumD | ( | ) | const [virtual] |
The current minimum square root eigen value
virtual const ParametersType& itk::CMAEvolutionStrategyOptimizer::GetCurrentScaledStep | ( | ) | [virtual] |
Get the last step taken ( scaledPos_{k+1} - scaledPos_{k} ) If you want the step taken in the space of unscaled parameters, simply use: CMAESOptimizer->GetScaledCostFunction()->ConvertScaledToUnscaledParameters( ... ) To obtain the magnitude of the step, use ->GetCurretScaledStep().magnitude().
virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentSigma | ( | ) | const [virtual] |
The current value of sigma
virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentStepLength | ( | void | ) | const [inline, virtual] |
This function is just for convenience, since many optimizers have such a function. It return the current sigma times the current maximumD.
Definition at line 101 of file itkCMAEvolutionStrategyOptimizer.h.
virtual MeasureType itk::CMAEvolutionStrategyOptimizer::GetCurrentValue | ( | ) | const [virtual] |
Get the metric value at the current position
virtual double itk::CMAEvolutionStrategyOptimizer::GetInitialSigma | ( | ) | const [virtual] |
virtual double itk::CMAEvolutionStrategyOptimizer::GetMaximumDeviation | ( | ) | const [virtual] |
virtual unsigned long itk::CMAEvolutionStrategyOptimizer::GetMaximumNumberOfIterations | ( | ) | const [virtual] |
Setting: convergence condition: the maximum number of iterations. Default: 100
virtual double itk::CMAEvolutionStrategyOptimizer::GetMinimumDeviation | ( | ) | const [virtual] |
virtual unsigned int itk::CMAEvolutionStrategyOptimizer::GetNumberOfParents | ( | ) | const [virtual] |
virtual unsigned int itk::CMAEvolutionStrategyOptimizer::GetPopulationSize | ( | ) | const [virtual] |
virtual double itk::CMAEvolutionStrategyOptimizer::GetPositionToleranceMax | ( | ) | const [virtual] |
virtual double itk::CMAEvolutionStrategyOptimizer::GetPositionToleranceMin | ( | ) | const [virtual] |
virtual const char* itk::CMAEvolutionStrategyOptimizer::GetRecombinationWeightsPreset | ( | ) | const [virtual] |
virtual double itk::CMAEvolutionStrategyOptimizer::GetSigmaDecayA | ( | ) | const [virtual] |
virtual double itk::CMAEvolutionStrategyOptimizer::GetSigmaDecayAlpha | ( | ) | const [virtual] |
virtual const StopConditionType& itk::CMAEvolutionStrategyOptimizer::GetStopCondition | ( | ) | [virtual] |
Get the stop condition of the last run
virtual unsigned int itk::CMAEvolutionStrategyOptimizer::GetUpdateBDPeriod | ( | ) | const [virtual] |
virtual bool itk::CMAEvolutionStrategyOptimizer::GetUseCovarianceMatrixAdaptation | ( | ) | const [virtual] |
virtual bool itk::CMAEvolutionStrategyOptimizer::GetUseDecayingSigma | ( | ) | const [virtual] |
virtual double itk::CMAEvolutionStrategyOptimizer::GetValueTolerance | ( | ) | const [virtual] |
virtual void itk::CMAEvolutionStrategyOptimizer::InitializeBCD | ( | void | ) | [protected, virtual] |
Initialize the covariance matrix and its eigen decomposition
virtual void itk::CMAEvolutionStrategyOptimizer::InitializeConstants | ( | void | ) | [protected, virtual] |
Compute the following constant variables:
virtual void itk::CMAEvolutionStrategyOptimizer::InitializeProgressVariables | ( | void | ) | [protected, virtual] |
Initialize the following 'progress' variables:
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
static Pointer itk::CMAEvolutionStrategyOptimizer::New | ( | ) | [static] |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
void itk::CMAEvolutionStrategyOptimizer::operator= | ( | const Self & | ) | [private] |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
void itk::CMAEvolutionStrategyOptimizer::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected] |
PrintSelf
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
virtual void itk::CMAEvolutionStrategyOptimizer::ResumeOptimization | ( | void | ) | [virtual] |
virtual void itk::CMAEvolutionStrategyOptimizer::SetInitialSigma | ( | double | _arg | ) | [virtual] |
Setting: the initial standard deviation used to generate offspring Recommended value: 1/3 * the expected range of the parameters Default: 1.0;
virtual void itk::CMAEvolutionStrategyOptimizer::SetMaximumDeviation | ( | double | _arg | ) | [virtual] |
Setting: the maximum deviation. It is ensured that: max_i( sigma*sqrt(C[i,i]) ) < MaximumDeviation Default: +infinity
virtual void itk::CMAEvolutionStrategyOptimizer::SetMaximumNumberOfIterations | ( | unsigned long | _arg | ) | [virtual] |
virtual void itk::CMAEvolutionStrategyOptimizer::SetMinimumDeviation | ( | double | _arg | ) | [virtual] |
Setting: the minimum deviation. It is ensured that: min_i( sigma*sqrt(C[i,i]) ) > MinimumDeviation Default: 0.0
virtual void itk::CMAEvolutionStrategyOptimizer::SetNumberOfParents | ( | unsigned int | _arg | ) | [virtual] |
Setting: the number of parents (points for recombination, ) if set to 0, a default value is chosen: floor( populationSize / 2 ), which can be inspected after having started the optimisation. Default: 0
virtual void itk::CMAEvolutionStrategyOptimizer::SetPopulationSize | ( | unsigned int | _arg | ) | [virtual] |
Setting: the population size ( ); if set to 0, a default value is chosen: 4 + floor( 3 ln(NumberOfParameters) ), which can be inspected after having started the optimisation. Default: 0
virtual void itk::CMAEvolutionStrategyOptimizer::SetPositionToleranceMax | ( | double | _arg | ) | [virtual] |
Setting: convergence condition: the maximum step size. 'convergence' is declared if: if ( sigma * sqrt(C[i,i]) > PositionToleranceMax*sigma0 for any i ) Default: 1e8
virtual void itk::CMAEvolutionStrategyOptimizer::SetPositionToleranceMin | ( | double | _arg | ) | [virtual] |
Setting: convergence condition: the minimum step size. convergence is declared if: if ( sigma * max( abs(p_c[i]), sqrt(C[i,i]) ) < PositionToleranceMin*sigma0 for all i ) where p_c is the evolution path Default: 1e-12
virtual void itk::CMAEvolutionStrategyOptimizer::SetRecombinationWeightsPreset | ( | const char * | _arg | ) | [virtual] |
Setting: how the recombination weights are chosen: "equal", "linear" or "superlinear" are supported equal: weights = ones(mu,1); linear: weights = mu+1-(1:mu)'; superlinear: weights = log(mu+1)-log(1:mu)'; Default: "superlinear"
virtual void itk::CMAEvolutionStrategyOptimizer::SetSigmaDecayA | ( | double | _arg | ) | [virtual] |
Setting: the A parameter for the decaying sigma sequence. Default: 50
virtual void itk::CMAEvolutionStrategyOptimizer::SetSigmaDecayAlpha | ( | double | _arg | ) | [virtual] |
Setting: the alpha parameter for the decaying sigma sequence. Default: 0.602
virtual void itk::CMAEvolutionStrategyOptimizer::SetUpdateBDPeriod | ( | unsigned int | _arg | ) | [virtual] |
Setting: the number of iterations after which B and D are updated. If 0: a default value is computed: floor( 1.0 / c_cov / Nd / 10.0 ) This value can be inspected after calling StartOptimization
virtual void itk::CMAEvolutionStrategyOptimizer::SetUseCovarianceMatrixAdaptation | ( | bool | _arg | ) | [virtual] |
Setting: whether the covariance matrix adaptation scheme should be used. Default: true. If false: CovMatrix = Identity. This parameter may be changed by the optimiser, if it sees that the adaptation rate is nearly 0 (UpdateBDPeriod >= MaxNrOfIterations). This can be inspected calling StartOptimization()
virtual void itk::CMAEvolutionStrategyOptimizer::SetUseDecayingSigma | ( | bool | _arg | ) | [virtual] |
Setting: Use a sigma that decays according to a predefined function, instead of the adaptive scheme proposed by Hansen et al. if true: currentsigma(k+1) = currentsigma(k) * (A+k)^alpha / (A+k+1)^alpha where: k = the current iteration A, alpha = user-specified parameters (see below)
Default: false
virtual void itk::CMAEvolutionStrategyOptimizer::SetValueTolerance | ( | double | _arg | ) | [virtual] |
Setting: convergence condition: the minimum change of the cost function value over time. convergence is declared if: the range of the best cost function value measured over a period of M iterations was not greater than the valueTolerance, where: M = m_HistoryLength = min( maxnrofit, 10+ceil(3*10*N/lambda) ). Default: 1e-12
virtual void itk::CMAEvolutionStrategyOptimizer::SortCostFunctionValues | ( | void | ) | [protected, virtual] |
Sort the m_CostFunctionValues vector and update m_MeasureHistory
virtual void itk::CMAEvolutionStrategyOptimizer::StartOptimization | ( | void | ) | [virtual] |
Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.
virtual void itk::CMAEvolutionStrategyOptimizer::StopOptimization | ( | void | ) | [virtual] |
virtual bool itk::CMAEvolutionStrategyOptimizer::TestConvergence | ( | bool | firstCheck | ) | [protected, virtual] |
Check if convergence has occured:
virtual void itk::CMAEvolutionStrategyOptimizer::UpdateBD | ( | void | ) | [protected, virtual] |
Update the eigen decomposition and m_CurrentMaximumD/m_CurrentMinimumD
virtual void itk::CMAEvolutionStrategyOptimizer::UpdateC | ( | void | ) | [protected, virtual] |
Update the covariance matrix C
virtual void itk::CMAEvolutionStrategyOptimizer::UpdateConjugateEvolutionPath | ( | void | ) | [protected, virtual] |
Update m_ConjugateEvolutionPath
virtual void itk::CMAEvolutionStrategyOptimizer::UpdateEvolutionPath | ( | void | ) | [protected, virtual] |
Update m_EvolutionPath
virtual void itk::CMAEvolutionStrategyOptimizer::UpdateHeaviside | ( | void | ) | [protected, virtual] |
Update m_Heaviside
virtual void itk::CMAEvolutionStrategyOptimizer::UpdateSigma | ( | void | ) | [protected, virtual] |
Update the Sigma either by adaptation or using the predefined function
B: eigen vector matrix
Definition at line 306 of file itkCMAEvolutionStrategyOptimizer.h.
C: covariance matrix
Definition at line 304 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 298 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 258 of file itkCMAEvolutionStrategyOptimizer.h.
cost function values for each
Definition at line 290 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 262 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 266 of file itkCMAEvolutionStrategyOptimizer.h.
unsigned long itk::CMAEvolutionStrategyOptimizer::m_CurrentIteration [protected] |
The current iteration number
Definition at line 238 of file itkCMAEvolutionStrategyOptimizer.h.
The current maximum square root eigen value:
Definition at line 280 of file itkCMAEvolutionStrategyOptimizer.h.
The current minimum square root eigen value:
Definition at line 278 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 294 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 292 of file itkCMAEvolutionStrategyOptimizer.h.
The current value of Sigma
Definition at line 275 of file itkCMAEvolutionStrategyOptimizer.h.
The value of the cost function at the current position
Definition at line 235 of file itkCMAEvolutionStrategyOptimizer.h.
D: sqrt(eigen values)
Definition at line 308 of file itkCMAEvolutionStrategyOptimizer.h.
Some other constants, without set/get methods These settings have default values.
Definition at line 256 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 296 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 264 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 268 of file itkCMAEvolutionStrategyOptimizer.h.
bool itk::CMAEvolutionStrategyOptimizer::m_Heaviside [protected] |
Definition at line 283 of file itkCMAEvolutionStrategyOptimizer.h.
unsigned long itk::CMAEvolutionStrategyOptimizer::m_HistoryLength [protected] |
Length of the MeasureHistory deque
Definition at line 272 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 410 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 414 of file itkCMAEvolutionStrategyOptimizer.h.
unsigned long itk::CMAEvolutionStrategyOptimizer::m_MaximumNumberOfIterations [private] |
Settings that are only inspected/changed by the associated get/set member functions.
Definition at line 408 of file itkCMAEvolutionStrategyOptimizer.h.
History of best measure values
Definition at line 301 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 415 of file itkCMAEvolutionStrategyOptimizer.h.
realisations of
Definition at line 288 of file itkCMAEvolutionStrategyOptimizer.h.
unsigned int itk::CMAEvolutionStrategyOptimizer::m_NumberOfParents [protected] |
Definition at line 249 of file itkCMAEvolutionStrategyOptimizer.h.
unsigned int itk::CMAEvolutionStrategyOptimizer::m_PopulationSize [protected] |
Definition at line 248 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 416 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 417 of file itkCMAEvolutionStrategyOptimizer.h.
RandomGeneratorType::Pointer itk::CMAEvolutionStrategyOptimizer::m_RandomGenerator [protected] |
The random number generator used to generate the offspring.
Definition at line 232 of file itkCMAEvolutionStrategyOptimizer.h.
array of
Definition at line 270 of file itkCMAEvolutionStrategyOptimizer.h.
std::string itk::CMAEvolutionStrategyOptimizer::m_RecombinationWeightsPreset [private] |
Definition at line 413 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 286 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 260 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 411 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 412 of file itkCMAEvolutionStrategyOptimizer.h.
bool itk::CMAEvolutionStrategyOptimizer::m_Stop [protected] |
Boolean that indicates whether the optimizer should stop
Definition at line 244 of file itkCMAEvolutionStrategyOptimizer.h.
The stop condition
Definition at line 241 of file itkCMAEvolutionStrategyOptimizer.h.
unsigned int itk::CMAEvolutionStrategyOptimizer::m_UpdateBDPeriod [protected] |
Definition at line 250 of file itkCMAEvolutionStrategyOptimizer.h.
Settings that may be changed by the optimizer:
Definition at line 247 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 409 of file itkCMAEvolutionStrategyOptimizer.h.
Definition at line 418 of file itkCMAEvolutionStrategyOptimizer.h.
Generated on 24-10-2011 for elastix by ![]() |
![]() |