19#ifndef __itkCMAEvolutionStrategyOptimizer_h
20#define __itkCMAEvolutionStrategyOptimizer_h
28#include "itkArray2D.h"
29#include "itkMersenneTwisterRandomVariateGenerator.h"
30#include "vnl/vnl_diag_matrix.h"
87 itkGetConstMacro( CurrentIteration,
unsigned long );
96 itkGetConstMacro( CurrentSigma,
double );
99 itkGetConstMacro( CurrentMinimumD,
double );
102 itkGetConstMacro( CurrentMaximumD,
double );
119 1, NumericTraits< unsigned long >::max() );
125 itkSetMacro( PopulationSize,
unsigned int );
126 itkGetConstMacro( PopulationSize,
unsigned int );
132 itkSetMacro( NumberOfParents,
unsigned int );
133 itkGetConstMacro( NumberOfParents,
unsigned int );
138 itkSetClampMacro( InitialSigma,
double, NumericTraits< double >::min(), NumericTraits< double >::max() );
139 itkGetConstMacro( InitialSigma,
double );
144 itkSetClampMacro( MaximumDeviation,
double, 0.0, NumericTraits< double >::max() );
145 itkGetConstMacro( MaximumDeviation,
double );
150 itkSetClampMacro( MinimumDeviation,
double, 0.0, NumericTraits< double >::max() );
151 itkGetConstMacro( MinimumDeviation,
double );
162 itkSetMacro( UseDecayingSigma,
bool );
163 itkGetConstMacro( UseDecayingSigma,
bool );
167 itkSetClampMacro( SigmaDecayA,
double, 0.0, NumericTraits< double >::max() );
168 itkGetConstMacro( SigmaDecayA,
double );
172 itkSetClampMacro( SigmaDecayAlpha,
double, 0.0, 1.0 );
173 itkGetConstMacro( SigmaDecayAlpha,
double );
180 itkSetMacro( UseCovarianceMatrixAdaptation,
bool );
181 itkGetConstMacro( UseCovarianceMatrixAdaptation,
bool );
189 itkSetStringMacro( RecombinationWeightsPreset );
190 itkGetStringMacro( RecombinationWeightsPreset );
195 itkSetMacro( UpdateBDPeriod,
unsigned int );
196 itkGetConstMacro( UpdateBDPeriod,
unsigned int );
322 void PrintSelf( std::ostream & os, Indent indent )
const override;
A Covariance Matrix Adaptation Evolution Strategy Optimizer.
RandomGeneratorType::Pointer m_RandomGenerator
unsigned int m_PopulationSize
CMAEvolutionStrategyOptimizer(const Self &)
std::pair< MeasureType, unsigned int > MeasureIndexPairType
unsigned int m_UpdateBDPeriod
double m_SigmaDampingConstant
virtual void SortCostFunctionValues(void)
MeasureHistoryType m_MeasureHistory
virtual void FixNumericalErrors(void)
virtual double GetCurrentStepLength(void) const
std::deque< MeasureType > MeasureHistoryType
std::vector< MeasureIndexPairType > MeasureContainerType
double m_EvolutionPathConstant
unsigned long m_CurrentIteration
std::vector< ParametersType > ParameterContainerType
Superclass::ScalesType ScalesType
virtual void UpdateBD(void)
double m_MaximumDeviation
Superclass::CostFunctionType CostFunctionType
Array< double > RecombinationWeightsType
void operator=(const Self &)
virtual void ResumeOptimization(void)
ParameterContainerType m_SearchDirs
double m_ExpectationNormNormalDistribution
bool m_UseCovarianceMatrixAdaptation
ParametersType m_CurrentNormalizedStep
itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType
virtual void InitializeProgressVariables(void)
StopConditionType m_StopCondition
~CMAEvolutionStrategyOptimizer() override
@ MaximumNumberOfIterations
virtual void InitializeConstants(void)
virtual void GenerateOffspring(void)
Superclass::ScaledCostFunctionType ScaledCostFunctionType
unsigned long m_MaximumNumberOfIterations
virtual double GetCurrentMaximumD() const
unsigned int m_NumberOfParents
MeasureType m_CurrentValue
CMAEvolutionStrategyOptimizer()
MeasureContainerType m_CostFunctionValues
std::string m_RecombinationWeightsPreset
virtual void UpdateSigma(void)
CMAEvolutionStrategyOptimizer Self
unsigned long m_HistoryLength
double m_MinimumDeviation
virtual double GetCurrentSigma() const
ParametersType m_CurrentScaledStep
virtual bool TestConvergence(bool firstCheck)
ParametersType m_ConjugateEvolutionPath
vnl_diag_matrix< double > EigenValueMatrixType
ParameterContainerType m_NormalizedSearchDirs
Superclass::MeasureType MeasureType
void PrintSelf(std::ostream &os, Indent indent) const override
Array2D< double > CovarianceMatrixType
ScaledSingleValuedNonLinearOptimizer Superclass
double m_ConjugateEvolutionPathConstant
ParametersType m_EvolutionPath
double m_CovarianceMatrixAdaptationWeight
virtual void StopOptimization(void)
RecombinationWeightsType m_RecombinationWeights
SmartPointer< Self > Pointer
double m_PositionToleranceMax
SmartPointer< const Self > ConstPointer
virtual void UpdateEvolutionPath(void)
virtual void UpdateHeaviside(void)
Superclass::ParametersType ParametersType
virtual void UpdateConjugateEvolutionPath(void)
double m_CovarianceMatrixAdaptationConstant
Superclass::DerivativeType DerivativeType
void StartOptimization(void) override
virtual void InitializeBCD(void)
virtual void UpdateC(void)
double m_PositionToleranceMin
virtual void AdvanceOneStep(void)
NonLinearOptimizer::ScalesType ScalesType
Superclass::ParametersType ParametersType
ScaledSingleValuedCostFunction ScaledCostFunctionType
Superclass::DerivativeType DerivativeType
Superclass::CostFunctionType CostFunctionType
Superclass::MeasureType MeasureType