ROL
|
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>
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 ROL::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 ROL::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) |
Provides the interface for and implements a bundle. The semidefinite quadratic subproblem is solved using TT algorithm by Antonio Frangioni (1996).
Definition at line 27 of file ROL_Bundle_U_TT.hpp.
ROL::Bundle_U_TT< Real >::Bundle_U_TT | ( | const unsigned | maxSize = 10 , |
const Real | coeff = 0.0 , |
||
const Real | omega = 2.0 , |
||
const unsigned | remSize = 2 |
||
) |
Definition at line 27 of file ROL_Bundle_U_TT_Def.hpp.
References ROL::Bundle_U_TT< Real >::Id_, ROL::Bundle_U_TT< Real >::maxind_, and ROL::Bundle_U_TT< Real >::maxSize_.
|
virtual |
Implements ROL::Bundle_U< Real >.
Definition at line 48 of file ROL_Bundle_U_TT_Def.hpp.
References ROL::Bundle_U< Real >::solveDual_dim1(), and ROL::Bundle_U< Real >::solveDual_dim2().
|
private |
Definition at line 41 of file ROL_Bundle_U_TT_Def.hpp.
References zero.
|
private |
Definition at line 63 of file ROL_Bundle_U_TT_Def.hpp.
References zero.
|
private |
Definition at line 88 of file ROL_Bundle_U_TT_Def.hpp.
|
private |
Definition at line 110 of file ROL_Bundle_U_TT_Def.hpp.
References ROL::Bundle_U< Real >::alpha().
|
private |
Definition at line 144 of file ROL_Bundle_U_TT_Def.hpp.
References zero.
|
private |
Definition at line 371 of file ROL_Bundle_U_TT_Def.hpp.
|
private |
Definition at line 386 of file ROL_Bundle_U_TT_Def.hpp.
|
private |
Definition at line 397 of file ROL_Bundle_U_TT_Def.hpp.
References ROL::Bundle_U< Real >::alpha(), ROL::Bundle_U< Real >::getDualVariable(), ROL::Bundle_U< Real >::resetDualVariables(), ROL::Bundle_U< Real >::setDualVariable(), and zero.
|
private |
Definition at line 765 of file ROL_Bundle_U_TT_Def.hpp.
|
private |
Definition at line 29 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 31 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 32 of file ROL_Bundle_U_TT.hpp.
Referenced by ROL::Bundle_U_TT< Real >::Bundle_U_TT().
|
private |
Definition at line 33 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 34 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 35 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 37 of file ROL_Bundle_U_TT.hpp.
Referenced by ROL::Bundle_U_TT< Real >::Bundle_U_TT().
|
private |
Definition at line 38 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 39 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 41 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 42 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 44 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 45 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 46 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 47 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 48 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 49 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 50 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 51 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 52 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 53 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 54 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 56 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 57 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 59 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 60 of file ROL_Bundle_U_TT.hpp.
Referenced by ROL::Bundle_U_TT< Real >::Bundle_U_TT().
|
private |
Definition at line 61 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 62 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 63 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 64 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 65 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 66 of file ROL_Bundle_U_TT.hpp.
|
private |
Definition at line 67 of file ROL_Bundle_U_TT.hpp.