FREE::ExhaustiveSOOptimizer Class Reference
[Setup optimization optimizer]

Optimizer that fully samples a grid on the parametric space. More...

#include <freExhaustiveSOOptimizer.h>

Inheritance diagram for FREE::ExhaustiveSOOptimizer:

Inheritance graph
FREE::SetupOptimizationOptimizer
[legend]
Collaboration diagram for FREE::ExhaustiveSOOptimizer:

Collaboration graph
FREE::SetupOptimizationOptimizer
[legend]

List of all members.

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 StepsTypeGetNumberOfSteps () 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 &param)

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 &)


Detailed Description

Optimizer that fully samples a grid on the parametric space.

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.


Member Typedef Documentation

typedef ExhaustiveSOOptimizer FREE::ExhaustiveSOOptimizer::Self

Standard "Self" typedef.

Reimplemented from FREE::SetupOptimizationOptimizer.

Definition at line 81 of file freExhaustiveSOOptimizer.h.

typedef SetupOptimizationOptimizer FREE::ExhaustiveSOOptimizer::Superclass

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.


Constructor & Destructor Documentation

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]


Member Function Documentation

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.

Here is the call graph for this function:

FREE::ExhaustiveSOOptimizer::StartWalking

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.

Returns:
Indicates of the optimizer was sucessfully stopped.

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.

Returns:
Indicates of the optimizer has sucessfully resumed the optimization.

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]


Member Data Documentation

StepsType FREE::ExhaustiveSOOptimizer::m_NumberOfSteps [protected]

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.

MeasureType FREE::ExhaustiveSOOptimizer::m_MaximumMetricValue [protected]

Definition at line 152 of file freExhaustiveSOOptimizer.h.

MeasureType FREE::ExhaustiveSOOptimizer::m_MinimumMetricValue [protected]

Definition at line 153 of file freExhaustiveSOOptimizer.h.

DecomposedMeasureType FREE::ExhaustiveSOOptimizer::m_MaximumDecomposedMetricValue [protected]

Definition at line 154 of file freExhaustiveSOOptimizer.h.

DecomposedMeasureType FREE::ExhaustiveSOOptimizer::m_MinimumDecomposedMetricValue [protected]

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.

ParameterAxisType FREE::ExhaustiveSOOptimizer::m_ParameterAxis [protected]

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.


The documentation for this class was generated from the following files:
Generated at Sat Oct 13 18:17:48 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000