|
ROL
|
Provides interface for and implements line searches. More...
#include <ROL_LineSearch.hpp>
Public Member Functions | |
| virtual | ~LineSearch () |
| LineSearch (ROL::ParameterList &parlist) | |
| virtual void | initialize (const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &con) |
| virtual void | run (Real &alpha, Real &fval, int &ls_neval, int &ls_ngrad, const Real &gs, const Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &con)=0 |
| void | setData (Real &eps, const Vector< Real > &g) |
| void | setMaxitUpdate (Real &alpha, Real &fnew, const Real &fold) |
Protected Member Functions | |
| virtual bool | status (const ELineSearch type, int &ls_neval, int &ls_ngrad, const Real alpha, const Real fold, const Real sgold, const Real fnew, const Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &con) |
| virtual Real | getInitialAlpha (int &ls_neval, int &ls_ngrad, const Real fval, const Real gs, const Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &con) |
| void | setNextInitialAlpha (Real alpha) |
| void | updateIterate (Vector< Real > &xnew, const Vector< Real > &x, const Vector< Real > &s, Real alpha, BoundConstraint< Real > &con) |
| bool | useLocalMinimizer () |
| bool | takeNoStep () |
Private Attributes | |
| ECurvatureCondition | econd_ |
| EDescent | edesc_ |
| bool | useralpha_ |
| bool | usePrevAlpha_ |
| Real | alpha0_ |
| Real | alpha0bnd_ |
| int | maxit_ |
| Real | c1_ |
| Real | c2_ |
| Real | c3_ |
| Real | eps_ |
| Real | fmin_ |
| Real | alphaMin_ |
| bool | acceptMin_ |
| bool | itcond_ |
| ROL::Ptr< Vector< Real > > | xtst_ |
| ROL::Ptr< Vector< Real > > | d_ |
| ROL::Ptr< Vector< Real > > | g_ |
| ROL::Ptr< Vector< Real > > | grad_ |
Provides interface for and implements line searches.
Definition at line 28 of file ROL_LineSearch.hpp.
|
inlinevirtual |
Definition at line 57 of file ROL_LineSearch.hpp.
|
inline |
Definition at line 60 of file ROL_LineSearch.hpp.
References acceptMin_, alpha0_, alpha0bnd_, alphaMin_, c1_, c2_, c3_, ROL::DESCENT_NONLINEARCG, econd_, edesc_, eps_, fmin_, itcond_, maxit_, ROL::StringToECurvatureCondition(), ROL::StringToEDescent(), usePrevAlpha_, useralpha_, and zero.
Referenced by ROL::BackTracking< Real >::BackTracking(), ROL::Bisection< Real >::Bisection(), ROL::Brents< Real >::Brents(), ROL::CubicInterp< Real >::CubicInterp(), ROL::GoldenSection< Real >::GoldenSection(), ROL::IterationScaling< Real >::IterationScaling(), ROL::PathBasedTargetLevel< Real >::PathBasedTargetLevel(), and ROL::ScalarMinimizationLineSearch< Real >::ScalarMinimizationLineSearch().
|
inlinevirtual |
Reimplemented in ROL::BackTracking< Real >, ROL::Bisection< Real >, ROL::Brents< Real >, ROL::CubicInterp< Real >, ROL::GoldenSection< Real >, ROL::PathBasedTargetLevel< Real >, and ROL::ScalarMinimizationLineSearch< Real >.
Definition at line 97 of file ROL_LineSearch.hpp.
References ROL::Vector< Real >::clone(), d_, g_, grad_, and xtst_.
Referenced by ROL::BackTracking< Real >::initialize(), ROL::Bisection< Real >::initialize(), ROL::Brents< Real >::initialize(), ROL::CubicInterp< Real >::initialize(), ROL::GoldenSection< Real >::initialize(), ROL::IterationScaling< Real >::initialize(), ROL::PathBasedTargetLevel< Real >::initialize(), and ROL::ScalarMinimizationLineSearch< Real >::initialize().
|
pure virtual |
|
inline |
Definition at line 110 of file ROL_LineSearch.hpp.
|
inline |
Definition at line 117 of file ROL_LineSearch.hpp.
References acceptMin_, alphaMin_, fmin_, itcond_, and setNextInitialAlpha().
|
inlineprotectedvirtual |
Definition at line 133 of file ROL_LineSearch.hpp.
References alphaMin_, c1_, c2_, c3_, ROL::CURVATURECONDITION_APPROXIMATEWOLFE, ROL::CURVATURECONDITION_GENERALIZEDWOLFE, ROL::CURVATURECONDITION_GOLDSTEIN, ROL::CURVATURECONDITION_NULL, ROL::CURVATURECONDITION_STRONGWOLFE, ROL::CURVATURECONDITION_WOLFE, d_, ROL::DESCENT_NONLINEARCG, ROL::DESCENT_STEEPEST, ROL::Vector< Real >::dot(), econd_, edesc_, eps_, fmin_, g_, grad_, ROL::Objective< Real >::gradient(), ROL::BoundConstraint< Real >::isActivated(), itcond_, ROL::LINESEARCH_BACKTRACKING, ROL::LINESEARCH_CUBICINTERP, maxit_, ROL::BoundConstraint< Real >::pruneActive(), ROL::BoundConstraint< Real >::pruneInactive(), ROL::ROL_EPSILON(), ROL::Objective< Real >::update(), updateIterate(), and xtst_.
Referenced by ROL::BackTracking< Real >::run(), ROL::Bisection< Real >::run(), ROL::CubicInterp< Real >::run(), and ROL::GoldenSection< Real >::run().
|
inlineprotectedvirtual |
Definition at line 236 of file ROL_LineSearch.hpp.
References alpha0_, alpha0bnd_, d_, ROL::DESCENT_NONLINEARCG, ROL::DESCENT_STEEPEST, edesc_, ROL::ROL_EPSILON(), ROL::Objective< Real >::update(), updateIterate(), usePrevAlpha_, useralpha_, and ROL::Objective< Real >::value().
Referenced by ROL::BackTracking< Real >::run(), ROL::Bisection< Real >::run(), ROL::Brents< Real >::run(), ROL::CubicInterp< Real >::run(), ROL::GoldenSection< Real >::run(), ROL::IterationScaling< Real >::run(), and ROL::ScalarMinimizationLineSearch< Real >::run().
|
inlineprotected |
Definition at line 263 of file ROL_LineSearch.hpp.
References alpha0_, and usePrevAlpha_.
Referenced by ROL::ScalarMinimizationLineSearch< Real >::run(), and setMaxitUpdate().
|
inlineprotected |
Definition at line 269 of file ROL_LineSearch.hpp.
References ROL::Vector< Real >::axpy(), ROL::BoundConstraint< Real >::isActivated(), ROL::BoundConstraint< Real >::project(), and ROL::Vector< Real >::set().
Referenced by getInitialAlpha(), ROL::BackTracking< Real >::run(), ROL::Bisection< Real >::run(), ROL::CubicInterp< Real >::run(), ROL::GoldenSection< Real >::run(), ROL::IterationScaling< Real >::run(), ROL::PathBasedTargetLevel< Real >::run(), and status().
|
inlineprotected |
Definition at line 281 of file ROL_LineSearch.hpp.
References acceptMin_, and itcond_.
|
inlineprotected |
Definition at line 285 of file ROL_LineSearch.hpp.
References acceptMin_, and itcond_.
|
private |
Definition at line 31 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), and status().
|
private |
Definition at line 32 of file ROL_LineSearch.hpp.
Referenced by getInitialAlpha(), LineSearch(), and status().
|
private |
Definition at line 34 of file ROL_LineSearch.hpp.
Referenced by getInitialAlpha(), and LineSearch().
|
private |
Definition at line 35 of file ROL_LineSearch.hpp.
Referenced by getInitialAlpha(), LineSearch(), and setNextInitialAlpha().
|
private |
Definition at line 36 of file ROL_LineSearch.hpp.
Referenced by getInitialAlpha(), LineSearch(), and setNextInitialAlpha().
|
private |
Definition at line 37 of file ROL_LineSearch.hpp.
Referenced by getInitialAlpha(), and LineSearch().
|
private |
Definition at line 38 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), and status().
|
private |
Definition at line 39 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), and status().
|
private |
Definition at line 40 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), and status().
|
private |
Definition at line 41 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), and status().
|
private |
Definition at line 42 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), setData(), and status().
|
private |
Definition at line 43 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), setMaxitUpdate(), and status().
|
private |
Definition at line 44 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), setMaxitUpdate(), and status().
|
private |
Definition at line 45 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), setMaxitUpdate(), takeNoStep(), and useLocalMinimizer().
|
private |
Definition at line 46 of file ROL_LineSearch.hpp.
Referenced by LineSearch(), setMaxitUpdate(), status(), takeNoStep(), and useLocalMinimizer().
|
private |
Definition at line 48 of file ROL_LineSearch.hpp.
Referenced by initialize(), and status().
|
private |
Definition at line 49 of file ROL_LineSearch.hpp.
Referenced by getInitialAlpha(), initialize(), and status().
|
private |
Definition at line 50 of file ROL_LineSearch.hpp.
Referenced by initialize(), and status().
|
private |
Definition at line 51 of file ROL_LineSearch.hpp.
Referenced by initialize(), setData(), and status().