00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "mitkOptimizerParameters.h"
00020
00021
00022 namespace mitk {
00023
00024 OptimizerParameters::OptimizerParameters() :
00025 m_Optimizer(EXHAUSTIVEOPTIMIZER),
00026
00027 m_Dimension(2),
00028 m_Maximize(false),
00029
00030
00031 m_StepLengthExhaustive(1.0),
00032 m_NumberOfStepsExhaustive(10),
00033
00034
00035 m_LearningRateGradientDescent(0.01),
00036 m_NumberOfIterationsGradientDescent(200),
00037
00038
00039 m_LearningRateQuaternionRigidTransformGradientDescent(0.01),
00040 m_NumberOfIterationsQuaternionRigidTransformGradientDescent(200),
00041
00042
00043
00044
00045 m_GrowthFactorOnePlusOneEvolutionary(0.01),
00046 m_ShrinkFactorOnePlusOneEvolutionary(0.001),
00047 m_EpsilonOnePlusOneEvolutionary(2),
00048 m_InitialRadiusOnePlusOneEvolutionary(1),
00049 m_NumberOfIterationsOnePlusOneEvolutionary(200),
00050
00051
00052 m_StepLengthPowell(0.01),
00053 m_StepTolerancePowell(0.001),
00054 m_ValueTolerancePowell(0.001),
00055 m_NumberOfIterationsPowell(200),
00056
00057
00058 m_StepLengthFRPR(0.01),
00059 m_FletchReevesFRPR(true),
00060 m_PolakRibiereFRPR(false),
00061 m_NumberOfIterationsFRPR(200),
00062
00063
00064 m_GradientMagnitudeToleranceRegularStepGradientDescent(0.0001),
00065 m_MinimumStepLengthRegularStepGradientDescent(0.001),
00066 m_MaximumStepLengthRegularStepGradientDescent(1.0),
00067 m_NumberOfIterationsRegularStepGradientDescent(100),
00068 m_RelaxationFactorRegularStepGradientDescent(0.5),
00069
00070
00071 m_GradientMagnitudeToleranceVersorRigid3DTransform(0.0001),
00072 m_MinimumStepLengthVersorRigid3DTransform(0.0001),
00073 m_MaximumStepLengthVersorRigid3DTransform(4.0),
00074 m_NumberOfIterationsVersorRigid3DTransform(200),
00075
00076
00077 m_GradientMagnitudeToleranceVersorTransform(0.0001),
00078 m_MinimumStepLengthVersorTransform(0.0001),
00079 m_MaximumStepLengthVersorTransform(4.0),
00080 m_NumberOfIterationsVersorTransform(200),
00081
00082
00083 m_ParametersConvergenceToleranceAmoeba(0.01),
00084 m_FunctionConvergenceToleranceAmoeba(0.001),
00085 m_NumberOfIterationsAmoeba(200),
00086
00087
00088
00089
00090 m_GradientConvergenceToleranceLBFGS(0.01),
00091 m_LineSearchAccuracyLBFGS(0.01),
00092 m_DefaultStepLengthLBFGS(0.01),
00093 m_TraceOnLBFGS(true),
00094 m_NumberOfIterationsLBFGS(200),
00095
00096
00097 m_aSPSA(1.0),
00098 m_ASPSA(10.0),
00099 m_AlphaSPSA(0.602),
00100 m_cSPSA(0.0001),
00101 m_GammaSPSA(0.101),
00102 m_ToleranceSPSA(1e-5),
00103 m_StateOfConvergenceDecayRateSPSA(0.5),
00104 m_MinimumNumberOfIterationsSPSA(10),
00105 m_NumberOfPerturbationsSPSA(1),
00106 m_NumberOfIterationsSPSA(200)
00107 {
00108
00109 m_SimplexDeltaAmoeba.SetSize(16);
00110 m_SimplexDeltaAmoeba.Fill(5.0);
00111 }
00112
00113
00114
00115 void OptimizerParameters::SetSimplexDeltaAmoeba(itk::Array<double> simplexDelta)
00116 {
00117 m_SimplexDeltaAmoeba = simplexDelta;
00118 }
00119
00120 itk::Array<double> OptimizerParameters::GetSimplexDeltaAmoeba()
00121 {
00122 return m_SimplexDeltaAmoeba;
00123 }
00124
00125 }