ROL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ROL::AugmentedLagrangianStep< Real > Class Template Reference

Provides the interface to compute augmented Lagrangian steps. More...

#include <ROL_AugmentedLagrangianStep.hpp>

+ Inheritance diagram for ROL::AugmentedLagrangianStep< Real >:

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...
 
- 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 > &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

- Protected Member Functions inherited from ROL::Step< Real >
Teuchos::RCP< StepState< Real > > getState (void)
 

Detailed Description

template<class Real>
class ROL::AugmentedLagrangianStep< Real >

Provides the interface to compute augmented Lagrangian steps.

Definition at line 69 of file ROL_AugmentedLagrangianStep.hpp.

Constructor & Destructor Documentation

◆ ~AugmentedLagrangianStep()

template<class Real >
ROL::AugmentedLagrangianStep< Real >::~AugmentedLagrangianStep ( )
inline

Definition at line 130 of file ROL_AugmentedLagrangianStep.hpp.

◆ AugmentedLagrangianStep()

template<class Real >
ROL::AugmentedLagrangianStep< Real >::AugmentedLagrangianStep ( Teuchos::ParameterList &  parlist)
inline

Member Function Documentation

◆ computeGradient()

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::computeGradient ( Vector< Real > &  g,
const Vector< Real > &  x,
const Real  mu,
Objective< Real > &  obj,
BoundConstraint< Real > &  bnd 
)
inlineprivate

◆ initialize()

template<class Real >
void ROL::AugmentedLagrangianStep< Real >::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 
)
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_.

◆ compute() [1/2]

template<class Real >
void ROL::AugmentedLagrangianStep< Real >::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 
)
inlinevirtual

◆ update() [1/2]

template<class Real >
void ROL::AugmentedLagrangianStep< Real >::update ( Vector< Real > &  x,
Vector< Real > &  l,
const Vector< Real > &  s,
Objective< Real > &  obj,
EqualityConstraint< Real > &  con,
BoundConstraint< Real > &  bnd,
AlgorithmState< Real > &  algo_state 
)
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.

◆ printHeader()

template<class Real >
std::string ROL::AugmentedLagrangianStep< Real >::printHeader ( void  ) const
inlinevirtual

Print iterate header.

Reimplemented from ROL::Step< Real >.

Definition at line 282 of file ROL_AugmentedLagrangianStep.hpp.

Referenced by ROL::AugmentedLagrangianStep< Real >::print().

◆ printName()

template<class Real >
std::string ROL::AugmentedLagrangianStep< Real >::printName ( void  ) const
inlinevirtual

Print step name.

Reimplemented from ROL::Step< Real >.

Definition at line 303 of file ROL_AugmentedLagrangianStep.hpp.

Referenced by ROL::AugmentedLagrangianStep< Real >::print().

◆ print()

template<class Real >
std::string ROL::AugmentedLagrangianStep< Real >::print ( AlgorithmState< Real > &  algo_state,
bool  pHeader = false 
) const
inlinevirtual

◆ compute() [2/2]

template<class Real >
void ROL::AugmentedLagrangianStep< Real >::compute ( Vector< Real > &  s,
const Vector< Real > &  x,
Objective< Real > &  obj,
BoundConstraint< Real > &  con,
AlgorithmState< Real > &  algo_state 
)
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.

◆ update() [2/2]

template<class Real >
void ROL::AugmentedLagrangianStep< Real >::update ( Vector< Real > &  x,
const Vector< Real > &  s,
Objective< Real > &  obj,
BoundConstraint< Real > &  con,
AlgorithmState< Real > &  algo_state 
)
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.

Member Data Documentation

◆ algo_

template<class Real >
Teuchos::RCP<Algorithm<Real> > ROL::AugmentedLagrangianStep< Real >::algo_
private

◆ x_

template<class Real >
Teuchos::RCP<Vector<Real> > ROL::AugmentedLagrangianStep< Real >::x_
private

◆ parlist_

template<class Real >
Teuchos::ParameterList ROL::AugmentedLagrangianStep< Real >::parlist_
private

◆ scaleLagrangian_

template<class Real >
bool ROL::AugmentedLagrangianStep< Real >::scaleLagrangian_
private

◆ minPenaltyReciprocal_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::minPenaltyReciprocal_
private

◆ minPenaltyLowerBound_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::minPenaltyLowerBound_
private

◆ penaltyUpdate_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::penaltyUpdate_
private

◆ maxPenaltyParam_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::maxPenaltyParam_
private

◆ optIncreaseExponent_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::optIncreaseExponent_
private

◆ optDecreaseExponent_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::optDecreaseExponent_
private

◆ optToleranceInitial_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::optToleranceInitial_
private

◆ optTolerance_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::optTolerance_
private

◆ feasIncreaseExponent_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::feasIncreaseExponent_
private

◆ feasDecreaseExponent_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::feasDecreaseExponent_
private

◆ feasToleranceInitial_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::feasToleranceInitial_
private

◆ feasTolerance_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::feasTolerance_
private

◆ print_

template<class Real >
bool ROL::AugmentedLagrangianStep< Real >::print_
private

◆ maxit_

template<class Real >
int ROL::AugmentedLagrangianStep< Real >::maxit_
private

◆ subproblemIter_

template<class Real >
int ROL::AugmentedLagrangianStep< Real >::subproblemIter_
private

◆ subStep_

template<class Real >
std::string ROL::AugmentedLagrangianStep< Real >::subStep_
private

◆ outerOptTolerance_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::outerOptTolerance_
private

◆ outerFeasTolerance_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::outerFeasTolerance_
private

◆ outerStepTolerance_

template<class Real >
Real ROL::AugmentedLagrangianStep< Real >::outerStepTolerance_
private

The documentation for this class was generated from the following file: