18 #ifndef itkOnePlusOneEvolutionaryOptimizer_h
19 #define itkOnePlusOneEvolutionaryOptimizer_h
23 #include "ITKOptimizersExport.h"
95 itkSetMacro(Maximize,
bool);
96 itkBooleanMacro(Maximize);
97 itkGetConstReferenceMacro(Maximize,
bool);
101 {
return !m_Maximize; }
103 { this->SetMaximize(!v); }
105 { SetMaximize(
false); }
107 { SetMaximize(
true); }
110 itkSetMacro(MaximumIteration,
unsigned int);
111 itkGetConstReferenceMacro(MaximumIteration,
unsigned int);
115 itkSetMacro(GrowthFactor,
double);
116 itkGetConstReferenceMacro(GrowthFactor,
double);
120 itkSetMacro(ShrinkFactor,
double);
121 itkGetConstReferenceMacro(ShrinkFactor,
double);
125 itkSetMacro(InitialRadius,
double);
126 itkGetConstReferenceMacro(InitialRadius,
double);
131 itkSetMacro(Epsilon,
double);
132 itkGetConstReferenceMacro(Epsilon,
double);
136 itkGetConstReferenceMacro(FrobeniusNorm,
double);
138 void SetNormalVariateGenerator(NormalVariateGeneratorType *generator);
146 void Initialize(
double initialRadius,
double grow = -1,
double shrink = -1);
149 itkGetConstReferenceMacro(CurrentCost, MeasureType);
154 itkGetConstReferenceMacro(CurrentIteration,
unsigned int);
157 itkGetConstReferenceMacro(Initialized,
bool);
162 virtual void StartOptimization() ITK_OVERRIDE;
167 void StopOptimization()
170 itkGetConstReferenceMacro(CatchGetValueException,
bool);
171 itkSetMacro(CatchGetValueException,
bool);
173 itkGetConstReferenceMacro(MetricWorstPossibleValue,
double);
174 itkSetMacro(MetricWorstPossibleValue,
double);
176 virtual const std::string GetStopConditionDescription() const ITK_OVERRIDE;
180 OnePlusOneEvolutionaryOptimizer(const OnePlusOneEvolutionaryOptimizer &);
181 virtual ~OnePlusOneEvolutionaryOptimizer() ITK_OVERRIDE;
182 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
190 unsigned int m_MaximumIteration;
193 unsigned int m_CurrentIteration;
195 bool m_CatchGetValueException;
196 double m_MetricWorstPossibleValue;
206 double m_InitialRadius;
209 double m_GrowthFactor;
212 double m_ShrinkFactor;
227 std::ostringstream m_StopConditionDescription;
231 double m_FrobeniusNorm;
Statistics::RandomVariateGeneratorBase NormalVariateGeneratorType
This class is a base for the CostFunctions returning a single value.
Light weight base class for most itk classes.
SingleValuedCostFunction CostFunctionType
SmartPointer< const Self > ConstPointer
This class is a base for the Optimization methods that optimize a single valued function.
CostFunctionType::MeasureType MeasureType
CostFunctionType::Pointer CostFunctionPointer
MeasureType GetValue() const
SingleValuedNonLinearOptimizer Superclass
SmartPointer< Self > Pointer
Defines common interfaces for random variate generators.
1+1 evolutionary strategy optimizer
Control indentation during Print() invocation.
OnePlusOneEvolutionaryOptimizer Self