17 #ifndef MITKOPTIMIZERPARAMETERS_H
18 #define MITKOPTIMIZERPARAMETERS_H
23 #include <itkObjectFactory.h>
46 itkFactorylessNewMacro(Self) itkCloneMacro(Self)
52 EXHAUSTIVEOPTIMIZER = 0,
53 GRADIENTDESCENTOPTIMIZER = 1,
54 QUATERNIONRIGIDTRANSFORMGRADIENTDESCENTOPTIMIZER = 2,
56 ONEPLUSONEEVOLUTIONARYOPTIMIZER = 4,
59 REGULARSTEPGRADIENTDESCENTOPTIMIZER = 7,
60 VERSORTRANSFORMOPTIMIZER = 8,
62 CONJUGATEGRADIENTOPTIMIZER = 10,
65 VERSORRIGID3DTRANSFORMOPTIMIZER = 13
71 itkSetMacro(Optimizer,
int);
75 itkGetMacro(Optimizer,
int);
80 itkSetMacro(Dimension,
unsigned int);
85 itkGetMacro(Dimension,
unsigned int);
90 itkSetMacro(Maximize,
bool);
95 itkGetMacro(Maximize,
bool);
100 itkSetMacro(StepLengthExhaustive,
float);
105 itkGetMacro(StepLengthExhaustive,
float);
110 itkSetMacro(NumberOfStepsExhaustive,
int);
115 itkGetMacro(NumberOfStepsExhaustive,
int);
120 itkSetMacro(LearningRateGradientDescent,
float);
125 itkGetMacro(LearningRateGradientDescent,
float);
130 itkSetMacro(NumberOfIterationsGradientDescent,
int);
135 itkGetMacro(NumberOfIterationsGradientDescent,
int);
140 itkSetMacro(LearningRateQuaternionRigidTransformGradientDescent,
float);
145 itkGetMacro(LearningRateQuaternionRigidTransformGradientDescent,
float);
150 itkSetMacro(NumberOfIterationsQuaternionRigidTransformGradientDescent,
int);
155 itkGetMacro(NumberOfIterationsQuaternionRigidTransformGradientDescent,
int);
160 itkSetMacro(GrowthFactorOnePlusOneEvolutionary,
float);
165 itkGetMacro(GrowthFactorOnePlusOneEvolutionary,
float);
170 itkSetMacro(ShrinkFactorOnePlusOneEvolutionary,
float);
175 itkGetMacro(ShrinkFactorOnePlusOneEvolutionary,
float);
180 itkSetMacro(EpsilonOnePlusOneEvolutionary,
float);
185 itkGetMacro(EpsilonOnePlusOneEvolutionary,
float);
190 itkSetMacro(InitialRadiusOnePlusOneEvolutionary,
float);
195 itkGetMacro(InitialRadiusOnePlusOneEvolutionary,
float);
200 itkSetMacro(NumberOfIterationsOnePlusOneEvolutionary,
int);
205 itkGetMacro(NumberOfIterationsOnePlusOneEvolutionary,
int);
210 itkSetMacro(StepLengthPowell,
float);
215 itkGetMacro(StepLengthPowell,
float);
220 itkSetMacro(StepTolerancePowell,
float);
225 itkGetMacro(StepTolerancePowell,
float);
230 itkSetMacro(ValueTolerancePowell,
float);
235 itkGetMacro(ValueTolerancePowell,
float);
240 itkSetMacro(NumberOfIterationsPowell,
int);
245 itkGetMacro(NumberOfIterationsPowell,
int);
250 itkSetMacro(StepLengthFRPR,
float);
255 itkGetMacro(StepLengthFRPR,
float);
260 itkSetMacro(FletchReevesFRPR,
bool);
265 itkGetMacro(FletchReevesFRPR,
bool);
270 itkSetMacro(PolakRibiereFRPR,
bool);
275 itkGetMacro(PolakRibiereFRPR,
bool);
280 itkSetMacro(NumberOfIterationsFRPR,
int);
285 itkGetMacro(NumberOfIterationsFRPR,
int);
290 itkSetMacro(GradientMagnitudeToleranceRegularStepGradientDescent,
float);
295 itkGetMacro(GradientMagnitudeToleranceRegularStepGradientDescent,
float);
300 itkSetMacro(MinimumStepLengthRegularStepGradientDescent,
float);
305 itkGetMacro(MinimumStepLengthRegularStepGradientDescent,
float);
310 itkSetMacro(MaximumStepLengthRegularStepGradientDescent,
float);
315 itkGetMacro(MaximumStepLengthRegularStepGradientDescent,
float);
320 itkSetMacro(NumberOfIterationsRegularStepGradientDescent,
int);
325 itkGetMacro(NumberOfIterationsRegularStepGradientDescent,
int);
330 itkSetMacro(RelaxationFactorRegularStepGradientDescent,
double);
335 itkGetMacro(RelaxationFactorRegularStepGradientDescent,
double);
340 itkSetMacro(GradientMagnitudeToleranceVersorRigid3DTransform,
float);
345 itkGetMacro(GradientMagnitudeToleranceVersorRigid3DTransform,
float);
350 itkSetMacro(MinimumStepLengthVersorRigid3DTransform,
float);
355 itkGetMacro(MinimumStepLengthVersorRigid3DTransform,
float);
360 itkSetMacro(MaximumStepLengthVersorRigid3DTransform,
float);
365 itkGetMacro(MaximumStepLengthVersorRigid3DTransform,
float);
370 itkSetMacro(NumberOfIterationsVersorRigid3DTransform,
int);
375 itkGetMacro(NumberOfIterationsVersorRigid3DTransform,
int);
380 itkSetMacro(GradientMagnitudeToleranceVersorTransform,
float);
385 itkGetMacro(GradientMagnitudeToleranceVersorTransform,
float);
390 itkSetMacro(MinimumStepLengthVersorTransform,
float);
395 itkGetMacro(MinimumStepLengthVersorTransform,
float);
400 itkSetMacro(MaximumStepLengthVersorTransform,
float);
405 itkGetMacro(MaximumStepLengthVersorTransform,
float);
410 itkSetMacro(NumberOfIterationsVersorTransform,
int);
415 itkGetMacro(NumberOfIterationsVersorTransform,
int);
420 void SetSimplexDeltaAmoeba(itk::Array<double> simplexDelta);
425 itk::Array<double> GetSimplexDeltaAmoeba();
430 itkSetMacro(ParametersConvergenceToleranceAmoeba,
float);
435 itkGetMacro(ParametersConvergenceToleranceAmoeba,
float);
440 itkSetMacro(FunctionConvergenceToleranceAmoeba,
float);
445 itkGetMacro(FunctionConvergenceToleranceAmoeba,
float);
450 itkSetMacro(NumberOfIterationsAmoeba,
int);
455 itkGetMacro(NumberOfIterationsAmoeba,
int);
462 itkSetMacro(GradientConvergenceToleranceLBFGS,
float);
467 itkGetMacro(GradientConvergenceToleranceLBFGS,
float);
472 itkSetMacro(LineSearchAccuracyLBFGS,
float);
477 itkGetMacro(LineSearchAccuracyLBFGS,
float);
482 itkSetMacro(DefaultStepLengthLBFGS,
float);
487 itkGetMacro(DefaultStepLengthLBFGS,
float);
492 itkSetMacro(TraceOnLBFGS,
bool);
497 itkGetMacro(TraceOnLBFGS,
bool);
502 itkSetMacro(NumberOfIterationsLBFGS,
int);
507 itkGetMacro(NumberOfIterationsLBFGS,
int);
512 itkSetMacro(aSPSA,
float);
517 itkGetMacro(aSPSA,
float);
522 itkSetMacro(ASPSA,
float);
527 itkGetMacro(ASPSA,
float);
532 itkSetMacro(AlphaSPSA,
float);
537 itkGetMacro(AlphaSPSA,
float);
542 itkSetMacro(cSPSA,
float);
547 itkGetMacro(cSPSA,
float);
552 itkSetMacro(GammaSPSA,
float);
557 itkGetMacro(GammaSPSA,
float);
562 itkSetMacro(ToleranceSPSA,
float);
567 itkGetMacro(ToleranceSPSA,
float);
572 itkSetMacro(StateOfConvergenceDecayRateSPSA,
float);
577 itkGetMacro(StateOfConvergenceDecayRateSPSA,
float);
582 itkSetMacro(MinimumNumberOfIterationsSPSA,
int);
587 itkGetMacro(MinimumNumberOfIterationsSPSA,
int);
592 itkSetMacro(NumberOfPerturbationsSPSA,
int);
597 itkGetMacro(NumberOfPerturbationsSPSA,
int);
602 itkSetMacro(NumberOfIterationsSPSA,
int);
607 itkGetMacro(NumberOfIterationsSPSA,
int);
700 #endif // MITKOPTIMIZERPARAMETERS_H
float m_ParametersConvergenceToleranceAmoeba
float m_MaximumStepLengthVersorTransform
int m_NumberOfIterationsGradientDescent
int m_NumberOfIterationsAmoeba
float m_MaximumStepLengthRegularStepGradientDescent
int m_NumberOfIterationsRegularStepGradientDescent
float m_DefaultStepLengthLBFGS
float m_MinimumStepLengthRegularStepGradientDescent
int m_NumberOfIterationsVersorRigid3DTransform
#define MITKRIGIDREGISTRATION_EXPORT
float m_GradientMagnitudeToleranceVersorTransform
DataCollection - Class to facilitate loading/accessing structured data.
int m_NumberOfIterationsFRPR
int m_NumberOfIterationsQuaternionRigidTransformGradientDescent
float m_LineSearchAccuracyLBFGS
float m_GradientMagnitudeToleranceRegularStepGradientDescent
int m_NumberOfIterationsOnePlusOneEvolutionary
This class is used to hold all optimizer parameters needed for a rigid registration process...
float m_GradientConvergenceToleranceLBFGS
float m_MinimumStepLengthVersorTransform
float m_GrowthFactorOnePlusOneEvolutionary
float m_GradientMagnitudeToleranceVersorRigid3DTransform
int m_NumberOfPerturbationsSPSA
double m_RelaxationFactorRegularStepGradientDescent
float m_EpsilonOnePlusOneEvolutionary
#define mitkClassMacroItkParent(className, SuperClassName)
int m_NumberOfIterationsSPSA
float m_StepTolerancePowell
float m_LearningRateGradientDescent
int m_MinimumNumberOfIterationsSPSA
float m_FunctionConvergenceToleranceAmoeba
float m_ShrinkFactorOnePlusOneEvolutionary
float m_MinimumStepLengthVersorRigid3DTransform
int m_NumberOfIterationsPowell
int m_NumberOfStepsExhaustive
float m_InitialRadiusOnePlusOneEvolutionary
float m_MaximumStepLengthVersorRigid3DTransform
itk::Array< double > m_SimplexDeltaAmoeba
float m_LearningRateQuaternionRigidTransformGradientDescent
int m_NumberOfIterationsVersorTransform
int m_NumberOfIterationsLBFGS
float m_ValueTolerancePowell
float m_StepLengthExhaustive
OptimizerType
Unique integer value for every optimizer.
float m_StateOfConvergenceDecayRateSPSA