#include <freExhaustiveSOOptimizer.h>


Public Types | |
| typedef ExhaustiveSOOptimizer | Self |
| typedef SetupOptimizationOptimizer | Superclass |
| typedef itk::SmartPointer < Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
| typedef itk::Array < unsigned long > | StepsType |
| typedef itk::Array < long > | ParameterAxisType |
| typedef itk::Array < unsigned long > | AxisTypeType |
Public Member Functions | |
| virtual const char * | GetNameOfClass () const |
| virtual ::itk::LightObject::Pointer | CreateAnother (void) const |
| virtual void | StartOptimization (void) |
| void | StartWalking (void) |
| void | ResumeWalking (void) |
| void | StopWalking (void) |
| virtual bool | IsStoppable () const |
| virtual void | StopOptimization () |
| virtual bool | IsResumeable () const |
| virtual void | ResumeOptimization () |
| unsigned int | GetAxisCount () const |
| virtual void | SetStepLength (const double _arg) |
| virtual void | SetNumberOfSteps (const StepsType _arg) |
| virtual void | SetParameterAxis (const ParameterAxisType _arg) |
| virtual void | SetAxisType (const AxisTypeType _arg) |
| virtual void | SetMinimumIsBest (const bool _arg) |
| virtual bool | GetMinimumIsBest () |
| virtual const double & | GetStepLength () const |
| virtual const StepsType & | GetNumberOfSteps () const |
| virtual const ParameterAxisType & | GetParameterAxis () const |
| virtual const MeasureType & | GetMaximumMetricValue () const |
| virtual const MeasureType & | GetMinimumMetricValue () const |
| virtual const DecomposedMeasureType & | GetMaximumDecomposedMetricValue () const |
| virtual const DecomposedMeasureType & | GetMinimumDecomposedMetricValue () const |
| virtual const ParametersType & | GetMinimumMetricValuePosition () const |
| virtual const ParametersType & | GetMaximumMetricValuePosition () const |
| virtual const ParametersType & | GetCurrentIndex () const |
| virtual const unsigned long & | GetMaximumNumberOfIterations () const |
Static Public Member Functions | |
| static Pointer | New (void) |
Protected Member Functions | |
| ExhaustiveSOOptimizer () | |
| virtual | ~ExhaustiveSOOptimizer () |
| void | PrintSelf (std::ostream &os, itk::Indent indent) const |
| void | AdvanceOneStep (void) |
| void | IncrementIndex (ParametersType ¶m) |
Protected Attributes | |
| StepsType | m_NumberOfSteps |
| unsigned long | m_CurrentIteration |
| bool | m_Stop |
| unsigned int | m_CurrentParameter |
| double | m_StepLength |
| ParametersType | m_CurrentIndex |
| unsigned long | m_MaximumNumberOfIterations |
| MeasureType | m_MaximumMetricValue |
| MeasureType | m_MinimumMetricValue |
| DecomposedMeasureType | m_MaximumDecomposedMetricValue |
| DecomposedMeasureType | m_MinimumDecomposedMetricValue |
| ParametersType | m_MinimumMetricValuePosition |
| ParametersType | m_MaximumMetricValuePosition |
| ParameterAxisType | m_ParameterAxis |
| AxisTypeType | m_AxisType |
| bool | m_MinimumIsBest |
Private Member Functions | |
| ExhaustiveSOOptimizer (const Self &) | |
| void | operator= (const Self &) |
This optimizer is equivalent to an exahaustive search in a discrete grid defined over the parametric space. The grid parameters are define through an array of minimum and maximum values. The subdivisions of the grid along each one of the dimensions of the parametric space is defined by an array of number of steps. This optimizer is useful when its needed to plot the entire metric space to get an idea of how noisy it is etc...
The relevant parameters of the setup establishing the parametric space can be specified via IDPath. Parameters can be grouped to an axis in the parametric space. By default every parameter is an independent axis. The steps belong to the Axis, the scale to the parameter itself.
A typical use of the optimizer is to plot the metric space to get an idea of how noisy it is. An example is given below, where it is desired to plot the metric space with respect to translations along x, y and rotation of an Euler2DTransform.
OptimizerType::StepsType steps( m_Transform->GetNumberOfParameters() ); steps[0] = 10; steps[1] = 20; OptimizerType::ScalesType scales( m_Transform->GetNumberOfParameters() ); scales[0] = 0.001; scales[1] = 1; scales[2] = 5; OptimizerType::ParameterAxisType axis( m_Transform->GetNumberOfParameters() ); axis[0] = 0; axis[1] = 1; axis[2] = 1; m_Optimizer->SetNumberOfSteps( steps ); m_Optimizer->SetScales( scales ); m_Optimizer->SetParameterAxis( axis ); m_Optimizer->SetStepLength( 1 );
We have three parameters (rotation, x- and y-translation), they are grouped in two axis. Rotation is axis 1 (with 21 grid points), both translation form the other axis (with 41 grid points). Because the scalings of both translations are not equale, but the are the they change simultaniously but not with the same stepsize.
Definition at line 76 of file freExhaustiveSOOptimizer.h.
Standard "Self" typedef.
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 81 of file freExhaustiveSOOptimizer.h.
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 82 of file freExhaustiveSOOptimizer.h.
| typedef itk::SmartPointer<Self> FREE::ExhaustiveSOOptimizer::Pointer |
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 83 of file freExhaustiveSOOptimizer.h.
| typedef itk::SmartPointer<const Self> FREE::ExhaustiveSOOptimizer::ConstPointer |
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 84 of file freExhaustiveSOOptimizer.h.
| typedef itk::Array< unsigned long > FREE::ExhaustiveSOOptimizer::StepsType |
Definition at line 86 of file freExhaustiveSOOptimizer.h.
| typedef itk::Array< long > FREE::ExhaustiveSOOptimizer::ParameterAxisType |
Definition at line 87 of file freExhaustiveSOOptimizer.h.
| typedef itk::Array< unsigned long > FREE::ExhaustiveSOOptimizer::AxisTypeType |
Definition at line 88 of file freExhaustiveSOOptimizer.h.
| FREE::ExhaustiveSOOptimizer::ExhaustiveSOOptimizer | ( | ) | [protected] |
Constructor
Definition at line 34 of file freExhaustiveSOOptimizer.cxx.
| virtual FREE::ExhaustiveSOOptimizer::~ExhaustiveSOOptimizer | ( | ) | [inline, protected, virtual] |
Definition at line 131 of file freExhaustiveSOOptimizer.h.
| FREE::ExhaustiveSOOptimizer::ExhaustiveSOOptimizer | ( | const Self & | ) | [private] |
| virtual const char* FREE::ExhaustiveSOOptimizer::GetNameOfClass | ( | ) | const [inline, virtual] |
Run-time type information (and related methods).
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 91 of file freExhaustiveSOOptimizer.h.
| static Pointer FREE::ExhaustiveSOOptimizer::New | ( | void | ) | [inline, static] |
Method for creation through the object factory.
Definition at line 94 of file freExhaustiveSOOptimizer.h.
| virtual ::itk::LightObject::Pointer FREE::ExhaustiveSOOptimizer::CreateAnother | ( | void | ) | const [inline, virtual] |
Definition at line 94 of file freExhaustiveSOOptimizer.h.
| void FREE::ExhaustiveSOOptimizer::StartOptimization | ( | void | ) | [virtual] |
Implements FREE::SetupOptimizationOptimizer.
Definition at line 57 of file freExhaustiveSOOptimizer.cxx.
References FREE::SetupOptimizationOptimizer::m_CostFunction, StartWalking(), and throwExceptionMacro.

