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

Provides the interface for and implements a bundle. The semidefinite quadratic subproblem is solved using TT algorithm by Antonio Frangioni (1996). More...

#include <ROL_Bundle_TT.hpp>

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

Public Member Functions

 Bundle_TT (const unsigned maxSize=10, const Real coeff=0.0, const Real omega=2.0, const unsigned remSize=2)
 
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)
 
virtual void initialize (const Vector< Real > &g)
 
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

Real GiGj (const int i, const int j) const
 
Real sgn (const Real x) const
 
void swapRowsL (unsigned ind1, unsigned ind2, bool trans=false)
 
void updateK (void)
 
void addSubgradToBase (unsigned ind, Real delta)
 
void deleteSubgradFromBase (unsigned ind, Real tol)
 
void solveSystem (int size, char tran, LA::Matrix< Real > &L, LA::Vector< Real > &v)
 
bool isFeasible (LA::Vector< Real > &v, const Real &tol)
 
unsigned solveDual_TT (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 
unsigned solveDual_arbitrary (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
 

Private Attributes

ROL::LAPACK< int, Real > lapack_
 
int QPStatus_
 
int maxind_
 
int entering_
 
int LiMax_
 
int LiMin_
 
unsigned maxSize_
 
unsigned dependent_
 
unsigned currSize_
 
bool isInitialized_
 
bool optimal_
 
Real rho_
 
Real lhNorm
 
Real ljNorm
 
Real lhz1_
 
Real lhz2_
 
Real ljz1_
 
Real kappa_
 
Real objval_
 
Real minobjval_
 
Real deltaLh_
 
Real deltaLj_
 
std::vector< int > taboo_
 
std::vector< int > base_
 
LA::Matrix< Real > L_
 
LA::Matrix< Real > Id_
 
LA::Vector< Real > tempv_
 
LA::Vector< Real > tempw1_
 
LA::Vector< Real > tempw2_
 
LA::Vector< Real > lh_
 
LA::Vector< Real > lj_
 
LA::Vector< Real > z1_
 
LA::Vector< Real > z2_
 

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_TT< Real >

Provides the interface for and implements a bundle. The semidefinite quadratic subproblem is solved using TT algorithm by Antonio Frangioni (1996).

Definition at line 77 of file ROL_Bundle_TT.hpp.

Constructor & Destructor Documentation

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

Member Function Documentation

template<class Real >
Real ROL::Bundle_TT< Real >::GiGj ( const int  i,
const int  j 
) const
inlineprivate
template<class Real >
Real ROL::Bundle_TT< Real >::sgn ( const Real  x) const
inlineprivate

Definition at line 123 of file ROL_Bundle_TT.hpp.

References zero.

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

template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlinevirtual
template<class Real >
void ROL::Bundle_TT< Real >::swapRowsL ( unsigned  ind1,
unsigned  ind2,
bool  trans = false 
)
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::updateK ( void  )
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::addSubgradToBase ( unsigned  ind,
Real  delta 
)
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::deleteSubgradFromBase ( unsigned  ind,
Real  tol 
)
inlineprivate
template<class Real >
void ROL::Bundle_TT< Real >::solveSystem ( int  size,
char  tran,
LA::Matrix< Real > &  L,
LA::Vector< Real > &  v 
)
inlineprivate
template<class Real >
bool ROL::Bundle_TT< Real >::isFeasible ( LA::Vector< Real > &  v,
const Real &  tol 
)
inlineprivate

Definition at line 481 of file ROL_Bundle_TT.hpp.

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

template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual_TT ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate
template<class Real >
unsigned ROL::Bundle_TT< Real >::solveDual_arbitrary ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprivate

Member Data Documentation

template<class Real >
ROL::LAPACK<int, Real> ROL::Bundle_TT< Real >::lapack_
private

Definition at line 79 of file ROL_Bundle_TT.hpp.

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

template<class Real >
int ROL::Bundle_TT< Real >::QPStatus_
private
template<class Real >
int ROL::Bundle_TT< Real >::maxind_
private
template<class Real >
int ROL::Bundle_TT< Real >::entering_
private

Definition at line 83 of file ROL_Bundle_TT.hpp.

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

template<class Real >
int ROL::Bundle_TT< Real >::LiMax_
private
template<class Real >
int ROL::Bundle_TT< Real >::LiMin_
private
template<class Real >
unsigned ROL::Bundle_TT< Real >::maxSize_
private

Definition at line 87 of file ROL_Bundle_TT.hpp.

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

template<class Real >
unsigned ROL::Bundle_TT< Real >::dependent_
private
template<class Real >
unsigned ROL::Bundle_TT< Real >::currSize_
private
template<class Real >
bool ROL::Bundle_TT< Real >::isInitialized_
private

Definition at line 91 of file ROL_Bundle_TT.hpp.

template<class Real >
bool ROL::Bundle_TT< Real >::optimal_
private

Definition at line 92 of file ROL_Bundle_TT.hpp.

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

template<class Real >
Real ROL::Bundle_TT< Real >::rho_
private

Definition at line 94 of file ROL_Bundle_TT.hpp.

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

template<class Real >
Real ROL::Bundle_TT< Real >::lhNorm
private
template<class Real >
Real ROL::Bundle_TT< Real >::ljNorm
private
template<class Real >
Real ROL::Bundle_TT< Real >::lhz1_
private
template<class Real >
Real ROL::Bundle_TT< Real >::lhz2_
private
template<class Real >
Real ROL::Bundle_TT< Real >::ljz1_
private
template<class Real >
Real ROL::Bundle_TT< Real >::kappa_
private
template<class Real >
Real ROL::Bundle_TT< Real >::objval_
private

Definition at line 101 of file ROL_Bundle_TT.hpp.

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

template<class Real >
Real ROL::Bundle_TT< Real >::minobjval_
private

Definition at line 102 of file ROL_Bundle_TT.hpp.

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

template<class Real >
Real ROL::Bundle_TT< Real >::deltaLh_
private

Definition at line 103 of file ROL_Bundle_TT.hpp.

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

template<class Real >
Real ROL::Bundle_TT< Real >::deltaLj_
private

Definition at line 104 of file ROL_Bundle_TT.hpp.

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

template<class Real >
std::vector<int> ROL::Bundle_TT< Real >::taboo_
private

Definition at line 106 of file ROL_Bundle_TT.hpp.

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

template<class Real >
std::vector<int> ROL::Bundle_TT< Real >::base_
private
template<class Real >
LA::Matrix<Real> ROL::Bundle_TT< Real >::L_
private
template<class Real >
LA::Matrix<Real> ROL::Bundle_TT< Real >::Id_
private
template<class Real >
LA::Vector<Real> ROL::Bundle_TT< Real >::tempv_
private

Definition at line 111 of file ROL_Bundle_TT.hpp.

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

template<class Real >
LA::Vector<Real> ROL::Bundle_TT< Real >::tempw1_
private

Definition at line 112 of file ROL_Bundle_TT.hpp.

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

template<class Real >
LA::Vector<Real> ROL::Bundle_TT< Real >::tempw2_
private

Definition at line 113 of file ROL_Bundle_TT.hpp.

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

template<class Real >
LA::Vector<Real> ROL::Bundle_TT< Real >::lh_
private
template<class Real >
LA::Vector<Real> ROL::Bundle_TT< Real >::lj_
private
template<class Real >
LA::Vector<Real> ROL::Bundle_TT< Real >::z1_
private
template<class Real >
LA::Vector<Real> ROL::Bundle_TT< Real >::z2_
private

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