![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <itkMoreThuenteLineSearchOptimizer.h>
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 |
Reimplemented from itk::LineSearchOptimizer.
Definition at line 73 of file itkMoreThuenteLineSearchOptimizer.h.
Reimplemented from itk::LineSearchOptimizer.
Definition at line 81 of file itkMoreThuenteLineSearchOptimizer.h.
Reimplemented from itk::LineSearchOptimizer.
Definition at line 80 of file itkMoreThuenteLineSearchOptimizer.h.
Reimplemented from itk::LineSearchOptimizer.
Definition at line 76 of file itkMoreThuenteLineSearchOptimizer.h.
Reimplemented from itk::LineSearchOptimizer.
Definition at line 79 of file itkMoreThuenteLineSearchOptimizer.h.
typedef SmartPointer<Self> itk::MoreThuenteLineSearchOptimizer::Pointer |
Reimplemented from itk::LineSearchOptimizer.
Definition at line 72 of file itkMoreThuenteLineSearchOptimizer.h.
Reimplemented from itk::LineSearchOptimizer.
Definition at line 70 of file itkMoreThuenteLineSearchOptimizer.h.
Reimplemented from itk::LineSearchOptimizer.
Definition at line 71 of file itkMoreThuenteLineSearchOptimizer.h.
StrongWolfeConditionsSatisfied | |
MetricError | |
MaximumNumberOfIterations | |
StepTooSmall | |
StepTooLarge | |
IntervalTooSmall | |
RoundingError | |
AscentSearchDirection | |
Unknown |
Definition at line 83 of file itkMoreThuenteLineSearchOptimizer.h.
virtual itk::MoreThuenteLineSearchOptimizer::~MoreThuenteLineSearchOptimizer | ( | ) | [inline, protected, virtual] |
Definition at line 160 of file itkMoreThuenteLineSearchOptimizer.h.
itk::MoreThuenteLineSearchOptimizer::MoreThuenteLineSearchOptimizer | ( | const Self & | ) | [private] |
void itk::MoreThuenteLineSearchOptimizer::BoundStep | ( | double & | step | ) | const [protected] |
Force a step to be within the bounds MinimumStepLength and MaximumStepLength
virtual int itk::MoreThuenteLineSearchOptimizer::CheckSettings | ( | void | ) | [protected, virtual] |
Check the input settings for errors.
virtual void itk::MoreThuenteLineSearchOptimizer::ComputeCurrentValueAndDerivative | ( | void | ) | [protected, virtual] |
Ask the cost function to compute m_f and m_g at the current position.
virtual void itk::MoreThuenteLineSearchOptimizer::ComputeNewStepAndInterval | ( | void | ) | [protected, virtual] |
Update the interval of uncertainty and compute the new step
virtual void itk::MoreThuenteLineSearchOptimizer::ForceSufficientDecreaseInIntervalWidth | ( | void | ) | [protected, virtual] |
Force a sufficient decrease in the size of the interval of uncertainty
virtual const char* itk::MoreThuenteLineSearchOptimizer::GetClassName | ( | ) | const [virtual] |
Reimplemented from itk::LineSearchOptimizer.
virtual void itk::MoreThuenteLineSearchOptimizer::GetCurrentDerivative | ( | DerivativeType & | derivative | ) | const [virtual] |
Implements itk::LineSearchOptimizer.
virtual double itk::MoreThuenteLineSearchOptimizer::GetCurrentDirectionalDerivative | ( | void | ) | const [virtual] |
virtual unsigned long itk::MoreThuenteLineSearchOptimizer::GetCurrentIteration | ( | ) | const [virtual] |
Progress information: about the state of convergence
virtual MeasureType itk::MoreThuenteLineSearchOptimizer::GetCurrentValue | ( | void | ) | const [virtual] |
Implements itk::LineSearchOptimizer.
virtual void itk::MoreThuenteLineSearchOptimizer::GetCurrentValueAndDerivative | ( | MeasureType & | value, |
DerivativeType & | derivative | ||
) | const [virtual] |
Progress information: value, derivative, and directional derivative at the current position.
Implements itk::LineSearchOptimizer.
virtual bool itk::MoreThuenteLineSearchOptimizer::GetCurvatureConditionSatisfied | ( | ) | const [virtual] |
virtual double itk::MoreThuenteLineSearchOptimizer::GetGradientTolerance | ( | ) | const [virtual] |
virtual void itk::MoreThuenteLineSearchOptimizer::GetInitialValueAndDerivative | ( | void | ) | [protected, virtual] |
Load the initial value and derivative into m_f and m_g.
virtual double itk::MoreThuenteLineSearchOptimizer::GetIntervalTolerance | ( | ) | const [virtual] |
virtual unsigned long itk::MoreThuenteLineSearchOptimizer::GetMaximumNumberOfIterations | ( | ) | const [virtual] |
Setting: the maximum number of iterations. 20 by default.
virtual const StopConditionType& itk::MoreThuenteLineSearchOptimizer::GetStopCondition | ( | ) | [virtual] |
virtual bool itk::MoreThuenteLineSearchOptimizer::GetSufficientDecreaseConditionSatisfied | ( | ) | const [virtual] |
virtual double itk::MoreThuenteLineSearchOptimizer::GetValueTolerance | ( | ) | const [virtual] |
virtual void itk::MoreThuenteLineSearchOptimizer::InitializeLineSearch | ( | void | ) | [protected, virtual] |
Initialize the interval of uncertainty etc.
static Pointer itk::MoreThuenteLineSearchOptimizer::New | ( | ) | [static] |
void itk::MoreThuenteLineSearchOptimizer::operator= | ( | const Self & | ) | [private] |
Reimplemented from itk::LineSearchOptimizer.
virtual void itk::MoreThuenteLineSearchOptimizer::PrepareForUnusualTermination | ( | void | ) | [protected, virtual] |
Set m_step to the best step until now, if unusual termination is expected
void itk::MoreThuenteLineSearchOptimizer::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected] |
Reimplemented from itk::LineSearchOptimizer.
virtual int itk::MoreThuenteLineSearchOptimizer::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 [protected, virtual] |
Advance a step along the line search direction and update the interval of uncertainty.
virtual void itk::MoreThuenteLineSearchOptimizer::SetGradientTolerance | ( | double | _arg | ) | [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 void itk::MoreThuenteLineSearchOptimizer::SetInitialDerivative | ( | const DerivativeType & | derivative | ) | [virtual] |
If initial derivative and/or value are given we can save some computation time!
Reimplemented from itk::LineSearchOptimizer.
virtual void itk::MoreThuenteLineSearchOptimizer::SetInitialValue | ( | MeasureType | value | ) | [virtual] |
Reimplemented from itk::LineSearchOptimizer.
virtual void itk::MoreThuenteLineSearchOptimizer::SetIntervalTolerance | ( | double | _arg | ) | [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 void itk::MoreThuenteLineSearchOptimizer::SetMaximumNumberOfIterations | ( | unsigned long | _arg | ) | [virtual] |
virtual void itk::MoreThuenteLineSearchOptimizer::SetValueTolerance | ( | double | _arg | ) | [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 void itk::MoreThuenteLineSearchOptimizer::StartOptimization | ( | void | ) | [virtual] |
virtual void itk::MoreThuenteLineSearchOptimizer::StopOptimization | ( | void | ) | [virtual] |
virtual void itk::MoreThuenteLineSearchOptimizer::TestConvergence | ( | bool & | stop | ) | [protected, virtual] |
Check for convergence
virtual void itk::MoreThuenteLineSearchOptimizer::UpdateIntervalMinimumAndMaximum | ( | void | ) | [protected, virtual] |
Set the minimum and maximum steps to correspond to the the present interval of uncertainty.
bool itk::MoreThuenteLineSearchOptimizer::m_brackt [protected] |
Definition at line 235 of file itkMoreThuenteLineSearchOptimizer.h.
unsigned long itk::MoreThuenteLineSearchOptimizer::m_CurrentIteration [protected] |
Definition at line 164 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 170 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_dg [protected] |
Definition at line 226 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_dginit [protected] |
Definition at line 227 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_dgtest [protected] |
Definition at line 230 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_dgx [protected] |
Definition at line 228 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_dgy [protected] |
Definition at line 229 of file itkMoreThuenteLineSearchOptimizer.h.
MeasureType itk::MoreThuenteLineSearchOptimizer::m_f [protected] |
Definition at line 220 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 223 of file itkMoreThuenteLineSearchOptimizer.h.
MeasureType itk::MoreThuenteLineSearchOptimizer::m_fx [protected] |
Definition at line 221 of file itkMoreThuenteLineSearchOptimizer.h.
MeasureType itk::MoreThuenteLineSearchOptimizer::m_fy [protected] |
Definition at line 222 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 225 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 245 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 165 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 166 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 246 of file itkMoreThuenteLineSearchOptimizer.h.
unsigned long itk::MoreThuenteLineSearchOptimizer::m_MaximumNumberOfIterations [private] |
Definition at line 243 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 237 of file itkMoreThuenteLineSearchOptimizer.h.
bool itk::MoreThuenteLineSearchOptimizer::m_stage1 [protected] |
Definition at line 236 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_step [protected] |
Definition at line 214 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_stepmax [protected] |
Definition at line 218 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_stepmin [protected] |
Definition at line 217 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_stepx [protected] |
Definition at line 215 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_stepy [protected] |
Definition at line 216 of file itkMoreThuenteLineSearchOptimizer.h.
bool itk::MoreThuenteLineSearchOptimizer::m_Stop [protected] |
Definition at line 168 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 167 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 169 of file itkMoreThuenteLineSearchOptimizer.h.
Definition at line 244 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_width [protected] |
Definition at line 232 of file itkMoreThuenteLineSearchOptimizer.h.
double itk::MoreThuenteLineSearchOptimizer::m_width1 [protected] |
Definition at line 233 of file itkMoreThuenteLineSearchOptimizer.h.
Generated on 11-05-2012 for elastix by ![]() |
![]() |