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

Provides the interface for and implements an active set bundle. More...

#include <ROL_Bundle_AS.hpp>

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

Public Member Functions

 Bundle_AS (const unsigned maxSize=10, const Real coeff=0.0, const Real omega=2.0, const unsigned remSize=2)
 
void initialize (const Vector< Real > &g)
 
unsigned solveDual (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
- Public Member Functions inherited from ROL::Bundle< Real >
virtual ~Bundle (void)
 
 Bundle (const unsigned maxSize=10, const Real coeff=0.0, const Real omega=2.0, const unsigned remSize=2)
 
const Real linearizationError (const unsigned i) const
 
const Real distanceMeasure (const unsigned i) const
 
const Vector< Real > & subgradient (const unsigned i) const
 
const Real getDualVariable (const unsigned i) const
 
void setDualVariable (const unsigned i, const Real val)
 
void resetDualVariables (void)
 
const Real computeAlpha (const Real dm, const Real le) const
 
const Real alpha (const unsigned i) const
 
unsigned size (void) const
 
void aggregate (Vector< Real > &aggSubGrad, Real &aggLinErr, Real &aggDistMeas) const
 
void reset (const Vector< Real > &g, const Real le, const Real dm)
 
void update (const bool flag, const Real linErr, const Real distMeas, const Vector< Real > &g, const Vector< Real > &s)
 

Private Member Functions

void initializeDualSolver (void)
 
void computeLagMult (std::vector< Real > &lam, const Real mu, const std::vector< Real > &g) const
 
bool isNonnegative (unsigned &ind, const std::vector< Real > &x) const
 
Real computeStepSize (unsigned &ind, const std::vector< Real > &x, const std::vector< Real > &p) const
 
unsigned solveEQPsubproblem (std::vector< Real > &s, Real &mu, const std::vector< Real > &g, const Real tol) const
 
void applyPreconditioner (std::vector< Real > &Px, const std::vector< Real > &x) const
 
void applyG (std::vector< Real > &Gx, const std::vector< Real > &x) const
 
void applyPreconditioner_Identity (std::vector< Real > &Px, const std::vector< Real > &x) const
 
void applyG_Identity (std::vector< Real > &Gx, const std::vector< Real > &x) const
 
void applyPreconditioner_Jacobi (std::vector< Real > &Px, const std::vector< Real > &x) const
 
void applyG_Jacobi (std::vector< Real > &Gx, const std::vector< Real > &x) const
 
void applyPreconditioner_SymGS (std::vector< Real > &Px, const std::vector< Real > &x) const
 
void applyG_SymGS (std::vector< Real > &Gx, const std::vector< Real > &x) const
 
void computeResidualUpdate (std::vector< Real > &r, std::vector< Real > &g) const
 
void applyFullMatrix (std::vector< Real > &Hx, const std::vector< Real > &x) const
 
void applyMatrix (std::vector< Real > &Hx, const std::vector< Real > &x) const
 
unsigned projectedCG (std::vector< Real > &x, Real &mu, const std::vector< Real > &b, const Real tol) const
 
Real dot (const std::vector< Real > &x, const std::vector< Real > &y) const
 
Real norm (const std::vector< Real > &x) const
 
void axpy (const Real a, const std::vector< Real > &x, std::vector< Real > &y) const
 
void scale (std::vector< Real > &x, const Real a) const
 
void scale (std::vector< Real > &x, const Real a, const std::vector< Real > &y) const
 
unsigned solveDual_arbitrary (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
void project (std::vector< Real > &x, const std::vector< Real > &v) const
 
Real computeCriticality (const std::vector< Real > &g, const std::vector< Real > &sol)
 

Private Attributes

ROL::Ptr< Vector< Real > > tG_
 
ROL::Ptr< Vector< Real > > eG_
 
ROL::Ptr< Vector< Real > > yG_
 
ROL::Ptr< Vector< Real > > gx_
 
ROL::Ptr< Vector< Real > > ge_
 
std::set< unsigned > workingSet_
 
std::set< unsigned > nworkingSet_
 
bool isInitialized_
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::Bundle< Real >
const Real GiGj (const unsigned i, const unsigned j) const
 
const Real dotGi (const unsigned i, const Vector< Real > &x) const
 
void addGi (const unsigned i, const Real a, Vector< Real > &x) const
 
Real evaluateObjective (std::vector< Real > &g, const std::vector< Real > &x, const Real t) const
 
unsigned solveDual_dim1 (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
unsigned solveDual_dim2 (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 

Detailed Description

template<class Real>
class ROL::Bundle_AS< Real >

Provides the interface for and implements an active set bundle.

Definition at line 56 of file ROL_Bundle_AS.hpp.

Constructor & Destructor Documentation

template<class Real >
ROL::Bundle_AS< Real >::Bundle_AS ( const unsigned  maxSize = 10,
const Real  coeff = 0.0,
const Real  omega = 2.0,
const unsigned  remSize = 2 
)
inline

Definition at line 77 of file ROL_Bundle_AS.hpp.

Member Function Documentation

template<class Real >
void ROL::Bundle_AS< Real >::initialize ( const Vector< Real > &  g)
inlinevirtual
template<class Real >
unsigned ROL::Bundle_AS< Real >::solveDual ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlinevirtual
template<class Real >
void ROL::Bundle_AS< Real >::initializeDualSolver ( void  )
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::computeLagMult ( std::vector< Real > &  lam,
const Real  mu,
const std::vector< Real > &  g 
) const
inlineprivate
template<class Real >
bool ROL::Bundle_AS< Real >::isNonnegative ( unsigned &  ind,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
Real ROL::Bundle_AS< Real >::computeStepSize ( unsigned &  ind,
const std::vector< Real > &  x,
const std::vector< Real > &  p 
) const
inlineprivate
template<class Real >
unsigned ROL::Bundle_AS< Real >::solveEQPsubproblem ( std::vector< Real > &  s,
Real &  mu,
const std::vector< Real > &  g,
const Real  tol 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyPreconditioner ( std::vector< Real > &  Px,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyG ( std::vector< Real > &  Gx,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyPreconditioner_Identity ( std::vector< Real > &  Px,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyG_Identity ( std::vector< Real > &  Gx,
const std::vector< Real > &  x 
) const
inlineprivate

Definition at line 248 of file ROL_Bundle_AS.hpp.

Referenced by ROL::Bundle_AS< Real >::applyG().

template<class Real >
void ROL::Bundle_AS< Real >::applyPreconditioner_Jacobi ( std::vector< Real > &  Px,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyG_Jacobi ( std::vector< Real > &  Gx,
const std::vector< Real > &  x 
) const
inlineprivate

Definition at line 279 of file ROL_Bundle_AS.hpp.

References ROL::Bundle_AS< Real >::nworkingSet_.

Referenced by ROL::Bundle_AS< Real >::applyG().

template<class Real >
void ROL::Bundle_AS< Real >::applyPreconditioner_SymGS ( std::vector< Real > &  Px,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyG_SymGS ( std::vector< Real > &  Gx,
const std::vector< Real > &  x 
) const
inlineprivate

Definition at line 335 of file ROL_Bundle_AS.hpp.

References ROL::Bundle_AS< Real >::nworkingSet_.

Referenced by ROL::Bundle_AS< Real >::applyG().

template<class Real >
void ROL::Bundle_AS< Real >::computeResidualUpdate ( std::vector< Real > &  r,
std::vector< Real > &  g 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyFullMatrix ( std::vector< Real > &  Hx,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::applyMatrix ( std::vector< Real > &  Hx,
const std::vector< Real > &  x 
) const
inlineprivate
template<class Real >
unsigned ROL::Bundle_AS< Real >::projectedCG ( std::vector< Real > &  x,
Real &  mu,
const std::vector< Real > &  b,
const Real  tol 
) const
inlineprivate
template<class Real >
Real ROL::Bundle_AS< Real >::dot ( const std::vector< Real > &  x,
const std::vector< Real > &  y 
) const
inlineprivate
template<class Real >
Real ROL::Bundle_AS< Real >::norm ( const std::vector< Real > &  x) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::axpy ( const Real  a,
const std::vector< Real > &  x,
std::vector< Real > &  y 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::scale ( std::vector< Real > &  x,
const Real  a 
) const
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::scale ( std::vector< Real > &  x,
const Real  a,
const std::vector< Real > &  y 
) const
inlineprivate

Definition at line 479 of file ROL_Bundle_AS.hpp.

template<class Real >
unsigned ROL::Bundle_AS< Real >::solveDual_arbitrary ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate
template<class Real >
void ROL::Bundle_AS< Real >::project ( std::vector< Real > &  x,
const std::vector< Real > &  v 
) const
inlineprivate

Definition at line 542 of file ROL_Bundle_AS.hpp.

References ROL::Bundle< Real >::size(), and zero.

Referenced by ROL::Bundle_AS< Real >::computeCriticality().

template<class Real >
Real ROL::Bundle_AS< Real >::computeCriticality ( const std::vector< Real > &  g,
const std::vector< Real > &  sol 
)
inlineprivate

Member Data Documentation

template<class Real >
ROL::Ptr<Vector<Real> > ROL::Bundle_AS< Real >::tG_
private
template<class Real >
ROL::Ptr<Vector<Real> > ROL::Bundle_AS< Real >::eG_
private
template<class Real >
ROL::Ptr<Vector<Real> > ROL::Bundle_AS< Real >::yG_
private
template<class Real >
ROL::Ptr<Vector<Real> > ROL::Bundle_AS< Real >::gx_
private
template<class Real >
ROL::Ptr<Vector<Real> > ROL::Bundle_AS< Real >::ge_
private
template<class Real >
std::set<unsigned> ROL::Bundle_AS< Real >::workingSet_
private
template<class Real >
std::set<unsigned> ROL::Bundle_AS< Real >::nworkingSet_
private
template<class Real >
bool ROL::Bundle_AS< Real >::isInitialized_
private

Definition at line 71 of file ROL_Bundle_AS.hpp.

Referenced by ROL::Bundle_AS< Real >::initialize().


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