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 62 of file ROL_LineSearch.hpp.
|
inlinevirtual |
Definition at line 91 of file ROL_LineSearch.hpp.
|
inline |
Definition at line 94 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::acceptMin_, ROL::LineSearch< Real >::alpha0_, ROL::LineSearch< Real >::alpha0bnd_, ROL::LineSearch< Real >::alphaMin_, ROL::LineSearch< Real >::c1_, ROL::LineSearch< Real >::c2_, ROL::LineSearch< Real >::c3_, ROL::DESCENT_NONLINEARCG, ROL::LineSearch< Real >::econd_, ROL::LineSearch< Real >::edesc_, ROL::LineSearch< Real >::fmin_, ROL::LineSearch< Real >::itcond_, ROL::LineSearch< Real >::maxit_, ROL::StringToECurvatureCondition(), ROL::StringToEDescent(), ROL::LineSearch< Real >::usePrevAlpha_, ROL::LineSearch< Real >::useralpha_, and zero.
|
inlinevirtual |
Reimplemented in ROL::ScalarMinimizationLineSearch< Real >, ROL::Brents< Real >, ROL::PathBasedTargetLevel< Real >, ROL::Bisection< Real >, ROL::GoldenSection< Real >, ROL::BackTracking< Real >, ROL::CubicInterp< Real >, and ROL::IterationScaling< Real >.
Definition at line 128 of file ROL_LineSearch.hpp.
References ROL::Vector< Real >::clone(), ROL::LineSearch< Real >::d_, ROL::LineSearch< Real >::g_, ROL::LineSearch< Real >::grad_, and ROL::LineSearch< Real >::xtst_.
Referenced by ROL::IterationScaling< Real >::initialize(), ROL::CubicInterp< Real >::initialize(), ROL::BackTracking< Real >::initialize(), ROL::Bisection< Real >::initialize(), ROL::GoldenSection< Real >::initialize(), ROL::PathBasedTargetLevel< Real >::initialize(), ROL::Brents< Real >::initialize(), and ROL::ScalarMinimizationLineSearch< Real >::initialize().
|
pure virtual |
|
inline |
Definition at line 141 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::eps_, and ROL::LineSearch< Real >::grad_.
|
inline |
Definition at line 148 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::acceptMin_, ROL::LineSearch< Real >::alphaMin_, ROL::LineSearch< Real >::fmin_, ROL::LineSearch< Real >::itcond_, and ROL::LineSearch< Real >::setNextInitialAlpha().
|
inlineprotectedvirtual |
Definition at line 164 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::alphaMin_, ROL::LineSearch< Real >::c1_, ROL::LineSearch< Real >::c2_, ROL::LineSearch< Real >::c3_, ROL::CURVATURECONDITION_APPROXIMATEWOLFE, ROL::CURVATURECONDITION_GENERALIZEDWOLFE, ROL::CURVATURECONDITION_GOLDSTEIN, ROL::CURVATURECONDITION_NULL, ROL::CURVATURECONDITION_STRONGWOLFE, ROL::CURVATURECONDITION_WOLFE, ROL::LineSearch< Real >::d_, ROL::DESCENT_NONLINEARCG, ROL::DESCENT_STEEPEST, ROL::Vector< Real >::dot(), ROL::LineSearch< Real >::econd_, ROL::LineSearch< Real >::edesc_, ROL::LineSearch< Real >::eps_, ROL::LineSearch< Real >::fmin_, ROL::LineSearch< Real >::g_, ROL::LineSearch< Real >::grad_, ROL::Objective< Real >::gradient(), ROL::BoundConstraint< Real >::isActivated(), ROL::LineSearch< Real >::itcond_, ROL::LINESEARCH_BACKTRACKING, ROL::LINESEARCH_CUBICINTERP, ROL::LineSearch< Real >::maxit_, ROL::BoundConstraint< Real >::pruneActive(), ROL::BoundConstraint< Real >::pruneInactive(), ROL::Objective< Real >::update(), ROL::LineSearch< Real >::updateIterate(), and ROL::LineSearch< Real >::xtst_.
|
inlineprotectedvirtual |
Definition at line 267 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::alpha0_, ROL::LineSearch< Real >::alpha0bnd_, ROL::LineSearch< Real >::d_, ROL::DESCENT_NONLINEARCG, ROL::DESCENT_STEEPEST, ROL::LineSearch< Real >::edesc_, ROL::Objective< Real >::update(), ROL::LineSearch< Real >::updateIterate(), ROL::LineSearch< Real >::usePrevAlpha_, ROL::LineSearch< Real >::useralpha_, and ROL::Objective< Real >::value().
Referenced by ROL::IterationScaling< Real >::run(), ROL::CubicInterp< Real >::run(), ROL::BackTracking< Real >::run(), ROL::GoldenSection< Real >::run(), ROL::Bisection< Real >::run(), ROL::Brents< Real >::run(), and ROL::ScalarMinimizationLineSearch< Real >::run().
|
inlineprotected |
Definition at line 294 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::alpha0_, and ROL::LineSearch< Real >::usePrevAlpha_.
Referenced by ROL::ScalarMinimizationLineSearch< Real >::run(), and ROL::LineSearch< Real >::setMaxitUpdate().
|
inlineprotected |
Definition at line 300 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 ROL::LineSearch< Real >::getInitialAlpha(), ROL::IterationScaling< Real >::run(), ROL::BackTracking< Real >::run(), ROL::CubicInterp< Real >::run(), ROL::Bisection< Real >::run(), ROL::GoldenSection< Real >::run(), ROL::PathBasedTargetLevel< Real >::run(), and ROL::LineSearch< Real >::status().
|
inlineprotected |
Definition at line 312 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::acceptMin_, and ROL::LineSearch< Real >::itcond_.
|
inlineprotected |
Definition at line 316 of file ROL_LineSearch.hpp.
References ROL::LineSearch< Real >::acceptMin_, and ROL::LineSearch< Real >::itcond_.
|
private |
Definition at line 65 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 66 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::getInitialAlpha(), ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 68 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::getInitialAlpha(), and ROL::LineSearch< Real >::LineSearch().
|
private |
Definition at line 69 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::getInitialAlpha(), ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::setNextInitialAlpha().
|
private |
Definition at line 70 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::getInitialAlpha(), ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::setNextInitialAlpha().
|
private |
Definition at line 71 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::getInitialAlpha(), and ROL::LineSearch< Real >::LineSearch().
|
private |
Definition at line 72 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 73 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 74 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 75 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 76 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::setData(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 77 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), ROL::LineSearch< Real >::setMaxitUpdate(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 78 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), ROL::LineSearch< Real >::setMaxitUpdate(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 79 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), ROL::LineSearch< Real >::setMaxitUpdate(), ROL::LineSearch< Real >::takeNoStep(), and ROL::LineSearch< Real >::useLocalMinimizer().
|
private |
Definition at line 80 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::LineSearch(), ROL::LineSearch< Real >::setMaxitUpdate(), ROL::LineSearch< Real >::status(), ROL::LineSearch< Real >::takeNoStep(), and ROL::LineSearch< Real >::useLocalMinimizer().
|
private |
Definition at line 82 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::initialize(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 83 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::getInitialAlpha(), ROL::LineSearch< Real >::initialize(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 84 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::initialize(), and ROL::LineSearch< Real >::status().
|
private |
Definition at line 85 of file ROL_LineSearch.hpp.
Referenced by ROL::LineSearch< Real >::initialize(), ROL::LineSearch< Real >::setData(), and ROL::LineSearch< Real >::status().