go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
itk::CMAEvolutionStrategyOptimizer Class Reference

#include <itkCMAEvolutionStrategyOptimizer.h>

Detailed Description

A Covariance Matrix Adaptation Evolution Strategy Optimizer.

Based on the work by Hansen:

Definition at line 49 of file itkCMAEvolutionStrategyOptimizer.h.

+ Inheritance diagram for itk::CMAEvolutionStrategyOptimizer:

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::CostFunctionType CostFunctionType
 
typedef Superclass::DerivativeType DerivativeType
 
typedef Superclass::MeasureType MeasureType
 
typedef Superclass::ParametersType ParametersType
 
typedef SmartPointer< SelfPointer
 
typedef Superclass::ScaledCostFunctionType ScaledCostFunctionType
 
typedef Superclass::ScalesType ScalesType
 
typedef CMAEvolutionStrategyOptimizer Self
 
enum  StopConditionType {
  MetricError , MaximumNumberOfIterations , PositionToleranceMin , PositionToleranceMax ,
  ValueTolerance , ZeroStepLength , Unknown
}
 
typedef ScaledSingleValuedNonLinearOptimizer Superclass
 
- Public Types inherited from itk::ScaledSingleValuedNonLinearOptimizer
typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::CostFunctionType CostFunctionType
 
typedef Superclass::DerivativeType DerivativeType
 
typedef Superclass::MeasureType MeasureType
 
typedef Superclass::ParametersType ParametersType
 
typedef SmartPointer< SelfPointer
 
typedef ScaledCostFunctionType::Pointer ScaledCostFunctionPointer
 
typedef ScaledSingleValuedCostFunction ScaledCostFunctionType
 
typedef NonLinearOptimizer::ScalesType ScalesType
 
typedef ScaledSingleValuedNonLinearOptimizer Self
 
typedef SingleValuedNonLinearOptimizer Superclass
 

Public Member Functions

virtual const char * GetClassName () const
 
virtual unsigned long GetCurrentIteration () const
 
virtual double GetCurrentMaximumD () const
 
virtual double GetCurrentMinimumD () const
 
virtual const ParametersTypeGetCurrentScaledStep ()
 
virtual double GetCurrentSigma () const
 
virtual double GetCurrentStepLength (void) const
 
virtual MeasureType GetCurrentValue () const
 
virtual double GetInitialSigma () const
 
virtual double GetMaximumDeviation () const
 
virtual unsigned long GetMaximumNumberOfIterations () const
 
virtual double GetMinimumDeviation () const
 
virtual unsigned int GetNumberOfParents () const
 
virtual unsigned int GetPopulationSize () const
 
virtual double GetPositionToleranceMax () const
 
virtual double GetPositionToleranceMin () const
 
virtual const char * GetRecombinationWeightsPreset () const
 
virtual double GetSigmaDecayA () const
 
virtual double GetSigmaDecayAlpha () const
 
virtual const StopConditionTypeGetStopCondition ()
 
virtual unsigned int GetUpdateBDPeriod () const
 
virtual bool GetUseCovarianceMatrixAdaptation () const
 
virtual bool GetUseDecayingSigma () const
 
virtual double GetValueTolerance () const
 
virtual void ResumeOptimization (void)
 
virtual void SetInitialSigma (double _arg)
 
virtual void SetMaximumDeviation (double _arg)
 
virtual void SetMaximumNumberOfIterations (unsigned long _arg)
 
virtual void SetMinimumDeviation (double _arg)
 
virtual void SetNumberOfParents (unsigned int _arg)
 
virtual void SetPopulationSize (unsigned int _arg)
 
virtual void SetPositionToleranceMax (double _arg)
 
virtual void SetPositionToleranceMin (double _arg)
 
virtual void SetRecombinationWeightsPreset (const char *_arg)
 
virtual void SetSigmaDecayA (double _arg)
 
virtual void SetSigmaDecayAlpha (double _arg)
 
virtual void SetUpdateBDPeriod (unsigned int _arg)
 
virtual void SetUseCovarianceMatrixAdaptation (bool _arg)
 
virtual void SetUseDecayingSigma (bool _arg)
 
virtual void SetValueTolerance (double _arg)
 
void StartOptimization (void) override
 
virtual void StopOptimization (void)
 
- Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
virtual const char * GetClassName () const
 
const ParametersTypeGetCurrentPosition (void) const override
 
virtual bool GetMaximize () const
 
virtual const ScaledCostFunctionTypeGetScaledCostFunction ()
 
virtual const ParametersTypeGetScaledCurrentPosition ()
 
bool GetUseScales (void) const
 
virtual void InitializeScales (void)
 
virtual void MaximizeOff ()
 
virtual void MaximizeOn ()
 
void SetCostFunction (CostFunctionType *costFunction) override
 
virtual void SetMaximize (bool _arg)
 
virtual void SetUseScales (bool arg)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
static Pointer New ()
 

Protected Types

typedef Array2D< doubleCovarianceMatrixType
 
typedef vnl_diag_matrix< doubleEigenValueMatrixType
 
typedef std::vector< MeasureIndexPairTypeMeasureContainerType
 
typedef std::deque< MeasureTypeMeasureHistoryType
 
typedef std::pair< MeasureType, unsigned intMeasureIndexPairType
 
typedef std::vector< ParametersTypeParameterContainerType
 
typedef itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType
 
typedef Array< doubleRecombinationWeightsType
 

Protected Member Functions

virtual void AdvanceOneStep (void)
 
 CMAEvolutionStrategyOptimizer ()
 
virtual void FixNumericalErrors (void)
 
virtual void GenerateOffspring (void)
 
virtual void InitializeBCD (void)
 
virtual void InitializeConstants (void)
 
virtual void InitializeProgressVariables (void)
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void SortCostFunctionValues (void)
 
virtual bool TestConvergence (bool firstCheck)
 
virtual void UpdateBD (void)
 
virtual void UpdateC (void)
 
virtual void UpdateConjugateEvolutionPath (void)
 
virtual void UpdateEvolutionPath (void)
 
virtual void UpdateHeaviside (void)
 
virtual void UpdateSigma (void)
 
 ~CMAEvolutionStrategyOptimizer () override
 
- Protected Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
virtual void GetScaledDerivative (const ParametersType &parameters, DerivativeType &derivative) const
 
virtual MeasureType GetScaledValue (const ParametersType &parameters) const
 
virtual void GetScaledValueAndDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ScaledSingleValuedNonLinearOptimizer ()
 
void SetCurrentPosition (const ParametersType &param) override
 
virtual void SetScaledCurrentPosition (const ParametersType &parameters)
 
 ~ScaledSingleValuedNonLinearOptimizer () override
 

Protected Attributes

CovarianceMatrixType m_B
 
CovarianceMatrixType m_C
 
ParametersType m_ConjugateEvolutionPath
 
double m_ConjugateEvolutionPathConstant
 
MeasureContainerType m_CostFunctionValues
 
double m_CovarianceMatrixAdaptationConstant
 
double m_CovarianceMatrixAdaptationWeight
 
unsigned long m_CurrentIteration
 
double m_CurrentMaximumD
 
double m_CurrentMinimumD
 
ParametersType m_CurrentNormalizedStep
 
ParametersType m_CurrentScaledStep
 
double m_CurrentSigma
 
MeasureType m_CurrentValue
 
EigenValueMatrixType m_D
 
double m_EffectiveMu
 
ParametersType m_EvolutionPath
 
double m_EvolutionPathConstant
 
double m_ExpectationNormNormalDistribution
 
bool m_Heaviside
 
unsigned long m_HistoryLength
 
MeasureHistoryType m_MeasureHistory
 
ParameterContainerType m_NormalizedSearchDirs
 
unsigned int m_NumberOfParents
 
unsigned int m_PopulationSize
 
RandomGeneratorType::Pointer m_RandomGenerator
 
RecombinationWeightsType m_RecombinationWeights
 
ParameterContainerType m_SearchDirs
 
double m_SigmaDampingConstant
 
bool m_Stop
 
StopConditionType m_StopCondition
 
unsigned int m_UpdateBDPeriod
 
bool m_UseCovarianceMatrixAdaptation
 
- Protected Attributes inherited from itk::ScaledSingleValuedNonLinearOptimizer
ScaledCostFunctionPointer m_ScaledCostFunction
 
ParametersType m_ScaledCurrentPosition
 

Private Member Functions

 CMAEvolutionStrategyOptimizer (const Self &)
 
void operator= (const Self &)
 

Private Attributes

double m_InitialSigma
 
double m_MaximumDeviation
 
unsigned long m_MaximumNumberOfIterations
 
double m_MinimumDeviation
 
double m_PositionToleranceMax
 
double m_PositionToleranceMin
 
std::string m_RecombinationWeightsPreset
 
double m_SigmaDecayA
 
double m_SigmaDecayAlpha
 
bool m_UseDecayingSigma
 
double m_ValueTolerance
 

Member Typedef Documentation

◆ ConstPointer

Definition at line 57 of file itkCMAEvolutionStrategyOptimizer.h.

◆ CostFunctionType

typedef Superclass::CostFunctionType itk::CMAEvolutionStrategyOptimizer::CostFunctionType

Definition at line 65 of file itkCMAEvolutionStrategyOptimizer.h.

◆ CovarianceMatrixType

Definition at line 226 of file itkCMAEvolutionStrategyOptimizer.h.

◆ DerivativeType

typedef Superclass::DerivativeType itk::CMAEvolutionStrategyOptimizer::DerivativeType

Definition at line 64 of file itkCMAEvolutionStrategyOptimizer.h.

◆ EigenValueMatrixType

Definition at line 225 of file itkCMAEvolutionStrategyOptimizer.h.

◆ MeasureContainerType

Definition at line 232 of file itkCMAEvolutionStrategyOptimizer.h.

◆ MeasureHistoryType

Definition at line 228 of file itkCMAEvolutionStrategyOptimizer.h.

◆ MeasureIndexPairType

Definition at line 231 of file itkCMAEvolutionStrategyOptimizer.h.

◆ MeasureType

Definition at line 67 of file itkCMAEvolutionStrategyOptimizer.h.

◆ ParameterContainerType

Definition at line 227 of file itkCMAEvolutionStrategyOptimizer.h.

◆ ParametersType

Definition at line 63 of file itkCMAEvolutionStrategyOptimizer.h.

◆ Pointer

Definition at line 56 of file itkCMAEvolutionStrategyOptimizer.h.

◆ RandomGeneratorType

typedef itk::Statistics::MersenneTwisterRandomVariateGenerator itk::CMAEvolutionStrategyOptimizer::RandomGeneratorType
protected

Definition at line 234 of file itkCMAEvolutionStrategyOptimizer.h.

◆ RecombinationWeightsType

Definition at line 224 of file itkCMAEvolutionStrategyOptimizer.h.

◆ ScaledCostFunctionType

typedef Superclass::ScaledCostFunctionType itk::CMAEvolutionStrategyOptimizer::ScaledCostFunctionType

Definition at line 66 of file itkCMAEvolutionStrategyOptimizer.h.

◆ ScalesType

typedef Superclass::ScalesType itk::CMAEvolutionStrategyOptimizer::ScalesType

Definition at line 68 of file itkCMAEvolutionStrategyOptimizer.h.

◆ Self

Definition at line 54 of file itkCMAEvolutionStrategyOptimizer.h.

◆ Superclass

Definition at line 55 of file itkCMAEvolutionStrategyOptimizer.h.

Member Enumeration Documentation

◆ StopConditionType

