ROL
|
Provides the interface to compute augmented Lagrangian steps. More...
#include <ROL_AugmentedLagrangianStep.hpp>
Public Member Functions | |
~AugmentedLagrangianStep () | |
AugmentedLagrangianStep (Teuchos::ParameterList &parlist) | |
void | initialize (Vector< Real > &x, const Vector< Real > &g, Vector< Real > &l, const Vector< Real > &c, Objective< Real > &obj, EqualityConstraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
Initialize step with equality constraint. More... | |
void | compute (Vector< Real > &s, const Vector< Real > &x, const Vector< Real > &l, Objective< Real > &obj, EqualityConstraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
Compute step (equality and bound constraints). More... | |
void | update (Vector< Real > &x, Vector< Real > &l, const Vector< Real > &s, Objective< Real > &obj, EqualityConstraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) |
Update step, if successful (equality and bound constraints). 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 pHeader=false) const |
Print iterate status. More... | |
void | compute (Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state) |
Compute step for bound constraints; here only to satisfy the interface requirements, does nothing, needs refactoring. More... | |
void | update (Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state) |
Update step, for bound constraints; here only to satisfy the interface requirements, does nothing, needs refactoring. More... | |
![]() | |
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 > &s, 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, EqualityConstraint< Real > &con, 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, EqualityConstraint< 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, EqualityConstraint< Real > &con, AlgorithmState< Real > &algo_state) |
Update step, if successful (equality constraints). More... | |
void | initialize (OptimizationProblem< Real > &opt, AlgorithmState< Real > &algo_state) |
void | compute (Vector< Real > &s, OptimizationProblem< Real > &opt, AlgorithmState< Real > &algo_state) |
void | update (OptimizationProblem< Real > &opt, const Vector< Real > &s, AlgorithmState< Real > &algo_state) |
const Teuchos::RCP< const StepState< Real > > | getStepState (void) const |
Get state for step object. More... | |
Private Member Functions | |
Real | computeGradient (Vector< Real > &g, const Vector< Real > &x, const Real mu, Objective< Real > &obj, BoundConstraint< Real > &bnd) |
Private Attributes | |
Teuchos::RCP< Algorithm< Real > > | algo_ |
Teuchos::RCP< Vector< Real > > | x_ |
Teuchos::ParameterList | parlist_ |
bool | scaleLagrangian_ |
Real | minPenaltyReciprocal_ |
Real | minPenaltyLowerBound_ |
Real | penaltyUpdate_ |
Real | maxPenaltyParam_ |
Real | optIncreaseExponent_ |
Real | optDecreaseExponent_ |
Real | optToleranceInitial_ |
Real | optTolerance_ |
Real | feasIncreaseExponent_ |
Real | feasDecreaseExponent_ |
Real | feasToleranceInitial_ |
Real | feasTolerance_ |
bool | print_ |
int | maxit_ |
int | subproblemIter_ |
std::string | subStep_ |
Real | outerOptTolerance_ |
Real | outerFeasTolerance_ |
Real | outerStepTolerance_ |
Additional Inherited Members | |
![]() | |
Teuchos::RCP< StepState< Real > > | getState (void) |
Provides the interface to compute augmented Lagrangian steps.
Definition at line 69 of file ROL_AugmentedLagrangianStep.hpp.
|
inline |
Definition at line 130 of file ROL_AugmentedLagrangianStep.hpp.
|
inline |
Definition at line 132 of file ROL_AugmentedLagrangianStep.hpp.
References ROL::AugmentedLagrangianStep< Real >::feasDecreaseExponent_, ROL::AugmentedLagrangianStep< Real >::feasIncreaseExponent_, ROL::AugmentedLagrangianStep< Real >::feasToleranceInitial_, ROL::Step< Real >::getState(), ROL::AugmentedLagrangianStep< Real >::maxit_, ROL::AugmentedLagrangianStep< Real >::maxPenaltyParam_, ROL::AugmentedLagrangianStep< Real >::minPenaltyLowerBound_, ROL::AugmentedLagrangianStep< Real >::minPenaltyReciprocal_, ROL::AugmentedLagrangianStep< Real >::optDecreaseExponent_, ROL::AugmentedLagrangianStep< Real >::optIncreaseExponent_, ROL::AugmentedLagrangianStep< Real >::optToleranceInitial_, ROL::AugmentedLagrangianStep< Real >::outerFeasTolerance_, ROL::AugmentedLagrangianStep< Real >::outerOptTolerance_, ROL::AugmentedLagrangianStep< Real >::outerStepTolerance_, ROL::AugmentedLagrangianStep< Real >::parlist_, ROL::AugmentedLagrangianStep< Real >::penaltyUpdate_, ROL::AugmentedLagrangianStep< Real >::print_, ROL::AugmentedLagrangianStep< Real >::scaleLagrangian_, and ROL::AugmentedLagrangianStep< Real >::subStep_.
|
inlineprivate |
Definition at line 100 of file ROL_AugmentedLagrangianStep.hpp.
References ROL::Vector< Real >::dual(), ROL::AugmentedLagrangian< Real >::gradient(), ROL::BoundConstraint< Real >::isActivated(), ROL::Vector< Real >::norm(), ROL::BoundConstraint< Real >::project(), ROL::Vector< Real >::scale(), ROL::AugmentedLagrangianStep< Real >::scaleLagrangian_, and ROL::AugmentedLagrangianStep< Real >::x_.
Referenced by ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
inlinevirtual |
Initialize step with equality constraint.
Reimplemented from ROL::Step< Real >.
Definition at line 165 of file ROL_AugmentedLagrangianStep.hpp.
References ROL::Vector< Real >::clone(), ROL::AlgorithmState< Real >::cnorm, ROL::AugmentedLagrangianStep< Real >::computeGradient(), ROL::AugmentedLagrangianStep< Real >::feasDecreaseExponent_, ROL::AugmentedLagrangianStep< Real >::feasTolerance_, ROL::AugmentedLagrangianStep< Real >::feasToleranceInitial_, ROL::AugmentedLagrangian< Real >::getConstraintVec(), ROL::AugmentedLagrangian< Real >::getNumberConstraintEvaluations(), ROL::AugmentedLagrangian< Real >::getNumberFunctionEvaluations(), ROL::AugmentedLagrangian< Real >::getNumberGradientEvaluations(), ROL::AugmentedLagrangian< Real >::getObjectiveValue(), ROL::Step< Real >::getState(), ROL::AlgorithmState< Real >::gnorm, ROL::BoundConstraint< Real >::isActivated(), ROL::AlgorithmState< Real >::iter, ROL::AugmentedLagrangianStep< Real >::minPenaltyLowerBound_, ROL::AugmentedLagrangianStep< Real >::minPenaltyReciprocal_, ROL::AlgorithmState< Real >::ncval, ROL::AlgorithmState< Real >::nfval, ROL::AlgorithmState< Real >::ngrad, ROL::AugmentedLagrangianStep< Real >::optDecreaseExponent_, ROL::AugmentedLagrangianStep< Real >::optTolerance_, ROL::AugmentedLagrangianStep< Real >::optToleranceInitial_, ROL::AugmentedLagrangianStep< Real >::outerFeasTolerance_, ROL::AugmentedLagrangianStep< Real >::outerOptTolerance_, ROL::BoundConstraint< Real >::project(), ROL::AugmentedLagrangian< Real >::update(), ROL::BoundConstraint< Real >::update(), ROL::AlgorithmState< Real >::value, and ROL::AugmentedLagrangianStep< Real >::x_.
|
inlinevirtual |
Compute step (equality and bound constraints).
Reimplemented from ROL::Step< Real >.
Definition at line 208 of file ROL_AugmentedLagrangianStep.hpp.
References ROL::AugmentedLagrangianStep< Real >::algo_, ROL::Vector< Real >::axpy(), ROL::BoundConstraint< Real >::isActivated(), ROL::AugmentedLagrangianStep< Real >::optTolerance_, ROL::AugmentedLagrangianStep< Real >::parlist_, ROL::AugmentedLagrangianStep< Real >::print_, ROL::Vector< Real >::set(), ROL::AugmentedLagrangianStep< Real >::subproblemIter_, ROL::AugmentedLagrangianStep< Real >::subStep_, and ROL::AugmentedLagrangianStep< Real >::x_.
|
inlinevirtual |
Update step, if successful (equality and bound constraints).
Reimplemented from ROL::Step< Real >.
Definition at line 230 of file ROL_AugmentedLagrangianStep.hpp.
References ROL::Vector< Real >::axpy(), ROL::AlgorithmState< Real >::cnorm, ROL::AugmentedLagrangianStep< Real >::computeGradient(), ROL::AugmentedLagrangianStep< Real >::feasDecreaseExponent_, ROL::AugmentedLagrangianStep< Real >::feasIncreaseExponent_, ROL::AugmentedLagrangianStep< Real >::feasTolerance_, ROL::AugmentedLagrangianStep< Real >::feasToleranceInitial_, ROL::AugmentedLagrangian< Real >::getConstraintVec(), ROL::AugmentedLagrangian< Real >::getNumberConstraintEvaluations(), ROL::AugmentedLagrangian< Real >::getNumberFunctionEvaluations(), ROL::AugmentedLagrangian< Real >::getNumberGradientEvaluations(), ROL::AugmentedLagrangian< Real >::getObjectiveValue(), ROL::Step< Real >::getState(), ROL::AlgorithmState< Real >::gnorm, ROL::AlgorithmState< Real >::iter, ROL::AlgorithmState< Real >::iterateVec, ROL::AlgorithmState< Real >::lagmultVec, ROL::AugmentedLagrangianStep< Real >::maxPenaltyParam_, ROL::AugmentedLagrangianStep< Real >::minPenaltyLowerBound_, ROL::AugmentedLagrangianStep< Real >::minPenaltyReciprocal_, ROL::AlgorithmState< Real >::ncval, ROL::AlgorithmState< Real >::nfval, ROL::AlgorithmState< Real >::ngrad, ROL::Vector< Real >::norm(), ROL::AugmentedLagrangianStep< Real >::optDecreaseExponent_, ROL::AugmentedLagrangianStep< Real >::optIncreaseExponent_, ROL::AugmentedLagrangianStep< Real >::optTolerance_, ROL::AugmentedLagrangianStep< Real >::optToleranceInitial_, ROL::AugmentedLagrangianStep< Real >::outerFeasTolerance_, ROL::AugmentedLagrangianStep< Real >::outerOptTolerance_, ROL::AugmentedLagrangianStep< Real >::penaltyUpdate_, ROL::Vector< Real >::plus(), ROL::AugmentedLagrangian< Real >::reset(), ROL::AlgorithmState< Real >::snorm, ROL::AugmentedLagrangian< Real >::update(), ROL::BoundConstraint< Real >::update(), and ROL::AlgorithmState< Real >::value.
|
inlinevirtual |
Print iterate header.
Reimplemented from ROL::Step< Real >.
Definition at line 282 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::print().
|
inlinevirtual |
Print step name.
Reimplemented from ROL::Step< Real >.
Definition at line 303 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::print().
|
inlinevirtual |
Print iterate status.
Reimplemented from ROL::Step< Real >.
Definition at line 312 of file ROL_AugmentedLagrangianStep.hpp.
References ROL::AlgorithmState< Real >::cnorm, ROL::AugmentedLagrangianStep< Real >::feasTolerance_, ROL::AlgorithmState< Real >::gnorm, ROL::AlgorithmState< Real >::iter, ROL::AlgorithmState< Real >::ncval, ROL::AlgorithmState< Real >::nfval, ROL::AlgorithmState< Real >::ngrad, ROL::AugmentedLagrangianStep< Real >::optTolerance_, ROL::AugmentedLagrangianStep< Real >::outerFeasTolerance_, ROL::AugmentedLagrangianStep< Real >::outerOptTolerance_, ROL::AugmentedLagrangianStep< Real >::printHeader(), ROL::AugmentedLagrangianStep< Real >::printName(), ROL::AlgorithmState< Real >::snorm, ROL::AugmentedLagrangianStep< Real >::subproblemIter_, and ROL::AlgorithmState< Real >::value.
|
inlinevirtual |
Compute step for bound constraints; here only to satisfy the interface requirements, does nothing, needs refactoring.
Reimplemented from ROL::Step< Real >.
Definition at line 358 of file ROL_AugmentedLagrangianStep.hpp.
|
inlinevirtual |
Update step, for bound constraints; here only to satisfy the interface requirements, does nothing, needs refactoring.
Reimplemented from ROL::Step< Real >.
Definition at line 365 of file ROL_AugmentedLagrangianStep.hpp.
|
private |
Definition at line 71 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::compute().
|
private |
Definition at line 72 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::compute(), ROL::AugmentedLagrangianStep< Real >::computeGradient(), and ROL::AugmentedLagrangianStep< Real >::initialize().
|
private |
Definition at line 74 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::compute().
|
private |
Definition at line 76 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::computeGradient().
|
private |
Definition at line 77 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 78 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 79 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 80 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 82 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 83 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 84 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
|
private |
Definition at line 87 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 88 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 89 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 90 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::initialize(), ROL::AugmentedLagrangianStep< Real >::print(), and ROL::AugmentedLagrangianStep< Real >::update().
|
private |
Definition at line 92 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::compute().
|
private |
Definition at line 93 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep().
|
private |
Definition at line 94 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::compute(), and ROL::AugmentedLagrangianStep< Real >::print().
|
private |
Definition at line 95 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep(), and ROL::AugmentedLagrangianStep< Real >::compute().
|
private |
|
private |
|
private |
Definition at line 98 of file ROL_AugmentedLagrangianStep.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep().