ROL
ROL::Bundle< Real > Class Template Referenceabstract

Provides the interface for and implements a bundle. More...

#include <ROL_Bundle.hpp>

Inheritance diagram for ROL::Bundle< Real >:

Public Member Functions

virtual ~Bundle (void)
 Bundle (const unsigned maxSize=10, const Real coeff=0.0, const Real omega=2.0, const unsigned remSize=2)
virtual void initialize (const Vector< Real > &g)
virtual unsigned solveDual (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)=0
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)

Protected Member Functions

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)

Private Member Functions

void remove (const std::vector< unsigned > &ind)
void add (const Vector< Real > &g, const Real le, const Real dm)

Private Attributes

std::vector< ROL::Ptr< Vector< Real > > > subgradients_
std::vector< Real > linearizationErrors_
std::vector< Real > distanceMeasures_
std::vector< Real > dualVariables_
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_
unsigned size_
unsigned maxSize_
unsigned remSize_
Real coeff_
Real omega_
bool isInitialized_

Detailed Description

template<class Real>
class ROL::Bundle< Real >

Provides the interface for and implements a bundle.

Definition at line 28 of file ROL_Bundle.hpp.

Constructor & Destructor Documentation

◆ ~Bundle()

template<class Real>
virtual ROL::Bundle< Real >::~Bundle ( void )
inlinevirtual

Definition at line 90 of file ROL_Bundle.hpp.

◆ Bundle()

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

Member Function Documentation

◆ remove()

template<class Real>
void ROL::Bundle< Real >::remove ( const std::vector< unsigned > & ind)
inlineprivate

◆ add()

template<class Real>
void ROL::Bundle< Real >::add ( const Vector< Real > & g,
const Real le,
const Real dm )
inlineprivate

Definition at line 77 of file ROL_Bundle.hpp.

References distanceMeasures_, dualVariables_, linearizationErrors_, size_, subgradients_, and zero.

Referenced by reset().

◆ initialize()

template<class Real>
virtual void ROL::Bundle< Real >::initialize ( const Vector< Real > & g)
inlinevirtual

◆ solveDual()

template<class Real>
virtual unsigned ROL::Bundle< Real >::solveDual ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
pure virtual

◆ linearizationError()

template<class Real>
const Real ROL::Bundle< Real >::linearizationError ( const unsigned i) const
inline

Definition at line 134 of file ROL_Bundle.hpp.

References linearizationErrors_.

◆ distanceMeasure()

template<class Real>
const Real ROL::Bundle< Real >::distanceMeasure ( const unsigned i) const
inline

Definition at line 138 of file ROL_Bundle.hpp.

References distanceMeasures_.

◆ subgradient()

template<class Real>
const Vector< Real > & ROL::Bundle< Real >::subgradient ( const unsigned i) const
inline

◆ getDualVariable()

template<class Real>
const Real ROL::Bundle< Real >::getDualVariable ( const unsigned i) const
inline

◆ setDualVariable()

template<class Real>
void ROL::Bundle< Real >::setDualVariable ( const unsigned i,
const Real val )
inline

◆ resetDualVariables()

template<class Real>
void ROL::Bundle< Real >::resetDualVariables ( void )
inline

Definition at line 154 of file ROL_Bundle.hpp.

References dualVariables_, size_, and zero.

Referenced by ROL::Bundle_TT< Real >::solveDual_TT().

◆ computeAlpha()

template<class Real>
const Real ROL::Bundle< Real >::computeAlpha ( const Real dm,
const Real le ) const
inline

Definition at line 159 of file ROL_Bundle.hpp.

References alpha(), coeff_, omega_, and ROL::ROL_EPSILON().

Referenced by alpha().

◆ alpha()

◆ size()

◆ aggregate()

template<class Real>
void ROL::Bundle< Real >::aggregate ( Vector< Real > & aggSubGrad,
Real & aggLinErr,
Real & aggDistMeas ) const
inline

◆ reset()

template<class Real>
void ROL::Bundle< Real >::reset ( const Vector< Real > & g,
const Real le,
const Real dm )
inline

Definition at line 201 of file ROL_Bundle.hpp.

References add(), linearizationErrors_, maxSize_, remove(), remSize_, ROL::ROL_EPSILON(), and size_.

◆ update()

template<class Real>
void ROL::Bundle< Real >::update ( const bool flag,
const Real linErr,
const Real distMeas,
const Vector< Real > & g,
const Vector< Real > & s )
inline

◆ GiGj()

template<class Real>
const Real ROL::Bundle< Real >::GiGj ( const unsigned i,
const unsigned j ) const
inlineprotected

◆ dotGi()

template<class Real>
const Real ROL::Bundle< Real >::dotGi ( const unsigned i,
const Vector< Real > & x ) const
inlineprotected

◆ addGi()

template<class Real>
void ROL::Bundle< Real >::addGi ( const unsigned i,
const Real a,
Vector< Real > & x ) const
inlineprotected

◆ evaluateObjective()

template<class Real>
Real ROL::Bundle< Real >::evaluateObjective ( std::vector< Real > & g,
const std::vector< Real > & x,
const Real t ) const
inlineprotected

Definition at line 266 of file ROL_Bundle.hpp.

References alpha(), dotGi(), eG_, gx_, size(), subgradient(), tG_, and yG_.

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

◆ solveDual_dim1()

template<class Real>
unsigned ROL::Bundle< Real >::solveDual_dim1 ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
inlineprotected

◆ solveDual_dim2()

template<class Real>
unsigned ROL::Bundle< Real >::solveDual_dim2 ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
inlineprotected

Member Data Documentation

◆ subgradients_

template<class Real>
std::vector<ROL::Ptr<Vector<Real> > > ROL::Bundle< Real >::subgradients_
private

Definition at line 33 of file ROL_Bundle.hpp.

Referenced by add(), aggregate(), Bundle(), initialize(), remove(), subgradient(), and update().

◆ linearizationErrors_

template<class Real>
std::vector<Real> ROL::Bundle< Real >::linearizationErrors_
private

◆ distanceMeasures_

template<class Real>
std::vector<Real> ROL::Bundle< Real >::distanceMeasures_
private

Definition at line 35 of file ROL_Bundle.hpp.

Referenced by add(), aggregate(), alpha(), Bundle(), distanceMeasure(), initialize(), remove(), and update().

◆ dualVariables_

template<class Real>
std::vector<Real> ROL::Bundle< Real >::dualVariables_
private

◆ tG_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::Bundle< Real >::tG_
private

Definition at line 39 of file ROL_Bundle.hpp.

Referenced by aggregate(), evaluateObjective(), and initialize().

◆ eG_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::Bundle< Real >::eG_
private

Definition at line 40 of file ROL_Bundle.hpp.

Referenced by aggregate(), evaluateObjective(), and initialize().

◆ yG_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::Bundle< Real >::yG_
private

Definition at line 41 of file ROL_Bundle.hpp.

Referenced by aggregate(), evaluateObjective(), and initialize().

◆ gx_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::Bundle< Real >::gx_
private

Definition at line 42 of file ROL_Bundle.hpp.

Referenced by evaluateObjective(), initialize(), and solveDual_dim2().

◆ ge_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::Bundle< Real >::ge_
private

Definition at line 43 of file ROL_Bundle.hpp.

Referenced by initialize().

◆ size_

template<class Real>
unsigned ROL::Bundle< Real >::size_
private

◆ maxSize_

template<class Real>
unsigned ROL::Bundle< Real >::maxSize_
private

Definition at line 47 of file ROL_Bundle.hpp.

Referenced by Bundle(), initialize(), and reset().

◆ remSize_

template<class Real>
unsigned ROL::Bundle< Real >::remSize_
private

Definition at line 48 of file ROL_Bundle.hpp.

Referenced by Bundle(), and reset().

◆ coeff_

template<class Real>
Real ROL::Bundle< Real >::coeff_
private

Definition at line 49 of file ROL_Bundle.hpp.

Referenced by Bundle(), and computeAlpha().

◆ omega_

template<class Real>
Real ROL::Bundle< Real >::omega_
private

Definition at line 50 of file ROL_Bundle.hpp.

Referenced by Bundle(), and computeAlpha().

◆ isInitialized_

template<class Real>
bool ROL::Bundle< Real >::isInitialized_
private

Definition at line 52 of file ROL_Bundle.hpp.

Referenced by Bundle(), and initialize().


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