#include <lnsrchBT.hh>
Inheritance diagram for RVLUmin::BacktrackingLineSearchAlgBase< Scalar >:
Public Member Functions | |
BacktrackingLineSearchAlgBase (LineSearchAlg< Scalar > const &lsalg, FunctionalEvaluation< Scalar > &fx, Vector< Scalar > const &dx, Scalar _step, Scalar _eta1, Scalar _eta2, Scalar _gamma1, Scalar _gamma2, bool _DispFlag, Scalar _fudge, int _maxsteps, ostream &_str) | |
Constructor arguments:. | |
BacktrackingLineSearchAlgBase (const BacktrackingLineSearchAlgBase< Scalar > &ls) | |
virtual | ~BacktrackingLineSearchAlgBase () |
ostream & | write (ostream &str) const |
bool | query () |
Scalar | getStep () const |
void | run () |
Checks for sufficient decrease, and while not found, shrink step. | |
Protected Member Functions | |
LineSearchAlgBase< Scalar > * | clone () const |
The initial step must be prescribed externally, as no scale information is available at the outset. Starts with backtrack loop: at each unsuccessful iteration, step <- step*gamma, with gamma < 1. Stops when sufficient decrease condition is satisfied. If this happens on first step, goes into internal doubling loop: at each doubling iteration, step <- step*stretch, with 1 < stretch < gamma (last inequality to avoid cycling). Internal doubling stops if function value increases.
Definition at line 61 of file lnsrchBT.hh.
RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::BacktrackingLineSearchAlgBase | ( | LineSearchAlg< Scalar > const & | lsalg, | |
FunctionalEvaluation< Scalar > & | fx, | |||
Vector< Scalar > const & | dx, | |||
Scalar | _step, | |||
Scalar | _eta1, | |||
Scalar | _eta2, | |||
Scalar | _gamma1, | |||
Scalar | _gamma2, | |||
bool | _DispFlag, | |||
Scalar | _fudge, | |||
int | _maxsteps, | |||
ostream & | _str | |||
) |
Constructor arguments:.
lsalg | const reference to line search algorithm | |
fx | current FunctionalEvaluation on call, updated on return | |
dx | const reference to search direction | |
_step | initial step on call, last successful step on return | |
_eta1 | lower G-A parameter > 0 | |
_eta2 | upper G-A parameter > eta1 | |
_gamma1 | trust region reduction factor < 1 | |
_gamma2 | trust region expansion factor > 1, gamma1*gamma2 < 1 | |
_DispFlag | verbosity flag | |
_fudge | fraction of max step to permit | |
_maxsteps | max number of line search steps | |
_str | verbose output unit |
Definition at line 106 of file lnsrchBT.hh.
RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::BacktrackingLineSearchAlgBase | ( | const BacktrackingLineSearchAlgBase< Scalar > & | ls | ) |
Definition at line 132 of file lnsrchBT.hh.
virtual RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::~BacktrackingLineSearchAlgBase | ( | ) | [virtual] |
Definition at line 145 of file lnsrchBT.hh.
LineSearchAlgBase<Scalar>* RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::clone | ( | ) | const [protected, virtual] |
ostream& RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::write | ( | ostream & | str | ) | const [virtual] |
Reimplemented from RVLUmin::LineSearchAlgBase< Scalar >.
Definition at line 147 of file lnsrchBT.hh.
bool RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::query | ( | ) | [virtual] |
Scalar RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::getStep | ( | ) | const [virtual] |
void RVLUmin::BacktrackingLineSearchAlgBase< Scalar >::run | ( | ) | [virtual] |
Checks for sufficient decrease, and while not found, shrink step.
Implements RVLAlg::Algorithm.
Definition at line 160 of file lnsrchBT.hh.
References RVL::Vector< Scalar >::copy(), RVLUmin::LineSearchAlgBase< Scalar >::dx, RVLUmin::LineSearchAlgBase< Scalar >::fx, RVLUmin::LineSearchAlgBase< Scalar >::getBasePoint(), RVLUmin::LineSearchAlgBase< Scalar >::getMinStep(), RVLUmin::LineSearchAlgBase< Scalar >::getSearchDirection(), RVL::Vector< Scalar >::getSpace(), and RVL::Vector< Scalar >::linComb().