Enumerator
MetricError 
MaximumNumberOfIterations 
PositionToleranceMin 
PositionToleranceMax 
ValueTolerance 
ZeroStepLength 
Unknown 

Definition at line 70 of file itkCMAEvolutionStrategyOptimizer.h.

Constructor & Destructor Documentation

◆ CMAEvolutionStrategyOptimizer() [1/2]

itk::CMAEvolutionStrategyOptimizer::CMAEvolutionStrategyOptimizer ( )
protected

Constructor

◆ ~CMAEvolutionStrategyOptimizer()

itk::CMAEvolutionStrategyOptimizer::~CMAEvolutionStrategyOptimizer ( )
inlineoverrideprotected

Destructor

Definition at line 319 of file itkCMAEvolutionStrategyOptimizer.h.

◆ CMAEvolutionStrategyOptimizer() [2/2]

itk::CMAEvolutionStrategyOptimizer::CMAEvolutionStrategyOptimizer ( const Self )
private

Member Function Documentation

◆ AdvanceOneStep()

virtual void itk::CMAEvolutionStrategyOptimizer::AdvanceOneStep ( void  )
protectedvirtual

Compute the m_CurrentPosition = m(g+1), m_CurrentValue, and m_CurrentScaledStep

◆ FixNumericalErrors()

virtual void itk::CMAEvolutionStrategyOptimizer::FixNumericalErrors ( void  )
protectedvirtual

Some checks, to be sure no numerical errors occur

  • Adjust too low/high deviation that otherwise would violate m_MinimumDeviation or m_MaximumDeviation.
  • Adjust too low deviations that otherwise would cause numerical problems (because of finite precision of the datatypes).
  • Check if "main axis standard deviation sigma*D(i,i) has effect" (?) (just another check whether the steps are not too small)
  • Adjust step size in case of equal function values (flat fitness)
  • Adjust step size in case of equal best function values over history

◆ GenerateOffspring()

virtual void itk::CMAEvolutionStrategyOptimizer::GenerateOffspring ( void  )
protectedvirtual

GenerateOffspring: Fill m_SearchDirs, m_NormalizedSearchDirs, and m_CostFunctionValues

◆ GetClassName()

virtual const char * itk::CMAEvolutionStrategyOptimizer::GetClassName ( ) const
virtual

◆ GetCurrentIteration()

virtual unsigned long itk::CMAEvolutionStrategyOptimizer::GetCurrentIteration ( ) const
virtual

Get the current iteration number:

◆ GetCurrentMaximumD()

virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentMaximumD ( ) const
virtual

The current maximum square root eigen value

◆ GetCurrentMinimumD()

virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentMinimumD ( ) const
virtual

The current minimum square root eigen value

◆ GetCurrentScaledStep()

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().

◆ GetCurrentSigma()

virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentSigma ( ) const
virtual

The current value of sigma

◆ GetCurrentStepLength()

virtual double itk::CMAEvolutionStrategyOptimizer::GetCurrentStepLength ( void  ) const
inlinevirtual

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 106 of file itkCMAEvolutionStrategyOptimizer.h.

◆ GetCurrentValue()

virtual MeasureType itk::CMAEvolutionStrategyOptimizer::GetCurrentValue ( ) const
virtual

Get the metric value at the current position

◆ GetInitialSigma()

virtual double itk::CMAEvolutionStrategyOptimizer::GetInitialSigma ( ) const
virtual

◆ GetMaximumDeviation()

virtual double itk::CMAEvolutionStrategyOptimizer::GetMaximumDeviation ( ) const
virtual

◆ GetMaximumNumberOfIterations()

virtual unsigned long itk::CMAEvolutionStrategyOptimizer::GetMaximumNumberOfIterations ( ) const
virtual

Setting: convergence condition: the maximum number of iterations. Default: 100

◆ GetMinimumDeviation()

virtual double itk::CMAEvolutionStrategyOptimizer::GetMinimumDeviation ( ) const
virtual

◆ GetNumberOfParents()

virtual unsigned int itk::CMAEvolutionStrategyOptimizer::GetNumberOfParents ( ) const
virtual

◆ GetPopulationSize()

virtual unsigned int itk::CMAEvolutionStrategyOptimizer::GetPopulationSize ( ) const
virtual

◆ GetPositionToleranceMax()

virtual double itk::CMAEvolutionStrategyOptimizer::GetPositionToleranceMax ( ) const
virtual

◆ GetPositionToleranceMin()

virtual double itk::CMAEvolutionStrategyOptimizer::GetPositionToleranceMin ( ) const
virtual

◆ GetRecombinationWeightsPreset()

virtual const char * itk::CMAEvolutionStrategyOptimizer::GetRecombinationWeightsPreset ( ) const
virtual

◆ GetSigmaDecayA()

virtual double itk::CMAEvolutionStrategyOptimizer::GetSigmaDecayA ( ) const
virtual

◆ GetSigmaDecayAlpha()

virtual double itk::CMAEvolutionStrategyOptimizer::GetSigmaDecayAlpha ( ) const
virtual

◆ GetStopCondition()

virtual const StopConditionType & itk::CMAEvolutionStrategyOptimizer::GetStopCondition ( )
virtual

Get the stop condition of the last run

◆ GetUpdateBDPeriod()

virtual unsigned int itk::CMAEvolutionStrategyOptimizer::GetUpdateBDPeriod ( ) const
virtual

◆ GetUseCovarianceMatrixAdaptation()

virtual bool itk::CMAEvolutionStrategyOptimizer::GetUseCovarianceMatrixAdaptation ( ) const
virtual

◆ GetUseDecayingSigma()

virtual bool itk::CMAEvolutionStrategyOptimizer::GetUseDecayingSigma ( ) const
virtual

◆ GetValueTolerance()

virtual double itk::CMAEvolutionStrategyOptimizer::GetValueTolerance ( ) const
virtual

◆ InitializeBCD()

virtual void itk::CMAEvolutionStrategyOptimizer::InitializeBCD ( void  )
protectedvirtual

Initialize the covariance matrix and its eigen decomposition

◆ InitializeConstants()

virtual void itk::CMAEvolutionStrategyOptimizer::InitializeConstants ( void  )
protectedvirtual

Compute the following constant variables:

  • m_PopulationSize (if not provided by the user)
  • m_NumberOfParents (if not provided by the user)
  • m_RecombinationWeights
  • m_EffectiveMu
  • m_ConjugateEvolutionPathConstant
  • m_SigmaDampingConstant
  • m_CovarianceMatrixAdaptationWeight
  • m_CovarianceMatrixAdaptationConstant
  • m_UpdateBDPeriod;
  • m_UseCovarianceMatrixAdaptation;
  • m_EvolutionPathConstant
  • m_ExpectationNormNormalDistribution
  • m_HistoryLength

◆ InitializeProgressVariables()

virtual void itk::CMAEvolutionStrategyOptimizer::InitializeProgressVariables ( void  )
protectedvirtual

Initialize the following 'progress' variables:

  • m_CurrentSigma
  • m_Heaviside
  • m_SearchDirs
  • m_NormalizedSearchDirs
  • m_CostFunctionValues
  • m_CurrentScaledStep
  • m_CurrentNormalizedStep
  • m_EvolutionPath
  • m_ConjugateEvolutionPath
  • m_MeasureHistory
  • m_CurrentMaximumD, m_CurrentMinimumD

Reimplemented in elastix::CMAEvolutionStrategy< TElastix >.

◆ New()

static Pointer itk::CMAEvolutionStrategyOptimizer::New ( )
static

◆ operator=()

void itk::CMAEvolutionStrategyOptimizer::operator= ( const Self )
private

◆ PrintSelf()

void itk::CMAEvolutionStrategyOptimizer::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

PrintSelf

◆ ResumeOptimization()

virtual void itk::CMAEvolutionStrategyOptimizer::ResumeOptimization ( void  )
virtual

