go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
itk::LineSearchOptimizer Class Reference

#include <itkLineSearchOptimizer.h>

Inheritance diagram for itk::LineSearchOptimizer:
Inheritance graph
[legend]
Collaboration diagram for itk::LineSearchOptimizer:
Collaboration graph
[legend]

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
Superclass::CostFunctionType 
CostFunctionType
typedef Superclass::DerivativeType DerivativeType
typedef Superclass::MeasureType MeasureType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef LineSearchOptimizer Self
typedef
SingleValuedNonLinearOptimizer 
Superclass

Public Member Functions

virtual const char * GetClassName () const
virtual void GetCurrentDerivative (DerivativeType &derivative) const =0
virtual double GetCurrentStepLength () const
virtual MeasureType GetCurrentValue (void) const =0
virtual void GetCurrentValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0
virtual double GetInitialStepLengthEstimate () const
virtual const ParametersTypeGetLineSearchDirection ()
virtual double GetMaximumStepLength () const
virtual double GetMinimumStepLength () const
virtual void SetInitialDerivative (const DerivativeType &)
virtual void SetInitialStepLengthEstimate (double _arg)
virtual void SetInitialValue (MeasureType)
virtual void SetLineSearchDirection (const ParametersType &arg)
virtual void SetMaximumStepLength (double _arg)
virtual void SetMinimumStepLength (double _arg)

Protected Member Functions

double DirectionalDerivative (const DerivativeType &derivative) const
 LineSearchOptimizer ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual void SetCurrentStepLength (double step)
virtual ~LineSearchOptimizer ()

Protected Attributes

double m_CurrentStepLength

Private Member Functions

 LineSearchOptimizer (const Self &)
void operator= (const Self &)

Private Attributes

double m_InitialStepLengthEstimate
ParametersType m_LineSearchDirection
double m_MaximumStepLength
double m_MinimumStepLength

Detailed Description

A base class for LineSearch optimizers.

Scales are expected to be handled by the main optimizer.

Definition at line 31 of file itkLineSearchOptimizer.h.


Member Typedef Documentation

typedef SmartPointer<const Self> itk::LineSearchOptimizer::ConstPointer

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 38 of file itkLineSearchOptimizer.h.

typedef Superclass::CostFunctionType itk::LineSearchOptimizer::CostFunctionType

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 46 of file itkLineSearchOptimizer.h.

typedef Superclass::DerivativeType itk::LineSearchOptimizer::DerivativeType

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 45 of file itkLineSearchOptimizer.h.

typedef Superclass::MeasureType itk::LineSearchOptimizer::MeasureType

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 41 of file itkLineSearchOptimizer.h.

typedef Superclass::ParametersType itk::LineSearchOptimizer::ParametersType

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 44 of file itkLineSearchOptimizer.h.

typedef SmartPointer<Self> itk::LineSearchOptimizer::Pointer

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 37 of file itkLineSearchOptimizer.h.

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 35 of file itkLineSearchOptimizer.h.

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 36 of file itkLineSearchOptimizer.h.


Constructor & Destructor Documentation

virtual itk::LineSearchOptimizer::~LineSearchOptimizer ( ) [inline, protected, virtual]

Definition at line 110 of file itkLineSearchOptimizer.h.


Member Function Documentation

double itk::LineSearchOptimizer::DirectionalDerivative ( const DerivativeType derivative) const [protected]

Computes the inner product of the argument and the line search direction.

virtual const char* itk::LineSearchOptimizer::GetClassName ( ) const [virtual]
virtual void itk::LineSearchOptimizer::GetCurrentDerivative ( DerivativeType derivative) const [pure virtual]

StepLength is a a scalar, defined as: m_InitialPosition + StepLength * m_LineSearchDirection = m_CurrentPosition

virtual MeasureType itk::LineSearchOptimizer::GetCurrentValue ( void  ) const [pure virtual]
virtual void itk::LineSearchOptimizer::GetCurrentValueAndDerivative ( MeasureType value,
DerivativeType derivative 
) const [pure virtual]

These methods must be implemented by inheriting classes. It depends on the specific line search algorithm if it already computed the value/derivative at the current position (in this case it can just copy the cached data). If it did not compute the value/derivative, it should call the cost function and evaluate the value/derivative at the current position.

These methods allow the main optimization algorithm to reuse data that the LineSearch algorithm already computed.

Implemented in itk::MoreThuenteLineSearchOptimizer.

void itk::LineSearchOptimizer::operator= ( const Self ) [private]
void itk::LineSearchOptimizer::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected]
virtual void itk::LineSearchOptimizer::SetCurrentStepLength ( double  step) [protected, virtual]

Set the current step length AND the current position, where the current position is computed as: m_CurrentPosition = m_InitialPosition + StepLength * m_LineSearchDirection

virtual void itk::LineSearchOptimizer::SetInitialDerivative ( const DerivativeType ) [inline, virtual]

Inheriting classes may override these methods if they need value/derivative information of the cost function at the initial position.

NB: It is not guaranteed that these methods are called. If a main optimizer by chance has this information, it should call these methods, to avoid possible unnecessary computations.

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 65 of file itkLineSearchOptimizer.h.

virtual void itk::LineSearchOptimizer::SetInitialValue ( MeasureType  ) [inline, virtual]

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 67 of file itkLineSearchOptimizer.h.

virtual void itk::LineSearchOptimizer::SetLineSearchDirection ( const ParametersType arg) [inline, virtual]

Set/Get the LineSearchDirection

Definition at line 49 of file itkLineSearchOptimizer.h.

virtual void itk::LineSearchOptimizer::SetMaximumStepLength ( double  _arg) [virtual]
virtual void itk::LineSearchOptimizer::SetMinimumStepLength ( double  _arg) [virtual]

Settings: the maximum/minimum step length and the initial estimate. NOTE: Not all line search methods are guaranteed to do something with this information. However, if a certain optimizer (using a line search optimizer) has any idea about the steplength it can call these methods, 'in the hope' that the line search optimizer does something sensible with it.


Field Documentation

Definition at line 113 of file itkLineSearchOptimizer.h.

Definition at line 133 of file itkLineSearchOptimizer.h.

Definition at line 129 of file itkLineSearchOptimizer.h.

Definition at line 132 of file itkLineSearchOptimizer.h.

Definition at line 131 of file itkLineSearchOptimizer.h.



Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo