ROL
Bundle_U_TT Class 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_U_TT.hpp>

+ Inheritance diagram for Bundle_U_TT:

Public Member Functions

 Bundle_U_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 Bundle_U< Real >
virtual ~Bundle_U (void)
 
 Bundle_U (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 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

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 Bundle_U< 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

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

Constructor & Destructor Documentation

◆ Bundle_U_TT()

Bundle_U_TT::Bundle_U_TT ( const unsigned maxSize = 10,
const Real coeff = 0.0,
const Real omega = 2.0,
const unsigned remSize = 2 )

Member Function Documentation

◆ solveDual()

unsigned Bundle_U_TT::solveDual ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
virtual

Implements Bundle_U< Real >.

◆ sgn()

Real Bundle_U_TT::sgn ( const Real x) const
private

◆ swapRowsL()

void Bundle_U_TT::swapRowsL ( unsigned ind1,
unsigned ind2,
bool trans = false )
private

◆ updateK()

void Bundle_U_TT::updateK ( void )
private

◆ addSubgradToBase()

void Bundle_U_TT::addSubgradToBase ( unsigned ind,
Real delta )
private

◆ deleteSubgradFromBase()

void Bundle_U_TT::deleteSubgradFromBase ( unsigned ind,
Real tol )
private

◆ solveSystem()

void Bundle_U_TT::solveSystem ( int size,
char tran,
LA::Matrix< Real > & L,
LA::Vector< Real > & v )
private

◆ isFeasible()

bool Bundle_U_TT::isFeasible ( LA::Vector< Real > & v,
const Real & tol )
private

◆ solveDual_TT()

unsigned Bundle_U_TT::solveDual_TT ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
private

◆ solveDual_arbitrary()

unsigned Bundle_U_TT::solveDual_arbitrary ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
private

Member Data Documentation

◆ lapack_

LAPACK<int, Real> Bundle_U_TT::lapack_
private

Definition at line 63 of file ROL_Bundle_U_TT.hpp.

◆ QPStatus_

int Bundle_U_TT::QPStatus_
private

Definition at line 65 of file ROL_Bundle_U_TT.hpp.

◆ maxind_

int Bundle_U_TT::maxind_
private

Definition at line 66 of file ROL_Bundle_U_TT.hpp.

◆ entering_

int Bundle_U_TT::entering_
private

Definition at line 67 of file ROL_Bundle_U_TT.hpp.

◆ LiMax_

int Bundle_U_TT::LiMax_
private

Definition at line 68 of file ROL_Bundle_U_TT.hpp.

◆ LiMin_

int Bundle_U_TT::LiMin_
private

Definition at line 69 of file ROL_Bundle_U_TT.hpp.

◆ maxSize_

unsigned Bundle_U_TT::maxSize_
private

Definition at line 71 of file ROL_Bundle_U_TT.hpp.

◆ dependent_

unsigned Bundle_U_TT::dependent_
private

Definition at line 72 of file ROL_Bundle_U_TT.hpp.

◆ currSize_

unsigned Bundle_U_TT::currSize_
private

Definition at line 73 of file ROL_Bundle_U_TT.hpp.

◆ isInitialized_

bool Bundle_U_TT::isInitialized_
private

Definition at line 75 of file ROL_Bundle_U_TT.hpp.

◆ optimal_

bool Bundle_U_TT::optimal_
private

Definition at line 76 of file ROL_Bundle_U_TT.hpp.

◆ rho_

Real Bundle_U_TT::rho_
private

Definition at line 78 of file ROL_Bundle_U_TT.hpp.

◆ lhNorm

Real Bundle_U_TT::lhNorm
private

Definition at line 79 of file ROL_Bundle_U_TT.hpp.

◆ ljNorm

Real Bundle_U_TT::ljNorm
private

Definition at line 80 of file ROL_Bundle_U_TT.hpp.

◆ lhz1_

Real Bundle_U_TT::lhz1_
private

Definition at line 81 of file ROL_Bundle_U_TT.hpp.

◆ lhz2_

Real Bundle_U_TT::lhz2_
private

Definition at line 82 of file ROL_Bundle_U_TT.hpp.

◆ ljz1_

Real Bundle_U_TT::ljz1_
private

Definition at line 83 of file ROL_Bundle_U_TT.hpp.

◆ kappa_

Real Bundle_U_TT::kappa_
private

Definition at line 84 of file ROL_Bundle_U_TT.hpp.

◆ objval_

Real Bundle_U_TT::objval_
private

Definition at line 85 of file ROL_Bundle_U_TT.hpp.

◆ minobjval_

Real Bundle_U_TT::minobjval_
private

Definition at line 86 of file ROL_Bundle_U_TT.hpp.

◆ deltaLh_

Real Bundle_U_TT::deltaLh_
private

Definition at line 87 of file ROL_Bundle_U_TT.hpp.

◆ deltaLj_

Real Bundle_U_TT::deltaLj_
private

Definition at line 88 of file ROL_Bundle_U_TT.hpp.

◆ taboo_

std::vector<int> Bundle_U_TT::taboo_
private

Definition at line 90 of file ROL_Bundle_U_TT.hpp.

◆ base_

std::vector<int> Bundle_U_TT::base_
private

Definition at line 91 of file ROL_Bundle_U_TT.hpp.

◆ L_

LA::Matrix<Real> Bundle_U_TT::L_
private

Definition at line 93 of file ROL_Bundle_U_TT.hpp.

◆ Id_

LA::Matrix<Real> Bundle_U_TT::Id_
private

Definition at line 94 of file ROL_Bundle_U_TT.hpp.

◆ tempv_

LA::Vector<Real> Bundle_U_TT::tempv_
private

Definition at line 95 of file ROL_Bundle_U_TT.hpp.

◆ tempw1_

LA::Vector<Real> Bundle_U_TT::tempw1_
private

Definition at line 96 of file ROL_Bundle_U_TT.hpp.

◆ tempw2_

LA::Vector<Real> Bundle_U_TT::tempw2_
private

Definition at line 97 of file ROL_Bundle_U_TT.hpp.

◆ lh_

LA::Vector<Real> Bundle_U_TT::lh_
private

Definition at line 98 of file ROL_Bundle_U_TT.hpp.

◆ lj_

LA::Vector<Real> Bundle_U_TT::lj_
private

Definition at line 99 of file ROL_Bundle_U_TT.hpp.

◆ z1_

LA::Vector<Real> Bundle_U_TT::z1_
private

Definition at line 100 of file ROL_Bundle_U_TT.hpp.

◆ z2_

LA::Vector<Real> Bundle_U_TT::z2_
private

Definition at line 101 of file ROL_Bundle_U_TT.hpp.


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