◆ SetInitialSigma()

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;

◆ SetMaximumDeviation()

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

◆ SetMaximumNumberOfIterations()

virtual void itk::CMAEvolutionStrategyOptimizer::SetMaximumNumberOfIterations ( unsigned long  _arg)
virtual

◆ SetMinimumDeviation()

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

◆ SetNumberOfParents()

virtual void itk::CMAEvolutionStrategyOptimizer::SetNumberOfParents ( unsigned int  _arg)
virtual

Setting: the number of parents (points for recombination, $\mu$) if set to 0, a default value is chosen: floor( populationSize / 2 ), which can be inspected after having started the optimisation. Default: 0

◆ SetPopulationSize()

virtual void itk::CMAEvolutionStrategyOptimizer::SetPopulationSize ( unsigned int  _arg)
virtual

Setting: the population size ( $\lambda$); 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

◆ SetPositionToleranceMax()

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

◆ SetPositionToleranceMin()

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

◆ SetRecombinationWeightsPreset()

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"

◆ SetSigmaDecayA()

virtual void itk::CMAEvolutionStrategyOptimizer::SetSigmaDecayA ( double  _arg)
virtual

Setting: the A parameter for the decaying sigma sequence. Default: 50

◆ SetSigmaDecayAlpha()

virtual void itk::CMAEvolutionStrategyOptimizer::SetSigmaDecayAlpha ( double  _arg)
virtual

Setting: the alpha parameter for the decaying sigma sequence. Default: 0.602

◆ SetUpdateBDPeriod()

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

◆ SetUseCovarianceMatrixAdaptation()

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()

◆ SetUseDecayingSigma()

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

◆ SetValueTolerance()

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

◆ SortCostFunctionValues()

virtual void itk::CMAEvolutionStrategyOptimizer::SortCostFunctionValues ( void  )
protectedvirtual

Sort the m_CostFunctionValues vector and update m_MeasureHistory

◆ StartOptimization()

void itk::CMAEvolutionStrategyOptimizer::StartOptimization ( void  )
override

◆ StopOptimization()

virtual void itk::CMAEvolutionStrategyOptimizer::StopOptimization ( void  )
virtual

◆ TestConvergence()

virtual bool itk::CMAEvolutionStrategyOptimizer::TestConvergence ( bool  firstCheck)
protectedvirtual

Check if convergence has occured:

  • Check if the maximum number of iterations will not be exceeded in the following iteration
  • Check if the step was not too large: if ( sigma * sqrt(C[i,i]) > PositionToleranceMax*sigma0 for any i )
  • Check for zero steplength (should never happen): if ( sigma * D[i] <= 0 for all i )
  • if firstCheck==true -> quit function
  • Check if the step was not too small: if ( sigma * max( abs(p_c[i]), sqrt(C[i,i]) ) < PositionToleranceMin*sigma0 for all i )
  • Check if the value tolerance is satisfied.

◆ UpdateBD()

virtual void itk::CMAEvolutionStrategyOptimizer::UpdateBD ( void  )
protectedvirtual

Update the eigen decomposition and m_CurrentMaximumD/m_CurrentMinimumD

◆ UpdateC()

virtual void itk::CMAEvolutionStrategyOptimizer::UpdateC ( void  )
protectedvirtual

Update the covariance matrix C

◆ UpdateConjugateEvolutionPath()

virtual void itk::CMAEvolutionStrategyOptimizer::UpdateConjugateEvolutionPath ( void  )
protectedvirtual

Update m_ConjugateEvolutionPath

◆ UpdateEvolutionPath()

virtual void itk::CMAEvolutionStrategyOptimizer::UpdateEvolutionPath ( void  )
protectedvirtual

Update m_EvolutionPath

◆ UpdateHeaviside()

virtual void itk::CMAEvolutionStrategyOptimizer::UpdateHeaviside ( void  )
protectedvirtual

Update m_Heaviside

◆ UpdateSigma()

virtual void itk::CMAEvolutionStrategyOptimizer::UpdateSigma ( void  )
protectedvirtual

Update the Sigma either by adaptation or using the predefined function

Field Documentation

◆ m_B

CovarianceMatrixType itk::CMAEvolutionStrategyOptimizer::m_B
protected

B: eigen vector matrix

Definition at line 311 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_C

CovarianceMatrixType itk::CMAEvolutionStrategyOptimizer::m_C
protected

C: covariance matrix

Definition at line 309 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_ConjugateEvolutionPath

ParametersType itk::CMAEvolutionStrategyOptimizer::m_ConjugateEvolutionPath
protected

$p_\sigma$

Definition at line 303 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_ConjugateEvolutionPathConstant

double itk::CMAEvolutionStrategyOptimizer::m_ConjugateEvolutionPathConstant
protected

$c_{\sigma}$

Definition at line 263 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CostFunctionValues

MeasureContainerType itk::CMAEvolutionStrategyOptimizer::m_CostFunctionValues
protected

cost function values for each $x_i = m + d_i$

Definition at line 295 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CovarianceMatrixAdaptationConstant

double itk::CMAEvolutionStrategyOptimizer::m_CovarianceMatrixAdaptationConstant
protected

$c_{cov}$

Definition at line 267 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CovarianceMatrixAdaptationWeight

double itk::CMAEvolutionStrategyOptimizer::m_CovarianceMatrixAdaptationWeight
protected

$\mu_{cov} = \mu_{eff}$

Definition at line 271 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CurrentIteration

unsigned long itk::CMAEvolutionStrategyOptimizer::m_CurrentIteration
protected

The current iteration number

Definition at line 243 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CurrentMaximumD

double itk::CMAEvolutionStrategyOptimizer::m_CurrentMaximumD
protected

The current maximum square root eigen value:

Definition at line 285 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CurrentMinimumD

double itk::CMAEvolutionStrategyOptimizer::m_CurrentMinimumD
protected

The current minimum square root eigen value:

Definition at line 283 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CurrentNormalizedStep

ParametersType itk::CMAEvolutionStrategyOptimizer::m_CurrentNormalizedStep
protected

$1/\sigma * D^{-1} * B' * m_CurrentScaledStep, needed for p_{\sigma}$

Definition at line 299 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CurrentScaledStep

ParametersType itk::CMAEvolutionStrategyOptimizer::m_CurrentScaledStep
protected

$m(g+1) - m(g)$

Definition at line 297 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CurrentSigma

double itk::CMAEvolutionStrategyOptimizer::m_CurrentSigma
protected

The current value of Sigma

Definition at line 280 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_CurrentValue

MeasureType itk::CMAEvolutionStrategyOptimizer::m_CurrentValue
protected

The value of the cost function at the current position

Definition at line 240 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_D

EigenValueMatrixType itk::CMAEvolutionStrategyOptimizer::m_D
protected

D: sqrt(eigen values)

Definition at line 313 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_EffectiveMu

double itk::CMAEvolutionStrategyOptimizer::m_EffectiveMu
protected

Some other constants, without set/get methods These settings have default values. $\mu_{eff}$

Definition at line 261 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_EvolutionPath

ParametersType itk::CMAEvolutionStrategyOptimizer::m_EvolutionPath
protected

$p_c$

Definition at line 301 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_EvolutionPathConstant

double itk::CMAEvolutionStrategyOptimizer::m_EvolutionPathConstant
protected

$c_c$

Definition at line 269 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_ExpectationNormNormalDistribution

double itk::CMAEvolutionStrategyOptimizer::m_ExpectationNormNormalDistribution
protected

