itkExhaustiveOptimizer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkExhaustiveOptimizer_h
00018 #define __itkExhaustiveOptimizer_h
00019
00020 #include "itkSingleValuedNonLinearOptimizer.h"
00021
00022 namespace itk
00023 {
00024
00080 class ITK_EXPORT ExhaustiveOptimizer :
00081 public SingleValuedNonLinearOptimizer
00082 {
00083 public:
00085 typedef ExhaustiveOptimizer Self;
00086 typedef SingleValuedNonLinearOptimizer Superclass;
00087 typedef SmartPointer<Self> Pointer;
00088 typedef SmartPointer<const Self> ConstPointer;
00089
00090 typedef Array< unsigned long > StepsType;
00092 itkNewMacro(Self);
00093
00095 itkTypeMacro( ExhaustiveOptimizer, SingleValuedNonLinearOptimizer );
00096
00097 virtual void StartOptimization( void );
00098
00099 void StartWalking( void );
00100 void ResumeWalking( void );
00101 void StopWalking(void);
00102
00103 itkSetMacro( StepLength, double );
00104 itkSetMacro( NumberOfSteps, StepsType );
00105 itkGetConstReferenceMacro( StepLength, double );
00106 itkGetConstReferenceMacro( NumberOfSteps, StepsType );
00107 itkGetConstReferenceMacro( CurrentValue, MeasureType );
00108 itkGetConstReferenceMacro( MaximumMetricValue, MeasureType );
00109 itkGetConstReferenceMacro( MinimumMetricValue, MeasureType );
00110 itkGetConstReferenceMacro( MinimumMetricValuePosition, ParametersType );
00111 itkGetConstReferenceMacro( MaximumMetricValuePosition, ParametersType );
00112 itkGetConstReferenceMacro( CurrentIndex, ParametersType );
00113 itkGetConstReferenceMacro( MaximumNumberOfIterations, unsigned long );
00114
00115
00116 protected:
00117 ExhaustiveOptimizer();
00118 virtual ~ExhaustiveOptimizer() {};
00119 void PrintSelf(std::ostream& os, Indent indent) const;
00120
00122 void AdvanceOneStep( void );
00123 void IncrementIndex( ParametersType & param );
00125
00126
00127 protected:
00128 MeasureType m_CurrentValue;
00129 StepsType m_NumberOfSteps;
00130 unsigned long m_CurrentIteration;
00131 bool m_Stop;
00132 unsigned int m_CurrentParameter;
00133 double m_StepLength;
00134 ParametersType m_CurrentIndex;
00135 unsigned long m_MaximumNumberOfIterations;
00136 MeasureType m_MaximumMetricValue;
00137 MeasureType m_MinimumMetricValue;
00138 ParametersType m_MinimumMetricValuePosition;
00139 ParametersType m_MaximumMetricValuePosition;
00140
00141 private:
00142 ExhaustiveOptimizer(const Self&);
00143 void operator=(const Self&);
00144
00145 };
00146
00147 }
00148
00149 #endif
00150