#include <elxCMAEvolutionStrategy.h>
An optimizer based on the itk::CMAEvolutionStrategyOptimizer.
A Covariance-Matrix-Adaptation-Evolution-Strategy optimizer.
This optimizer support the NewSamplesEveryIteration option. It requests new samples for the computation of each search direction (not during the offspring generation). The theory doesn't say anything about such a situation, so, think twice before using the NewSamplesEveryIteration option.
The parameters used in this class are:
Optimizer: Select this optimizer as follows:
(Optimizer "CMAEvolutionStrategy")
MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 500.
StepLength: Set the length of the initial step ( = Sigma0 = InitialSigma).
example: (StepLength 2.0 1.0 0.5)
Recommended value: 1/3 of the expected parameter range.
Default value: 1.0.
ValueTolerance: Stopping criterion. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (ValueTolerance 0.001 0.0001 0.000001)
Default value: 0.00001. Can be specified for each resolution.
PositionToleranceMin: Stopping criterion. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (PositionToleranceMin 0.001 0.0001 0.000001)
Default value: 1e-8. Can be specified for each resolution.
PositionToleranceMax: Stopping criterion. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (PositionToleranceMax 0.001 0.0001 0.000001)
Default value: 1e8. Can be specified for each resolution.
PopulationSize: the number of parameter vectors evaluated in each iteration.
If you set it to 0, a default value is calculated by the optimizer, which is reported back to the elastix.log file.
example: (PopulationSize 0 20 20)
Default: 0 (so, automatically determined). Can be specified for each resolution.
NumberOfParents: the number of parameter vectors selected for recombination.
If you set it to 0, a default value is calculated by the optimizer, which is reported back to the elastix.log file.
example: (NumberOfParents 0 10 10)
Default: 0 (so, automatically determined). Can be specified for each resolution.
This value must be less than or equal to the PopulationSize.
MaximumDeviation: the step length is limited to this value. See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (MaximumDeviation 10.0 10.0 5.0)
Default: 10.0 * positionToleranceMax = practically infinity. Can be specified for each resolution.
MinimumDeviation: the step length is ensured to be greater than this value.
See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (MinimumDeviation 0.01 0.01 0.0001)
Default: 0.0. Can be specified for each resolution.
UseDecayingSigma: use a predefined decaying function to control the steplength sigma.
example: (UseDecayingSigma "false" "true" "false")
Default/recommended: "false". Can be specified for each resolution.
If you set it to true the SP_A and SP_alpha parameters apply.
SP_A: If UseDecayingSigma is set to "true", the steplength at each iteration is defined by:
.
where sigma(0) is set by the parameter "StepLength".
example: (SP_A 50.0 50.0 100.0)
The default value is 50.0. SP_A can be defined for each resolution.
SP_alpha: If UseDecayingSigma is set to "true", the steplength at each iteration is defined by:
.
where sigma(0) is set by the parameter "StepLength".
example: (SP_alpha 0.602 0.602 0.602)
The default value is 0.602. SP_alpha can be defined for each resolution.
UseCovarianceMatrixAdaptation: a boolean that determines whether to use the covariance matrix adaptation scheme.
example: (UseCovarianceMatrixAdaptation "false" "true" "true")
Default: "true". This parameter may be altered by the optimizer. The actual value used is
reported back in the elastix.log file. This parameter can be specified for each resolution.
RecombinationWeightsPreset: the name of a preset for the recombination weights.
See the documentation of the itk::CMAEvolutionStrategyOptimizer for more information.
example: (UseCovarianceMatrixAdaptation "equal" "linear" "superlinear")
Default/recommended: "superlinear". Choose one of {"equal", "linear", "superlinear"}. This parameter can be specified for each resolution.
UpdateBDPeriod: the number of iterations after which the eigendecomposition of the covariance matrix is updated. If 0, the optimizer estimates a value. The actual value used is reported back in the elastix.log file. This parameter can be specified for each resolution.
example: (UpdateBDPeriod 0 0 50)
Default: 0 (so, automatically determined).
Definition at line 115 of file elxCMAEvolutionStrategy.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::CMAEvolutionStrategyOptimizer | |
static Pointer | New () |
Static Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer | |
static Pointer | New () |
Static Public Member Functions inherited from elastix::BaseComponent | |
template<typename TBaseComponent > | |
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType()) |
static void | InitializeElastixExecutable () |
static bool | IsElastixLibrary () |
Protected Member Functions | |
CMAEvolutionStrategy ()=default | |
void | InitializeProgressVariables () override |
~CMAEvolutionStrategy () override=default | |
Protected Member Functions inherited from itk::CMAEvolutionStrategyOptimizer | |
virtual void | AdvanceOneStep () |
CMAEvolutionStrategyOptimizer () | |
virtual void | FixNumericalErrors () |
virtual void | GenerateOffspring () |
virtual void | InitializeBCD () |
virtual void | InitializeConstants () |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SortCostFunctionValues () |
virtual bool | TestConvergence (bool firstCheck) |
virtual void | UpdateBD () |
virtual void | UpdateC () |
virtual void | UpdateConjugateEvolutionPath () |
virtual void | UpdateEvolutionPath () |
virtual void | UpdateHeaviside () |
virtual void | UpdateSigma () |
~CMAEvolutionStrategyOptimizer () override=default | |
Protected Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer | |
virtual void | GetScaledDerivative (const ParametersType ¶meters, DerivativeType &derivative) const |
virtual MeasureType | GetScaledValue (const ParametersType ¶meters) const |
virtual void | GetScaledValueAndDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
ScaledSingleValuedNonLinearOptimizer () | |
void | SetCurrentPosition (const ParametersType ¶m) override |
virtual void | SetScaledCurrentPosition (const ParametersType ¶meters) |
~ScaledSingleValuedNonLinearOptimizer () override=default | |
Protected Member Functions inherited from elastix::OptimizerBase< TElastix > | |
virtual bool | GetNewSamplesEveryIteration () const |
OptimizerBase ()=default | |
virtual void | SelectNewSamples () |
~OptimizerBase () override=default | |
Protected Member Functions inherited from elastix::BaseComponentSE< TElastix > | |
BaseComponentSE ()=default | |
~BaseComponentSE () override=default | |
Protected Member Functions inherited from elastix::BaseComponent | |
BaseComponent ()=default | |
virtual | ~BaseComponent ()=default |
Private Attributes | |
elxOverrideGetSelfMacro | |
using elastix::CMAEvolutionStrategy< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 127 of file elxCMAEvolutionStrategy.h.
using elastix::CMAEvolutionStrategy< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 152 of file elxCMAEvolutionStrategy.h.
using elastix::CMAEvolutionStrategy< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 126 of file elxCMAEvolutionStrategy.h.
using elastix::CMAEvolutionStrategy< TElastix >::Self = CMAEvolutionStrategy |
Standard ITK.
Definition at line 123 of file elxCMAEvolutionStrategy.h.
using elastix::CMAEvolutionStrategy< TElastix >::Superclass1 = CMAEvolutionStrategyOptimizer |
Definition at line 124 of file elxCMAEvolutionStrategy.h.
using elastix::CMAEvolutionStrategy< TElastix >::Superclass2 = OptimizerBase<TElastix> |
Definition at line 125 of file elxCMAEvolutionStrategy.h.
enum itk::CMAEvolutionStrategyOptimizer::StopConditionType |
Definition at line 69 of file itkCMAEvolutionStrategyOptimizer.h.
|
protecteddefault |
|
overrideprotecteddefault |
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Methods to set parameters and print output at different stages in the registration process.
Reimplemented from elastix::BaseComponent.
elastix::CMAEvolutionStrategy< TElastix >::elxClassNameMacro | ( | "CMAEvolutionStrategy< TElastix >" | ) |
Name of this class. Use this name in the parameter file to select this specific optimizer.
example: (Optimizer "CMAEvolutionStrategy")
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::CMAEvolutionStrategyOptimizer.
|
overrideprotectedvirtual |
Call the superclass' implementation and print the value of some variables
Reimplemented from itk::CMAEvolutionStrategyOptimizer.
elastix::CMAEvolutionStrategy< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | CMAEvolutionStrategy< TElastix > | ) |
|
static |
Method for creation through the object factory.
|
override |
Check if any scales are set, and set the UseScales flag on or off; after that call the superclass' implementation
|
private |
Definition at line 185 of file elxCMAEvolutionStrategy.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |