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 Referenceabstract

#include <itkLineSearchOptimizer.h>

Detailed Description

A base class for LineSearch optimizers.

Scales are expected to be handled by the main optimizer.

Definition at line 37 of file itkLineSearchOptimizer.h.

Inheritance diagram for itk::LineSearchOptimizer:
Inheritance graph

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

Member Typedef Documentation

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

Definition at line 44 of file itkLineSearchOptimizer.h.

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

Definition at line 52 of file itkLineSearchOptimizer.h.

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

Definition at line 51 of file itkLineSearchOptimizer.h.

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

Definition at line 47 of file itkLineSearchOptimizer.h.

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

Definition at line 50 of file itkLineSearchOptimizer.h.

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

Definition at line 43 of file itkLineSearchOptimizer.h.

Definition at line 41 of file itkLineSearchOptimizer.h.

Definition at line 42 of file itkLineSearchOptimizer.h.

Constructor & Destructor Documentation

itk::LineSearchOptimizer::LineSearchOptimizer ( )
virtual itk::LineSearchOptimizer::~LineSearchOptimizer ( )

Definition at line 120 of file itkLineSearchOptimizer.h.

itk::LineSearchOptimizer::LineSearchOptimizer ( const Self )

Member Function Documentation

double itk::LineSearchOptimizer::DirectionalDerivative ( const DerivativeType derivative) const

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

virtual const char* itk::LineSearchOptimizer::GetClassName ( ) const
virtual void itk::LineSearchOptimizer::GetCurrentDerivative ( DerivativeType derivative) const
pure virtual
virtual double itk::LineSearchOptimizer::GetCurrentStepLength ( ) const

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.

virtual double itk::LineSearchOptimizer::GetInitialStepLengthEstimate ( ) const
virtual const ParametersType& itk::LineSearchOptimizer::GetLineSearchDirection ( )
virtual double itk::LineSearchOptimizer::GetMaximumStepLength ( ) const
virtual double itk::LineSearchOptimizer::GetMinimumStepLength ( ) const
void itk::LineSearchOptimizer::operator= ( const Self )
void itk::LineSearchOptimizer::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
virtual void itk::LineSearchOptimizer::SetCurrentStepLength ( double  step)

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 )

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 73 of file itkLineSearchOptimizer.h.

virtual void itk::LineSearchOptimizer::SetInitialStepLengthEstimate ( double  _arg)
virtual void itk::LineSearchOptimizer::SetInitialValue ( MeasureType  )

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 75 of file itkLineSearchOptimizer.h.

virtual void itk::LineSearchOptimizer::SetLineSearchDirection ( const ParametersType arg)

Set/Get the LineSearchDirection

Definition at line 55 of file itkLineSearchOptimizer.h.

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

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

double itk::LineSearchOptimizer::m_CurrentStepLength

Definition at line 123 of file itkLineSearchOptimizer.h.

double itk::LineSearchOptimizer::m_InitialStepLengthEstimate

Definition at line 144 of file itkLineSearchOptimizer.h.

ParametersType itk::LineSearchOptimizer::m_LineSearchDirection

Definition at line 140 of file itkLineSearchOptimizer.h.

double itk::LineSearchOptimizer::m_MaximumStepLength

Definition at line 143 of file itkLineSearchOptimizer.h.

double itk::LineSearchOptimizer::m_MinimumStepLength

Definition at line 142 of file itkLineSearchOptimizer.h.

Generated on 04-09-2015 for elastix by doxygen elastix logo