![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <itkMoreThuenteLineSearchOptimizer.h>
Public Types | |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::CostFunctionType | CostFunctionType |
typedef Superclass::DerivativeType | DerivativeType |
typedef Superclass::MeasureType | MeasureType |
typedef Superclass::ParametersType | ParametersType |
typedef SmartPointer< Self > | Pointer |
typedef MoreThuenteLineSearchOptimizer | Self |
enum | StopConditionType { StrongWolfeConditionsSatisfied, MetricError, MaximumNumberOfIterations, StepTooSmall, StepTooLarge, IntervalTooSmall, RoundingError, AscentSearchDirection, Unknown } |
typedef LineSearchOptimizer | Superclass |
![]() | |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::CostFunctionType | CostFunctionType |
typedef Superclass::DerivativeType | DerivativeType |
typedef Superclass::MeasureType | MeasureType |
typedef Superclass::ParametersType | ParametersType |
typedef SmartPointer< Self > | Pointer |
typedef LineSearchOptimizer | Self |
typedef SingleValuedNonLinearOptimizer | Superclass |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
void | BoundStep (double &step) const |
virtual int | CheckSettings (void) |
virtual void | ComputeCurrentValueAndDerivative (void) |
virtual void | ComputeNewStepAndInterval (void) |
virtual void | ForceSufficientDecreaseInIntervalWidth (void) |
virtual void | GetInitialValueAndDerivative (void) |
virtual void | InitializeLineSearch (void) |
MoreThuenteLineSearchOptimizer () | |
virtual void | PrepareForUnusualTermination (void) |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual int | SafeGuardedStep (double &stx, double &fx, double &dx, double &sty, double &fy, double &dy, double &stp, const double &fp, const double &dp, bool &brackt, const double &stpmin, const double &stpmax) const |
virtual void | TestConvergence (bool &stop) |
virtual void | UpdateIntervalMinimumAndMaximum (void) |
virtual | ~MoreThuenteLineSearchOptimizer () |
![]() | |
double | DirectionalDerivative (const DerivativeType &derivative) const |
LineSearchOptimizer () | |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | SetCurrentStepLength (double step) |
virtual | ~LineSearchOptimizer () |
Private Member Functions | |
MoreThuenteLineSearchOptimizer (const Self &) | |
void | operator= (const Self &) |
Private Attributes | |
double | m_GradientTolerance |
double | m_IntervalTolerance |
unsigned long | m_MaximumNumberOfIterations |
double | m_ValueTolerance |
ITK version of the MoreThuente line search algorithm.
This class is an ITK version of the netlib function mcsrch_. It gives exactly the same results.
The purpose of this optimizer is to find a step which satisfies a sufficient decrease condition and a curvature condition.
At each stage the subroutine updates an interval of uncertainty with endpoints stx and sty. The interval of uncertainty is initially chosen so that it contains a minimizer of the modified function
If a step is obtained for which the modified function has a nonpositive function value and nonnegative derivative, then the interval of uncertainty is chosen so that it contains a minimizer of .
The algorithm is designed to find a step which satisfies the sufficient decrease condition
and the curvature condition
(together also called the Strong Wolfe Conditions)
if the ValueTolerance is less than the GradientTolerance and if, for example, the function is bounded below, then there is always a step which satisfies both conditions. If no step can be found which satisfies both conditions, then the algorithm usually stops when rounding errors prevent further progress. In this case stp only satisfies the sufficient decrease condition.
Definition at line 67 of file itkMoreThuenteLineSearchOptimizer.h.
typedef SmartPointer<const Self> itk::MoreThuenteLineSearchOptimizer::ConstPointer |
Definition at line 73 of file itkMoreThuenteLineSearchOptimizer.h.
typedef Superclass::CostFunctionType itk::MoreThuenteLineSearchOptimizer::CostFunctionType |
Definition at line 81 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 80 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 76 of file itkMoreThuenteLineSearchOptimizer.h.
typedef Superclass::ParametersType itk::MoreThuenteLineSearchOptimizer::ParametersType |
Definition at line 79 of file itkMoreThuenteLineSearchOptimizer.h.
typedef SmartPointer<Self> itk::MoreThuenteLineSearchOptimizer::Pointer |
Definition at line 72 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 70 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 71 of file itkMoreThuenteLineSearchOptimizer.h.
Enumerator | |
---|---|
StrongWolfeConditionsSatisfied | |
MetricError | |
MaximumNumberOfIterations | |
StepTooSmall | |
StepTooLarge | |
IntervalTooSmall | |
RoundingError | |
AscentSearchDirection | |
Unknown |
Definition at line 83 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
|
inlineprotectedvirtual |
Definition at line 160 of file itkMoreThuenteLineSearchOptimizer.h.
|
private |
|
protected |
Force a step to be within the bounds MinimumStepLength and MaximumStepLength
|
protectedvirtual |
Check the input settings for errors.
|
protectedvirtual |
Ask the cost function to compute m_f and m_g at the current position.
|
protectedvirtual |
Update the interval of uncertainty and compute the new step
|
protectedvirtual |
Force a sufficient decrease in the size of the interval of uncertainty
|
virtual |
Reimplemented from itk::LineSearchOptimizer.
|
virtual |
Implements itk::LineSearchOptimizer.
|
virtual |
|
virtual |
Progress information: about the state of convergence
|
virtual |
Implements itk::LineSearchOptimizer.
|
virtual |
Progress information: value, derivative, and directional derivative at the current position.
Implements itk::LineSearchOptimizer.
|
virtual |
|
virtual |
|
protectedvirtual |
Load the initial value and derivative into m_f and m_g.
|
virtual |
|
virtual |
Setting: the maximum number of iterations. 20 by default.
|
virtual |
|
virtual |
|
virtual |
|
protectedvirtual |
Initialize the interval of uncertainty etc.
|
static |
|
private |
|
protectedvirtual |
Set m_step to the best step until now, if unusual termination is expected
|
protected |
|
protectedvirtual |
Advance a step along the line search direction and update the interval of uncertainty.
|
virtual |
Setting: the gradient tolerance. By default set to 0.9.
The line search tries to find a StepLength that satisfies the curvature condition: ABS(dF/ds(X + StepLength * s) <= GradientTolerance * ABS(dF/ds(X)
The lower this value, the more accurate the line search. It must be larger than the ValueTolerance.
|
virtual |
If initial derivative and/or value are given we can save some computation time!
Reimplemented from itk::LineSearchOptimizer.
|
virtual |
Reimplemented from itk::LineSearchOptimizer.
|
virtual |
Setting: the interval tolerance. By default set to the the machine precision.
If value and gradient tolerance can not be satisfied both, the algorithm stops when rounding errors prevent further progress: when the interval of uncertainty is smaller than the interval tolerance.
|
virtual |
|
virtual |
Setting: the value tolerance. By default set to 1e-4.
The line search tries to find a StepLength that satisfies the sufficient decrease condition: F(X + StepLength * s) <= F(X) + ValueTolerance * StepLength * dF/ds(X) where s is the search direction
It must be larger than 0.0, and smaller than the GradientTolerance.
|
virtual |
|
virtual |
|
protectedvirtual |
Check for convergence
|
protectedvirtual |
Set the minimum and maximum steps to correspond to the the present interval of uncertainty.
|
protected |
Definition at line 235 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 164 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 170 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 226 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 227 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 230 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 228 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 229 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 220 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 223 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 221 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 222 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 225 of file itkMoreThuenteLineSearchOptimizer.h.
|
private |
Definition at line 245 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 165 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 166 of file itkMoreThuenteLineSearchOptimizer.h.
|
private |
Definition at line 246 of file itkMoreThuenteLineSearchOptimizer.h.
|
private |
Definition at line 243 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 237 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 236 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 214 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 218 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 217 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 215 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 216 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 168 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 167 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 169 of file itkMoreThuenteLineSearchOptimizer.h.
|
private |
Definition at line 244 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 232 of file itkMoreThuenteLineSearchOptimizer.h.
|
protected |
Definition at line 233 of file itkMoreThuenteLineSearchOptimizer.h.
Generated on 06-12-2013 for elastix by ![]() |
![]() |