Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkOptimizerParameters.cpp
Go to the documentation of this file.
1 /*===================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
18 
19 namespace mitk
20 {
22  : m_Optimizer(EXHAUSTIVEOPTIMIZER),
23  // for all Optimizer
24  m_Dimension(2),
25  m_Maximize(false),
26 
27  // for itk::ExhaustiveOptimizer
28  m_StepLengthExhaustive(1.0),
29  m_NumberOfStepsExhaustive(10),
30 
31  // for itk::GradientDescentOptimizer
32  m_LearningRateGradientDescent(0.01),
33  m_NumberOfIterationsGradientDescent(200),
34 
35  // for itk::QuaternionRigidTransformGradientDescentOptimizer
36  m_LearningRateQuaternionRigidTransformGradientDescent(0.01),
37  m_NumberOfIterationsQuaternionRigidTransformGradientDescent(200),
38 
39  // for itk::LBFGSBOptimizer
40 
41  // for itk::OnePlusOneEvolutionaryOptimizer
42  m_GrowthFactorOnePlusOneEvolutionary(0.01),
43  m_ShrinkFactorOnePlusOneEvolutionary(0.001),
44  m_EpsilonOnePlusOneEvolutionary(2),
45  m_InitialRadiusOnePlusOneEvolutionary(1),
46  m_NumberOfIterationsOnePlusOneEvolutionary(200),
47 
48  // for itk::PowellOptimizer
49  m_StepLengthPowell(0.01),
50  m_StepTolerancePowell(0.001),
51  m_ValueTolerancePowell(0.001),
52  m_NumberOfIterationsPowell(200),
53 
54  // for itk::FRPROptimizer
55  m_StepLengthFRPR(0.01),
56  m_FletchReevesFRPR(true),
57  m_PolakRibiereFRPR(false),
58  m_NumberOfIterationsFRPR(200),
59 
60  // for itk::RegularStepGradientDescentOptimizer
61  m_GradientMagnitudeToleranceRegularStepGradientDescent(0.0001),
62  m_MinimumStepLengthRegularStepGradientDescent(0.001),
63  m_MaximumStepLengthRegularStepGradientDescent(1.0),
64  m_NumberOfIterationsRegularStepGradientDescent(100),
65  m_RelaxationFactorRegularStepGradientDescent(0.5),
66 
67  // for itk::VersorRigid3DTransformOptimizer
68  m_GradientMagnitudeToleranceVersorRigid3DTransform(0.0001),
69  m_MinimumStepLengthVersorRigid3DTransform(0.0001),
70  m_MaximumStepLengthVersorRigid3DTransform(4.0),
71  m_NumberOfIterationsVersorRigid3DTransform(200),
72 
73  // for itk::VersorTransformOptimizer
74  m_GradientMagnitudeToleranceVersorTransform(0.0001),
75  m_MinimumStepLengthVersorTransform(0.0001),
76  m_MaximumStepLengthVersorTransform(4.0),
77  m_NumberOfIterationsVersorTransform(200),
78 
79  // for itk::AmoebaOptimizer
80  m_ParametersConvergenceToleranceAmoeba(0.01),
81  m_FunctionConvergenceToleranceAmoeba(0.001),
82  m_NumberOfIterationsAmoeba(200),
83 
84  // for itk::ConjugateGradientOptimizer
85 
86  // for itk::LBFGSOptimizer
87  m_GradientConvergenceToleranceLBFGS(0.01),
88  m_LineSearchAccuracyLBFGS(0.01),
89  m_DefaultStepLengthLBFGS(0.01),
90  m_TraceOnLBFGS(true),
91  m_NumberOfIterationsLBFGS(200),
92 
93  // for itk::SPSAOptimizer
94  m_aSPSA(1.0),
95  m_ASPSA(10.0),
96  m_AlphaSPSA(0.602),
97  m_cSPSA(0.0001),
98  m_GammaSPSA(0.101),
99  m_ToleranceSPSA(1e-5),
100  m_StateOfConvergenceDecayRateSPSA(0.5),
101  m_MinimumNumberOfIterationsSPSA(10),
102  m_NumberOfPerturbationsSPSA(1),
103  m_NumberOfIterationsSPSA(200)
104  {
105  // for itk::AmoebaOptimizer
106  m_SimplexDeltaAmoeba.SetSize(16);
107  m_SimplexDeltaAmoeba.Fill(5.0);
108  }
109 
110  /********************************** for itk::AmoebaOptimizer ****************************************/
111 
112  void OptimizerParameters::SetSimplexDeltaAmoeba(itk::Array<double> simplexDelta)
113  {
114  m_SimplexDeltaAmoeba = simplexDelta;
115  }
116 
118 } // namespace mitk
void SetSimplexDeltaAmoeba(itk::Array< double > simplexDelta)
for itk::AmoebaOptimizer
itk::Array< double > GetSimplexDeltaAmoeba()
for itk::AmoebaOptimizer
DataCollection - Class to facilitate loading/accessing structured data.
itk::Array< double > m_SimplexDeltaAmoeba