#include <itkLineSearchOptimizer.h>
A base class for LineSearch optimizers.
Scales are expected to be handled by the main optimizer.
Definition at line 37 of file itkLineSearchOptimizer.h.
Public Types | |
using | ConstPointer = SmartPointer<const Self> |
using | Pointer = SmartPointer<Self> |
using | Self = LineSearchOptimizer |
using | Superclass = SingleValuedNonLinearOptimizer |
Public Member Functions | |
virtual const char * | GetClassName () const |
virtual void | GetCurrentDerivative (DerivativeType &derivative) const =0 |
virtual double | GetCurrentStepLength () const |
virtual MeasureType | GetCurrentValue () const =0 |
virtual void | GetCurrentValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0 |
virtual double | GetInitialStepLengthEstimate () const |
virtual const ParametersType & | GetLineSearchDirection () |
virtual double | GetMaximumStepLength () const |
virtual double | GetMinimumStepLength () const |
ITK_DISALLOW_COPY_AND_MOVE (LineSearchOptimizer) | |
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=default | |
Protected Attributes | |
double | m_CurrentStepLength {} |
Private Attributes | |
double | m_InitialStepLengthEstimate {} |
ParametersType | m_LineSearchDirection {} |
double | m_MaximumStepLength {} |
double | m_MinimumStepLength {} |
using itk::LineSearchOptimizer::ConstPointer = SmartPointer<const Self> |
Definition at line 45 of file itkLineSearchOptimizer.h.
using itk::LineSearchOptimizer::Pointer = SmartPointer<Self> |
Definition at line 44 of file itkLineSearchOptimizer.h.
Definition at line 42 of file itkLineSearchOptimizer.h.
Definition at line 43 of file itkLineSearchOptimizer.h.
|
protected |
|
overrideprotecteddefault |
|
protected |
Computes the inner product of the argument and the line search direction.
|
virtual |
Reimplemented in itk::MoreThuenteLineSearchOptimizer.
|
pure virtual |
Implemented in itk::MoreThuenteLineSearchOptimizer.
|
virtual |
StepLength is a a scalar, defined as: m_InitialPosition + StepLength * m_LineSearchDirection = m_CurrentPosition
|
pure virtual |
Implemented in itk::MoreThuenteLineSearchOptimizer.
|
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 |
|
virtual |
|
virtual |
|
virtual |
itk::LineSearchOptimizer::ITK_DISALLOW_COPY_AND_MOVE | ( | LineSearchOptimizer | ) |
|
overrideprotected |
|
protectedvirtual |
Set the current step length AND the current position, where the current position is computed as: m_CurrentPosition = m_InitialPosition + StepLength * m_LineSearchDirection
|
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 76 of file itkLineSearchOptimizer.h.
|
virtual |
|
inlinevirtual |
Reimplemented in itk::MoreThuenteLineSearchOptimizer.
Definition at line 79 of file itkLineSearchOptimizer.h.
|
inlinevirtual |
Set/Get the LineSearchDirection
Definition at line 57 of file itkLineSearchOptimizer.h.
|
virtual |
|
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.
|
protected |
Definition at line 130 of file itkLineSearchOptimizer.h.
|
private |
Definition at line 149 of file itkLineSearchOptimizer.h.
|
private |
Definition at line 145 of file itkLineSearchOptimizer.h.
|
private |
Definition at line 148 of file itkLineSearchOptimizer.h.
|
private |
Definition at line 147 of file itkLineSearchOptimizer.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |