|
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_TT.hpp>
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) |
Provides the interface for and implements a bundle. The semidefinite quadratic subproblem is solved using TT algorithm by Antonio Frangioni (1996).
Definition at line 43 of file ROL_Bundle_TT.hpp.
|
inline |
Definition at line 96 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::Bundle(), Id_, isInitialized_, maxind_, and maxSize_.
|
inlineprivate |
Definition at line 85 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::subgradient().
Referenced by deleteSubgradFromBase(), and solveDual_TT().
|
inlineprivate |
Definition at line 89 of file ROL_Bundle_TT.hpp.
References zero.
Referenced by deleteSubgradFromBase().
|
inlinevirtual |
Implements ROL::Bundle< Real >.
Definition at line 109 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::size(), solveDual_arbitrary(), ROL::Bundle< Real >::solveDual_dim1(), and ROL::Bundle< Real >::solveDual_dim2().
|
inlineprivate |
Definition at line 127 of file ROL_Bundle_TT.hpp.
References currSize_, Id_, L_, and zero.
Referenced by addSubgradToBase(), and deleteSubgradFromBase().
|
inlineprivate |
Definition at line 151 of file ROL_Bundle_TT.hpp.
References currSize_, dependent_, kappa_, L_, LiMax_, LiMin_, ROL::ROL_INF(), and ROL::ROL_NINF().
Referenced by deleteSubgradFromBase().
|
inlineprivate |
Definition at line 172 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::alpha(), base_, currSize_, dependent_, kappa_, L_, lhz1_, lhz2_, LiMax_, LiMin_, swapRowsL(), z1_, and z2_.
Referenced by deleteSubgradFromBase(), and solveDual_TT().
|
inlineprivate |
Definition at line 205 of file ROL_Bundle_TT.hpp.
References addSubgradToBase(), base_, currSize_, deltaLh_, deltaLj_, dependent_, GiGj(), kappa_, L_, lh_, lhNorm, lhz1_, lhz2_, lj_, ljNorm, sgn(), swapRowsL(), updateK(), z1_, z2_, and zero.
Referenced by solveDual_TT().
|
inlineprivate |
Definition at line 432 of file ROL_Bundle_TT.hpp.
References lapack_, and ROL::Bundle< Real >::size().
Referenced by solveDual_TT().
|
inlineprivate |
Definition at line 447 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
inlineprivate |
Definition at line 457 of file ROL_Bundle_TT.hpp.
References addSubgradToBase(), ROL::Bundle< Real >::alpha(), base_, currSize_, deleteSubgradFromBase(), dependent_, entering_, ROL::Bundle< Real >::getDualVariable(), GiGj(), isFeasible(), kappa_, L_, lh_, lhNorm, lhz1_, lhz2_, LiMax_, LiMin_, lj_, ljNorm, ljz1_, maxind_, minobjval_, objval_, optimal_, QPStatus_, ROL::Bundle< Real >::resetDualVariables(), rho_, ROL::ROL_EPSILON(), ROL::ROL_INF(), ROL::ROL_NINF(), ROL::Bundle< Real >::setDualVariable(), solveSystem(), taboo_, tempv_, tempw1_, tempw2_, z1_, z2_, and zero.
Referenced by solveDual_arbitrary().
|
inlineprivate |
Definition at line 824 of file ROL_Bundle_TT.hpp.
References QPStatus_, and solveDual_TT().
Referenced by solveDual().
|
private |
Definition at line 45 of file ROL_Bundle_TT.hpp.
Referenced by solveSystem().
|
private |
Definition at line 47 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_arbitrary(), and solveDual_TT().
|
private |
Definition at line 48 of file ROL_Bundle_TT.hpp.
Referenced by Bundle_TT(), and solveDual_TT().
|
private |
Definition at line 49 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 50 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), solveDual_TT(), and updateK().
|
private |
Definition at line 51 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), solveDual_TT(), and updateK().
|
private |
Definition at line 53 of file ROL_Bundle_TT.hpp.
Referenced by Bundle_TT().
|
private |
Definition at line 54 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), solveDual_TT(), and updateK().
|
private |
Definition at line 55 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), solveDual_TT(), swapRowsL(), and updateK().
|
private |
Definition at line 57 of file ROL_Bundle_TT.hpp.
Referenced by Bundle_TT().
|
private |
Definition at line 58 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 60 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 61 of file ROL_Bundle_TT.hpp.
Referenced by deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 62 of file ROL_Bundle_TT.hpp.
Referenced by deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 63 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 64 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 65 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 66 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), solveDual_TT(), and updateK().
|
private |
Definition at line 67 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 68 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 69 of file ROL_Bundle_TT.hpp.
Referenced by deleteSubgradFromBase().
|
private |
Definition at line 70 of file ROL_Bundle_TT.hpp.
Referenced by deleteSubgradFromBase().
|
private |
Definition at line 72 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 73 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 75 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), solveDual_TT(), swapRowsL(), and updateK().
|
private |
Definition at line 76 of file ROL_Bundle_TT.hpp.
Referenced by Bundle_TT(), and swapRowsL().
|
private |
Definition at line 77 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 78 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 79 of file ROL_Bundle_TT.hpp.
Referenced by solveDual_TT().
|
private |
Definition at line 80 of file ROL_Bundle_TT.hpp.
Referenced by deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 81 of file ROL_Bundle_TT.hpp.
Referenced by deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 82 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), and solveDual_TT().
|
private |
Definition at line 83 of file ROL_Bundle_TT.hpp.
Referenced by addSubgradToBase(), deleteSubgradFromBase(), and solveDual_TT().