ROL
|
Provides the interface for and implements a bundle. More...
#include <ROL_Bundle_U.hpp>
Public Member Functions | |
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) |
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< Ptr< Vector< Real > > > | subgradients_ |
std::vector< Real > | linearizationErrors_ |
std::vector< Real > | distanceMeasures_ |
std::vector< Real > | dualVariables_ |
Ptr< Vector< Real > > | tG_ |
Ptr< Vector< Real > > | eG_ |
Ptr< Vector< Real > > | yG_ |
Ptr< Vector< Real > > | gx_ |
Ptr< Vector< Real > > | ge_ |
unsigned | size_ |
unsigned | maxSize_ |
unsigned | remSize_ |
Real | coeff_ |
Real | omega_ |
bool | isInitialized_ |
Provides the interface for and implements a bundle.
Definition at line 25 of file ROL_Bundle_U.hpp.
|
inlinevirtual |
Definition at line 59 of file ROL_Bundle_U.hpp.
ROL::Bundle_U< Real >::Bundle_U | ( | const unsigned | maxSize = 10 , |
const Real | coeff = 0.0 , |
||
const Real | omega = 2.0 , |
||
const unsigned | remSize = 2 |
||
) |
Definition at line 52 of file ROL_Bundle_U_Def.hpp.
References ROL::Bundle_U< Real >::coeff_, ROL::Bundle_U< Real >::distanceMeasures_, ROL::Bundle_U< Real >::dualVariables_, ROL::Bundle_U< Real >::linearizationErrors_, ROL::Bundle_U< Real >::maxSize_, ROL::Bundle_U< Real >::omega_, ROL::Bundle_U< Real >::remSize_, ROL::Bundle_U< Real >::subgradients_, and zero.
|
private |
Definition at line 18 of file ROL_Bundle_U_Def.hpp.
References zero.
|
private |
Definition at line 42 of file ROL_Bundle_U_Def.hpp.
References zero.
|
virtual |
Reimplemented in ROL::Bundle_U_AS< Real >.
Definition at line 73 of file ROL_Bundle_U_Def.hpp.
References ROL::Vector< Real >::clone(), and zero.
Referenced by ROL::Bundle_U_AS< Real >::initialize().
|
pure virtual |
Implemented in ROL::Bundle_U_TT< Real >, and ROL::Bundle_U_AS< Real >.
const Real ROL::Bundle_U< Real >::linearizationError | ( | const unsigned | i | ) | const |
Definition at line 94 of file ROL_Bundle_U_Def.hpp.
const Real ROL::Bundle_U< Real >::distanceMeasure | ( | const unsigned | i | ) | const |
Definition at line 99 of file ROL_Bundle_U_Def.hpp.
const Vector< Real > & ROL::Bundle_U< Real >::subgradient | ( | const unsigned | i | ) | const |
Definition at line 104 of file ROL_Bundle_U_Def.hpp.
const Real ROL::Bundle_U< Real >::getDualVariable | ( | const unsigned | i | ) | const |
Definition at line 109 of file ROL_Bundle_U_Def.hpp.
Referenced by ROL::Bundle_U_AS< Real >::initializeDualSolver(), ROL::Bundle_U_AS< Real >::solveDual_arbitrary(), and ROL::Bundle_U_TT< Real >::solveDual_TT().
void ROL::Bundle_U< Real >::setDualVariable | ( | const unsigned | i, |
const Real | val | ||
) |
Definition at line 114 of file ROL_Bundle_U_Def.hpp.
Referenced by ROL::Bundle_U_AS< Real >::initializeDualSolver(), ROL::Bundle_U_AS< Real >::solveDual_arbitrary(), and ROL::Bundle_U_TT< Real >::solveDual_TT().
void ROL::Bundle_U< Real >::resetDualVariables | ( | void | ) |
Definition at line 119 of file ROL_Bundle_U_Def.hpp.
References zero.
Referenced by ROL::Bundle_U_TT< Real >::solveDual_TT().
const Real ROL::Bundle_U< Real >::computeAlpha | ( | const Real | dm, |
const Real | le | ||
) | const |
Definition at line 125 of file ROL_Bundle_U_Def.hpp.
const Real ROL::Bundle_U< Real >::alpha | ( | const unsigned | i | ) | const |
Definition at line 134 of file ROL_Bundle_U_Def.hpp.
Referenced by ROL::Bundle_U_TT< Real >::addSubgradToBase(), and ROL::Bundle_U_TT< Real >::solveDual_TT().
unsigned ROL::Bundle_U< Real >::size | ( | void | ) | const |
Definition at line 139 of file ROL_Bundle_U_Def.hpp.
Referenced by ROL::Bundle_U_AS< Real >::computeStepSize(), ROL::Bundle_U_AS< Real >::isNonnegative(), and ROL::Bundle_U_AS< Real >::project().
void ROL::Bundle_U< Real >::aggregate | ( | Vector< Real > & | aggSubGrad, |
Real & | aggLinErr, | ||
Real & | aggDistMeas | ||
) | const |
Definition at line 144 of file ROL_Bundle_U_Def.hpp.
References ROL::Vector< Real >::set(), ROL::Objective_SerialSimOpt< Real >::zero, zero, and ROL::Vector< Real >::zero().
void ROL::Bundle_U< Real >::reset | ( | const Vector< Real > & | g, |
const Real | le, | ||
const Real | dm | ||
) |
Definition at line 171 of file ROL_Bundle_U_Def.hpp.
void ROL::Bundle_U< Real >::update | ( | const bool | flag, |
const Real | linErr, | ||
const Real | distMeas, | ||
const Vector< Real > & | g, | ||
const Vector< Real > & | s | ||
) |
Definition at line 199 of file ROL_Bundle_U_Def.hpp.
References zero.
|
protected |
Definition at line 226 of file ROL_Bundle_U_Def.hpp.
Referenced by ROL::Bundle_U_AS< Real >::applyPreconditioner_SymGS().
|
protected |
Definition at line 231 of file ROL_Bundle_U_Def.hpp.
References ROL::Vector< Real >::dot().
Referenced by ROL::Bundle_U_AS< Real >::applyFullMatrix(), ROL::Bundle_U_AS< Real >::applyMatrix(), and ROL::Bundle_U_AS< Real >::applyPreconditioner_SymGS().
|
protected |
Definition at line 236 of file ROL_Bundle_U_Def.hpp.
References ROL::Vector< Real >::axpy().
Referenced by ROL::Bundle_U_AS< Real >::applyPreconditioner_SymGS().
|
protected |
Definition at line 241 of file ROL_Bundle_U_Def.hpp.
Referenced by ROL::Bundle_U_AS< Real >::solveDual_arbitrary().
|
protected |
Definition at line 269 of file ROL_Bundle_U_Def.hpp.
Referenced by ROL::Bundle_U_AS< Real >::solveDual(), and ROL::Bundle_U_TT< Real >::solveDual().
|
protected |
Definition at line 276 of file ROL_Bundle_U_Def.hpp.
References zero.
Referenced by ROL::Bundle_U_AS< Real >::solveDual(), and ROL::Bundle_U_TT< Real >::solveDual().
|
private |
Definition at line 30 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 31 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 32 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 34 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 36 of file ROL_Bundle_U.hpp.
|
private |
Definition at line 37 of file ROL_Bundle_U.hpp.
|
private |
Definition at line 38 of file ROL_Bundle_U.hpp.
|
private |
Definition at line 39 of file ROL_Bundle_U.hpp.
|
private |
Definition at line 40 of file ROL_Bundle_U.hpp.
|
private |
Definition at line 42 of file ROL_Bundle_U.hpp.
|
private |
Definition at line 44 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 45 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 46 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 47 of file ROL_Bundle_U.hpp.
Referenced by ROL::Bundle_U< Real >::Bundle_U().
|
private |
Definition at line 49 of file ROL_Bundle_U.hpp.