$chiN  = E( \|N(0,I)\|$

Definition at line 273 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_Heaviside

bool itk::CMAEvolutionStrategyOptimizer::m_Heaviside
protected

$h_{\sigma}$

Definition at line 288 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_HistoryLength

unsigned long itk::CMAEvolutionStrategyOptimizer::m_HistoryLength
protected

Length of the MeasureHistory deque

Definition at line 277 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_InitialSigma

double itk::CMAEvolutionStrategyOptimizer::m_InitialSigma
private

Definition at line 416 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_MaximumDeviation

double itk::CMAEvolutionStrategyOptimizer::m_MaximumDeviation
private

Definition at line 420 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_MaximumNumberOfIterations

unsigned long itk::CMAEvolutionStrategyOptimizer::m_MaximumNumberOfIterations
private

Settings that are only inspected/changed by the associated get/set member functions.

Definition at line 414 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_MeasureHistory

MeasureHistoryType itk::CMAEvolutionStrategyOptimizer::m_MeasureHistory
protected

History of best measure values

Definition at line 306 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_MinimumDeviation

double itk::CMAEvolutionStrategyOptimizer::m_MinimumDeviation
private

Definition at line 421 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_NormalizedSearchDirs

ParameterContainerType itk::CMAEvolutionStrategyOptimizer::m_NormalizedSearchDirs
protected

realisations of $N(0,I)$

Definition at line 293 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_NumberOfParents

unsigned int itk::CMAEvolutionStrategyOptimizer::m_NumberOfParents
protected

Definition at line 254 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_PopulationSize

unsigned int itk::CMAEvolutionStrategyOptimizer::m_PopulationSize
protected

Definition at line 253 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_PositionToleranceMax

double itk::CMAEvolutionStrategyOptimizer::m_PositionToleranceMax
private

Definition at line 422 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_PositionToleranceMin

double itk::CMAEvolutionStrategyOptimizer::m_PositionToleranceMin
private

Definition at line 423 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_RandomGenerator

RandomGeneratorType::Pointer itk::CMAEvolutionStrategyOptimizer::m_RandomGenerator
protected

The random number generator used to generate the offspring.

Definition at line 237 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_RecombinationWeights

RecombinationWeightsType itk::CMAEvolutionStrategyOptimizer::m_RecombinationWeights
protected

array of $w_i$

Definition at line 275 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_RecombinationWeightsPreset

std::string itk::CMAEvolutionStrategyOptimizer::m_RecombinationWeightsPreset
private

Definition at line 419 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_SearchDirs

ParameterContainerType itk::CMAEvolutionStrategyOptimizer::m_SearchDirs
protected

$d_i = x_i - m$

Definition at line 291 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_SigmaDampingConstant

double itk::CMAEvolutionStrategyOptimizer::m_SigmaDampingConstant
protected

$d_{\sigma}$

Definition at line 265 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_SigmaDecayA

double itk::CMAEvolutionStrategyOptimizer::m_SigmaDecayA
private

Definition at line 417 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_SigmaDecayAlpha

double itk::CMAEvolutionStrategyOptimizer::m_SigmaDecayAlpha
private

Definition at line 418 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_Stop

bool itk::CMAEvolutionStrategyOptimizer::m_Stop
protected

Boolean that indicates whether the optimizer should stop

Definition at line 249 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_StopCondition

StopConditionType itk::CMAEvolutionStrategyOptimizer::m_StopCondition
protected

The stop condition

Definition at line 246 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_UpdateBDPeriod

unsigned int itk::CMAEvolutionStrategyOptimizer::m_UpdateBDPeriod
protected

Definition at line 255 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_UseCovarianceMatrixAdaptation

bool itk::CMAEvolutionStrategyOptimizer::m_UseCovarianceMatrixAdaptation
protected

Settings that may be changed by the optimizer:

Definition at line 252 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_UseDecayingSigma

bool itk::CMAEvolutionStrategyOptimizer::m_UseDecayingSigma
private

Definition at line 415 of file itkCMAEvolutionStrategyOptimizer.h.

◆ m_ValueTolerance

double itk::CMAEvolutionStrategyOptimizer::m_ValueTolerance
private

Definition at line 424 of file itkCMAEvolutionStrategyOptimizer.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo