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:

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 override
 
virtual void SetCurrentStepLength (double step)
 
 ~LineSearchOptimizer () override
 

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

◆ ConstPointer

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

Definition at line 44 of file itkLineSearchOptimizer.h.

◆ CostFunctionType

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

Definition at line 52 of file itkLineSearchOptimizer.h.

◆ DerivativeType

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

Definition at line 51 of file itkLineSearchOptimizer.h.

◆ MeasureType

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

Definition at line 49 of file itkLineSearchOptimizer.h.

◆ ParametersType

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

Definition at line 50 of file itkLineSearchOptimizer.h.

◆ Pointer

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

Definition at line 43 of file itkLineSearchOptimizer.h.

◆ Self

Definition at line 41 of file itkLineSearchOptimizer.h.

◆ Superclass

Definition at line 42 of file itkLineSearchOptimizer.h.

Constructor & Destructor Documentation

◆ LineSearchOptimizer() [1/2]

itk::LineSearchOptimizer::LineSearchOptimizer ( )
protected

◆ ~LineSearchOptimizer()

itk::LineSearchOptimizer::~LineSearchOptimizer ( )
inlineoverrideprotected

Definition at line 120 of file itkLineSearchOptimizer.h.

◆ LineSearchOptimizer() [2/2]

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

Member Function Documentation

◆ DirectionalDerivative()

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

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

◆ GetClassName()

virtual const char * itk::LineSearchOptimizer::GetClassName ( ) const
virtual

◆ GetCurrentDerivative()

virtual void itk::LineSearchOptimizer::GetCurrentDerivative ( DerivativeType derivative) const
pure virtual

◆ GetCurrentStepLength()

virtual double itk::LineSearchOptimizer::GetCurrentStepLength ( ) const
virtual

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

◆ GetCurrentValue()

virtual MeasureType itk::LineSearchOptimizer::GetCurrentValue ( void  ) const
pure virtual

◆ GetCurrentValueAndDerivative()

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.

◆ GetInitialStepLengthEstimate()

virtual double itk::LineSearchOptimizer::GetInitialStepLengthEstimate ( ) const
virtual

◆ GetLineSearchDirection()

virtual const ParametersType & itk::LineSearchOptimizer::GetLineSearchDirection ( )
virtual

◆ GetMaximumStepLength()

virtual double itk::LineSearchOptimizer::GetMaximumStepLength ( ) const
virtual

◆ GetMinimumStepLength()

virtual double itk::LineSearchOptimizer::GetMinimumStepLength ( ) const
virtual

◆ operator=()

void itk::LineSearchOptimizer::operator= ( const Self )
private

◆ PrintSelf()

void itk::LineSearchOptimizer::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

◆ SetCurrentStepLength()

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

◆ SetInitialDerivative()

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.

◆ SetInitialStepLengthEstimate()

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

◆ SetInitialValue()

virtual void itk::LineSearchOptimizer::SetInitialValue ( MeasureType  )
inlinevirtual

Reimplemented in itk::MoreThuenteLineSearchOptimizer.

Definition at line 75 of file itkLineSearchOptimizer.h.

◆ SetLineSearchDirection()

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

Set/Get the LineSearchDirection

Definition at line 55 of file itkLineSearchOptimizer.h.

◆ SetMaximumStepLength()

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

◆ SetMinimumStepLength()

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

◆ m_CurrentStepLength

double itk::LineSearchOptimizer::m_CurrentStepLength
protected

Definition at line 123 of file itkLineSearchOptimizer.h.

◆ m_InitialStepLengthEstimate

double itk::LineSearchOptimizer::m_InitialStepLengthEstimate
private

Definition at line 144 of file itkLineSearchOptimizer.h.

◆ m_LineSearchDirection

ParametersType itk::LineSearchOptimizer::m_LineSearchDirection
private

Definition at line 140 of file itkLineSearchOptimizer.h.

◆ m_MaximumStepLength

double itk::LineSearchOptimizer::m_MaximumStepLength
private

Definition at line 143 of file itkLineSearchOptimizer.h.

◆ m_MinimumStepLength

double itk::LineSearchOptimizer::m_MinimumStepLength
private

Definition at line 142 of file itkLineSearchOptimizer.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo