|
ROL
|
Provides the interface to compute optimization steps with projected secant method using line search. More...
#include <ROL_ProjectedSecantStep.hpp>
Inheritance diagram for ROL::ProjectedSecantStep< Real >:Public Member Functions | |
| ProjectedSecantStep (ROL::ParameterList &parlist, const ROL::Ptr< Secant< Real > > &secant=ROL::nullPtr, const bool computeObj=true) | |
| Constructor. More... | |
| void | initialize (Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
| Initialize step with bound constraint. More... | |
| void | compute (Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
| Compute step. More... | |
| void | update (Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
| Update step, if successful. More... | |
| std::string | printHeader (void) const |
| Print iterate header. More... | |
| std::string | printName (void) const |
| Print step name. More... | |
| std::string | print (AlgorithmState< Real > &algo_state, bool print_header=false) const |
| Print iterate status. More... | |
Public Member Functions inherited from ROL::Step< Real > | |
| virtual | ~Step () |
| Step (void) | |
| virtual void | initialize (Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state) |
| Initialize step with bound constraint. More... | |
| virtual void | initialize (Vector< Real > &x, const Vector< Real > &g, Vector< Real > &l, const Vector< Real > &c, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state) |
| Initialize step with equality constraint. More... | |
| virtual void | initialize (Vector< Real > &x, const Vector< Real > &g, Vector< Real > &l, const Vector< Real > &c, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
| Initialize step with equality constraint. More... | |
| virtual void | compute (Vector< Real > &s, const Vector< Real > &x, const Vector< Real > &l, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state) |
| Compute step (equality constraints). More... | |
| virtual void | update (Vector< Real > &x, Vector< Real > &l, const Vector< Real > &s, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state) |
| Update step, if successful (equality constraints). More... | |
| virtual void | compute (Vector< Real > &s, const Vector< Real > &x, const Vector< Real > &l, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
| Compute step (equality constraints). More... | |
| virtual void | update (Vector< Real > &x, Vector< Real > &l, const Vector< Real > &s, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
| Update step, if successful (equality constraints). More... | |
| const ROL::Ptr< const StepState< Real > > | getStepState (void) const |
| Get state for step object. More... | |
| void | reset (const Real searchSize=1.0) |
| Get state for step object. More... | |
Private Attributes | |
| ROL::Ptr< Secant< Real > > | secant_ |
| Secant object (used for quasi-Newton) More... | |
| ESecant | esec_ |
| ROL::Ptr< Vector< Real > > | d_ |
| Additional vector storage. More... | |
| ROL::Ptr< Vector< Real > > | gp_ |
| Additional vector storage. More... | |
| int | verbosity_ |
| Verbosity level. More... | |
| const bool | computeObj_ |
| bool | useProjectedGrad_ |
| Whether or not to use to the projected gradient criticality measure. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ROL::Step< Real > | |
| ROL::Ptr< StepState< Real > > | getState (void) |
Provides the interface to compute optimization steps with projected secant method using line search.
Definition at line 60 of file ROL_ProjectedSecantStep.hpp.
|
inline |
Constructor.
Standard constructor to build a ProjectedSecantStep object. Algorithmic specifications are passed in through a ROL::ParameterList.
| [in] | parlist | is a parameter list containing algorithmic specifications |
| [in] | secant | is a user-defined secant object |
Definition at line 85 of file ROL_ProjectedSecantStep.hpp.
References ROL::ProjectedSecantStep< Real >::esec_, ROL::ProjectedSecantStep< Real >::secant_, ROL::StringToESecant(), ROL::ProjectedSecantStep< Real >::useProjectedGrad_, and ROL::ProjectedSecantStep< Real >::verbosity_.
|
inlinevirtual |
Initialize step with bound constraint.
Reimplemented from ROL::Step< Real >.
Definition at line 101 of file ROL_ProjectedSecantStep.hpp.
References ROL::Vector< Real >::clone(), ROL::ProjectedSecantStep< Real >::d_, ROL::ProjectedSecantStep< Real >::gp_, and ROL::Step< Real >::initialize().
|
inlinevirtual |
Compute step.
Reimplemented from ROL::Step< Real >.
Definition at line 109 of file ROL_ProjectedSecantStep.hpp.
References ROL::Step< Real >::getState(), ROL::AlgorithmState< Real >::gnorm, ROL::ProjectedSecantStep< Real >::gp_, ROL::Vector< Real >::plus(), ROL::BoundConstraint< Real >::pruneActive(), ROL::BoundConstraint< Real >::pruneInactive(), ROL::Vector< Real >::scale(), and ROL::ProjectedSecantStep< Real >::secant_.
|
inlinevirtual |
Update step, if successful.
Reimplemented from ROL::Step< Real >.
Definition at line 128 of file ROL_ProjectedSecantStep.hpp.
References ROL::ProjectedSecantStep< Real >::computeObj_, ROL::BoundConstraint< Real >::computeProjectedGradient(), ROL::ProjectedSecantStep< Real >::d_, ROL::Step< Real >::getState(), ROL::AlgorithmState< Real >::gnorm, ROL::ProjectedSecantStep< Real >::gp_, ROL::Objective< Real >::gradient(), ROL::AlgorithmState< Real >::iter, ROL::AlgorithmState< Real >::iterateVec, ROL::AlgorithmState< Real >::nfval, ROL::AlgorithmState< Real >::ngrad, ROL::Vector< Real >::norm(), ROL::Vector< Real >::plus(), ROL::BoundConstraint< Real >::project(), ROL::ProjectedSecantStep< Real >::secant_, ROL::AlgorithmState< Real >::snorm, ROL::Objective< Real >::update(), ROL::ProjectedSecantStep< Real >::useProjectedGrad_, ROL::Objective< Real >::value(), and ROL::AlgorithmState< Real >::value.
|
inlinevirtual |
Print iterate header.
Reimplemented from ROL::Step< Real >.
Definition at line 172 of file ROL_ProjectedSecantStep.hpp.
References ROL::DESCENT_SECANT, ROL::EDescentToString(), and ROL::ProjectedSecantStep< Real >::verbosity_.
Referenced by ROL::ProjectedSecantStep< Real >::print().
|
inlinevirtual |
Print step name.
Reimplemented from ROL::Step< Real >.
Definition at line 198 of file ROL_ProjectedSecantStep.hpp.
References ROL::DESCENT_SECANT, ROL::EDescentToString(), ROL::ProjectedSecantStep< Real >::esec_, and ROL::ESecantToString().
Referenced by ROL::ProjectedSecantStep< Real >::print().
|
inlinevirtual |
Print iterate status.
Reimplemented from ROL::Step< Real >.
Definition at line 204 of file ROL_ProjectedSecantStep.hpp.
References ROL::AlgorithmState< Real >::gnorm, ROL::AlgorithmState< Real >::iter, ROL::AlgorithmState< Real >::nfval, ROL::AlgorithmState< Real >::ngrad, ROL::ProjectedSecantStep< Real >::printHeader(), ROL::ProjectedSecantStep< Real >::printName(), ROL::AlgorithmState< Real >::snorm, and ROL::AlgorithmState< Real >::value.
|
private |
Secant object (used for quasi-Newton)
Definition at line 63 of file ROL_ProjectedSecantStep.hpp.
Referenced by ROL::ProjectedSecantStep< Real >::compute(), ROL::ProjectedSecantStep< Real >::ProjectedSecantStep(), and ROL::ProjectedSecantStep< Real >::update().
|
private |
Definition at line 64 of file ROL_ProjectedSecantStep.hpp.
Referenced by ROL::ProjectedSecantStep< Real >::printName(), and ROL::ProjectedSecantStep< Real >::ProjectedSecantStep().
|
private |
Additional vector storage.
Definition at line 65 of file ROL_ProjectedSecantStep.hpp.
Referenced by ROL::ProjectedSecantStep< Real >::initialize(), and ROL::ProjectedSecantStep< Real >::update().
|
private |
Additional vector storage.
Definition at line 66 of file ROL_ProjectedSecantStep.hpp.
Referenced by ROL::ProjectedSecantStep< Real >::compute(), ROL::ProjectedSecantStep< Real >::initialize(), and ROL::ProjectedSecantStep< Real >::update().
|
private |
Verbosity level.
Definition at line 67 of file ROL_ProjectedSecantStep.hpp.
Referenced by ROL::ProjectedSecantStep< Real >::printHeader(), and ROL::ProjectedSecantStep< Real >::ProjectedSecantStep().
|
private |
Definition at line 68 of file ROL_ProjectedSecantStep.hpp.
Referenced by ROL::ProjectedSecantStep< Real >::update().
|
private |
Whether or not to use to the projected gradient criticality measure.
Definition at line 69 of file ROL_ProjectedSecantStep.hpp.
Referenced by ROL::ProjectedSecantStep< Real >::ProjectedSecantStep(), and ROL::ProjectedSecantStep< Real >::update().
1.8.5