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
[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
 

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 ( )
protected
virtual itk::LineSearchOptimizer::~LineSearchOptimizer ( )
inlineprotectedvirtual

Definition at line 120 of file itkLineSearchOptimizer.h.

itk::LineSearchOptimizer::LineSearchOptimizer ( const Self )
private

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
virtual double itk::LineSearchOptimizer::GetCurrentStepLength ( ) const
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.

virtual double itk::LineSearchOptimizer::GetInitialStepLengthEstimate ( ) const
virtual
virtual const ParametersType& itk::LineSearchOptimizer::GetLineSearchDirection ( )
virtual
virtual double itk::LineSearchOptimizer::GetMaximumStepLength ( ) const
virtual
virtual double itk::LineSearchOptimizer::GetMinimumStepLength ( ) const
virtual
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)
protectedvirtual

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

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
virtual void itk::LineSearchOptimizer::SetInitialValue ( MeasureType  )
inlinevirtual

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 75 of file itkLineSearchOptimizer.h.

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

Set/Get the LineSearchDirection

Definition at line 55 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

double itk::LineSearchOptimizer::m_CurrentStepLength
protected

Definition at line 123 of file itkLineSearchOptimizer.h.

double itk::LineSearchOptimizer::m_InitialStepLengthEstimate
private

Definition at line 144 of file itkLineSearchOptimizer.h.

ParametersType itk::LineSearchOptimizer::m_LineSearchDirection
private

Definition at line 140 of file itkLineSearchOptimizer.h.

double itk::LineSearchOptimizer::m_MaximumStepLength
private

Definition at line 143 of file itkLineSearchOptimizer.h.

double itk::LineSearchOptimizer::m_MinimumStepLength
private

Definition at line 142 of file itkLineSearchOptimizer.h.



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