| void FREE::ExhaustiveSOOptimizer::StartWalking | ( | void | ) |
Definition at line 66 of file freExhaustiveSOOptimizer.cxx.
References throwExceptionMacro.
Referenced by StartOptimization().
| void FREE::ExhaustiveSOOptimizer::ResumeWalking | ( | void | ) |
Resume the optimization
Definition at line 110 of file freExhaustiveSOOptimizer.cxx.
| void FREE::ExhaustiveSOOptimizer::StopWalking | ( | void | ) |
Definition at line 168 of file freExhaustiveSOOptimizer.cxx.
| bool FREE::ExhaustiveSOOptimizer::IsStoppable | ( | ) | const [virtual] |
Indicates if the optimizer can be stopped.
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 180 of file freExhaustiveSOOptimizer.cxx.
| void FREE::ExhaustiveSOOptimizer::StopOptimization | ( | void | ) | [virtual] |
Stops the ongoing optimization process.
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 188 of file freExhaustiveSOOptimizer.cxx.
| bool FREE::ExhaustiveSOOptimizer::IsResumeable | ( | ) | const [virtual] |
Indicates if the managed optimizer can resume the optimization once stopped.
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 195 of file freExhaustiveSOOptimizer.cxx.
| void FREE::ExhaustiveSOOptimizer::ResumeOptimization | ( | ) | [virtual] |
Resumes the ongoing optimization process.
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 202 of file freExhaustiveSOOptimizer.cxx.
| unsigned int FREE::ExhaustiveSOOptimizer::GetAxisCount | ( | ) | const |
Definition at line 52 of file freExhaustiveSOOptimizer.cxx.
| virtual void FREE::ExhaustiveSOOptimizer::SetStepLength | ( | const double | _arg | ) | [inline, virtual] |
Definition at line 110 of file freExhaustiveSOOptimizer.h.
| virtual void FREE::ExhaustiveSOOptimizer::SetNumberOfSteps | ( | const StepsType | _arg | ) | [inline, virtual] |
Definition at line 111 of file freExhaustiveSOOptimizer.h.
| virtual void FREE::ExhaustiveSOOptimizer::SetParameterAxis | ( | const ParameterAxisType | _arg | ) | [inline, virtual] |
Definition at line 112 of file freExhaustiveSOOptimizer.h.
| virtual void FREE::ExhaustiveSOOptimizer::SetAxisType | ( | const AxisTypeType | _arg | ) | [inline, virtual] |
Definition at line 113 of file freExhaustiveSOOptimizer.h.
| virtual void FREE::ExhaustiveSOOptimizer::SetMinimumIsBest | ( | const bool | _arg | ) | [inline, virtual] |
Definition at line 114 of file freExhaustiveSOOptimizer.h.
| virtual bool FREE::ExhaustiveSOOptimizer::GetMinimumIsBest | ( | ) | [inline, virtual] |
Definition at line 115 of file freExhaustiveSOOptimizer.h.
| virtual const double& FREE::ExhaustiveSOOptimizer::GetStepLength | ( | ) | const [inline, virtual] |
Definition at line 117 of file freExhaustiveSOOptimizer.h.
| virtual const StepsType& FREE::ExhaustiveSOOptimizer::GetNumberOfSteps | ( | ) | const [inline, virtual] |
Definition at line 118 of file freExhaustiveSOOptimizer.h.
| virtual const ParameterAxisType& FREE::ExhaustiveSOOptimizer::GetParameterAxis | ( | ) | const [inline, virtual] |
Definition at line 119 of file freExhaustiveSOOptimizer.h.
| virtual const MeasureType& FREE::ExhaustiveSOOptimizer::GetMaximumMetricValue | ( | ) | const [inline, virtual] |
Definition at line 120 of file freExhaustiveSOOptimizer.h.
| virtual const MeasureType& FREE::ExhaustiveSOOptimizer::GetMinimumMetricValue | ( | ) | const [inline, virtual] |
Definition at line 121 of file freExhaustiveSOOptimizer.h.
| virtual const DecomposedMeasureType& FREE::ExhaustiveSOOptimizer::GetMaximumDecomposedMetricValue | ( | ) | const [inline, virtual] |
Definition at line 122 of file freExhaustiveSOOptimizer.h.
| virtual const DecomposedMeasureType& FREE::ExhaustiveSOOptimizer::GetMinimumDecomposedMetricValue | ( | ) | const [inline, virtual] |
Definition at line 123 of file freExhaustiveSOOptimizer.h.
| virtual const ParametersType& FREE::ExhaustiveSOOptimizer::GetMinimumMetricValuePosition | ( | ) | const [inline, virtual] |
Definition at line 124 of file freExhaustiveSOOptimizer.h.
| virtual const ParametersType& FREE::ExhaustiveSOOptimizer::GetMaximumMetricValuePosition | ( | ) | const [inline, virtual] |
Definition at line 125 of file freExhaustiveSOOptimizer.h.
| virtual const ParametersType& FREE::ExhaustiveSOOptimizer::GetCurrentIndex | ( | ) | const [inline, virtual] |
Definition at line 126 of file freExhaustiveSOOptimizer.h.
| virtual const unsigned long& FREE::ExhaustiveSOOptimizer::GetMaximumNumberOfIterations | ( | ) | const [inline, virtual] |
Definition at line 127 of file freExhaustiveSOOptimizer.h.
| void FREE::ExhaustiveSOOptimizer::PrintSelf | ( | std::ostream & | os, | |
| itk::Indent | indent | |||
| ) | const [protected] |
Reimplemented from FREE::SetupOptimizationOptimizer.
Definition at line 293 of file freExhaustiveSOOptimizer.cxx.
| void FREE::ExhaustiveSOOptimizer::AdvanceOneStep | ( | void | ) | [protected] |
Advance one step following the gradient direction This method verifies if a change in direction is required and if a reduction in steplength is required.
Definition at line 210 of file freExhaustiveSOOptimizer.cxx.
References throwExceptionMacro.
| void FREE::ExhaustiveSOOptimizer::IncrementIndex | ( | ParametersType & | param | ) | [protected] |
Definition at line 236 of file freExhaustiveSOOptimizer.cxx.
| void FREE::ExhaustiveSOOptimizer::operator= | ( | const Self & | ) | [private] |
Definition at line 145 of file freExhaustiveSOOptimizer.h.
unsigned long FREE::ExhaustiveSOOptimizer::m_CurrentIteration [protected] |
Definition at line 146 of file freExhaustiveSOOptimizer.h.
bool FREE::ExhaustiveSOOptimizer::m_Stop [protected] |
Definition at line 147 of file freExhaustiveSOOptimizer.h.
unsigned int FREE::ExhaustiveSOOptimizer::m_CurrentParameter [protected] |
Definition at line 148 of file freExhaustiveSOOptimizer.h.
double FREE::ExhaustiveSOOptimizer::m_StepLength [protected] |
Definition at line 149 of file freExhaustiveSOOptimizer.h.
ParametersType FREE::ExhaustiveSOOptimizer::m_CurrentIndex [protected] |
Definition at line 150 of file freExhaustiveSOOptimizer.h.
unsigned long FREE::ExhaustiveSOOptimizer::m_MaximumNumberOfIterations [protected] |
Definition at line 151 of file freExhaustiveSOOptimizer.h.
Definition at line 152 of file freExhaustiveSOOptimizer.h.
Definition at line 153 of file freExhaustiveSOOptimizer.h.
Definition at line 154 of file freExhaustiveSOOptimizer.h.
Definition at line 155 of file freExhaustiveSOOptimizer.h.
ParametersType FREE::ExhaustiveSOOptimizer::m_MinimumMetricValuePosition [protected] |
Definition at line 156 of file freExhaustiveSOOptimizer.h.
ParametersType FREE::ExhaustiveSOOptimizer::m_MaximumMetricValuePosition [protected] |
Definition at line 157 of file freExhaustiveSOOptimizer.h.
Definition at line 158 of file freExhaustiveSOOptimizer.h.
AxisTypeType FREE::ExhaustiveSOOptimizer::m_AxisType [protected] |
Definition at line 159 of file freExhaustiveSOOptimizer.h.
bool FREE::ExhaustiveSOOptimizer::m_MinimumIsBest [protected] |
Definition at line 160 of file freExhaustiveSOOptimizer.h.
1.5.3 written by Dimitri van Heesch,
© 1997-2000