|
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>
Inheritance diagram for ROL::Bundle_TT< Real >:Public Member Functions | |
| Bundle_TT (const unsigned maxSize=10, const Real coeff=0.0, const unsigned remSize=2) | |
| Real | GiTGj (const int i, const int j) |
| unsigned | solveDual (const Real t, const unsigned maxit=1000, const Real tol=1.e-8) |
| bool | checkPrimary (std::vector< Real > &g, const std::vector< Real > &x, const Real t) const |
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 | |
| void | swapRowsL (unsigned ind1, unsigned ind2, bool trans=false) |
| void | updateK () |
| void | addSubgradToBase (unsigned ind, Real delta) |
| void | deleteSubgradFromBase (unsigned ind, Real tol) |
| 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) |
| void | solveSystem (int size, char tran, Teuchos::SerialDenseMatrix< int, Real > &L, Teuchos::SerialDenseVector< int, Real > &v) |
| bool | isFeasible (Teuchos::SerialDenseVector< int, Real > &v, const Real &tol) |
| unsigned | solveDual_TT (const Real t, const unsigned maxit=1000, const Real tol=1.e-8) |
Private Attributes | |
| unsigned | maxSize_ |
| Teuchos::LAPACK< int, Real > | lapack_ |
| int | QPStatus_ |
| Real | INF |
| int | maxind |
| int | entering_ |
| std::vector< int > | taboo_ |
| bool | optimal_ |
| unsigned | dependent_ |
| Real | rho_ |
| unsigned | currSize_ |
| std::vector< int > | base |
| Teuchos::SerialDenseMatrix< int, Real > | L |
| Teuchos::SerialDenseMatrix< int, Real > | Id |
| Teuchos::SerialDenseVector< int, Real > | tempv |
| Teuchos::SerialDenseVector< int, Real > | tempw1 |
| Teuchos::SerialDenseVector< int, Real > | tempw2 |
| Teuchos::SerialDenseVector< int, Real > | lh |
| Teuchos::SerialDenseVector< int, Real > | lj |
| Teuchos::SerialDenseVector< int, Real > | z1 |
| Teuchos::SerialDenseVector< int, Real > | z2 |
| Real | lhNorm |
| Real | ljNorm |
| Real | z1Tz2 |
| Real | z1Tz1 |
| Real | lhTz1 |
| Real | lhTz2 |
| Real | ljTz1 |
| int | LiMax |
| int | LiMin |
| Real | kappa |
| Real | Quad |
| Real | Lin |
| Real | objval |
| Real | minobjval |
| Real | deltaLh |
| Real | deltaLj |
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 77 of file ROL_Bundle_TT.hpp.
|
inline |
Definition at line 84 of file ROL_Bundle_TT.hpp.
References ROL::Bundle_TT< Real >::Id, ROL::Bundle_TT< Real >::INF, ROL::Bundle_TT< Real >::maxind, and ROL::Bundle_TT< Real >::maxSize_.
|
inline |
Definition at line 93 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::subgradient().
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase(), and ROL::Bundle_TT< Real >::solveDual_TT().
|
inlineprivate |
Definition at line 129 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::addSubgradToBase(), and ROL::Bundle_TT< Real >::deleteSubgradFromBase().
|
inlineprivate |
Definition at line 150 of file ROL_Bundle_TT.hpp.
References ROL::Bundle_TT< Real >::dependent_, ROL::Bundle_TT< Real >::INF, and ROL::Bundle_TT< Real >::L.
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase().
|
inlineprivate |
Definition at line 171 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::alpha(), ROL::Bundle_TT< Real >::L, ROL::Bundle_TT< Real >::lhTz1, ROL::Bundle_TT< Real >::lhTz2, and ROL::Bundle_TT< Real >::swapRowsL().
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase(), and ROL::Bundle_TT< Real >::solveDual_TT().
|
inlineprivate |
Definition at line 207 of file ROL_Bundle_TT.hpp.
References ROL::Bundle_TT< Real >::addSubgradToBase(), ROL::Bundle_TT< Real >::currSize_, ROL::Bundle_TT< Real >::deltaLh, ROL::Bundle_TT< Real >::deltaLj, ROL::Bundle_TT< Real >::dependent_, ROL::Bundle_TT< Real >::GiTGj(), ROL::Bundle_TT< Real >::L, ROL::Bundle_TT< Real >::ljNorm, ROL::Bundle_TT< Real >::swapRowsL(), and ROL::Bundle_TT< Real >::updateK().
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
inlineprivate |
Definition at line 508 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::alpha(), ROL::Bundle< Real >::eG_, ROL::Bundle< Real >::gx_, ROL::Bundle< Real >::size(), ROL::Bundle< Real >::subgradient(), ROL::Bundle< Real >::tG_, and ROL::Bundle< Real >::yG_.
Referenced by ROL::Bundle_TT< Real >::solveDual().
|
inlineprivate |
Definition at line 532 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual().
|
inlineprivate |
Definition at line 537 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::alpha(), ROL::Bundle< Real >::gx_, and ROL::Bundle< Real >::subgradient().
Referenced by ROL::Bundle_TT< Real >::solveDual().
|
inlineprivate |
Definition at line 565 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::size().
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
inlineprivate |
Definition at line 580 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
inlineprivate |
Definition at line 590 of file ROL_Bundle_TT.hpp.
References ROL::Bundle_TT< Real >::addSubgradToBase(), ROL::Bundle< Real >::alpha(), ROL::Bundle_TT< Real >::currSize_, ROL::Bundle_TT< Real >::deleteSubgradFromBase(), ROL::Bundle_TT< Real >::dependent_, ROL::Bundle_TT< Real >::GiTGj(), ROL::Bundle_TT< Real >::INF, ROL::Bundle_TT< Real >::isFeasible(), ROL::Bundle_TT< Real >::L, ROL::Bundle_TT< Real >::lh, ROL::Bundle_TT< Real >::lhTz1, ROL::Bundle_TT< Real >::lhTz2, ROL::Bundle_TT< Real >::lj, ROL::Bundle_TT< Real >::maxind, ROL::Bundle_TT< Real >::objval, ROL::Bundle_TT< Real >::optimal_, ROL::Bundle< Real >::resetDualVariables(), ROL::Bundle_TT< Real >::rho_, ROL::Bundle< Real >::size(), ROL::Bundle_TT< Real >::solveSystem(), ROL::Bundle_TT< Real >::tempw1, ROL::Bundle_TT< Real >::tempw2, ROL::Bundle_TT< Real >::z1, ROL::Bundle_TT< Real >::z1Tz1, and ROL::Bundle_TT< Real >::z2.
Referenced by ROL::Bundle_TT< Real >::solveDual().
|
inlinevirtual |
Implements ROL::Bundle< Real >.
Definition at line 1072 of file ROL_Bundle_TT.hpp.
References ROL::Bundle_TT< Real >::checkPrimary(), ROL::Bundle_TT< Real >::evaluateObjective(), ROL::Bundle< Real >::size(), ROL::Bundle_TT< Real >::solveDual_dim1(), ROL::Bundle_TT< Real >::solveDual_dim2(), and ROL::Bundle_TT< Real >::solveDual_TT().
|
inline |
Definition at line 1123 of file ROL_Bundle_TT.hpp.
References ROL::Bundle< Real >::alpha(), ROL::Bundle< Real >::eG_, ROL::Bundle< Real >::gx_, ROL::Bundle< Real >::size(), ROL::Bundle< Real >::subgradient(), ROL::Bundle< Real >::tG_, and ROL::Bundle< Real >::yG_.
Referenced by ROL::Bundle_TT< Real >::solveDual().
|
private |
Definition at line 80 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::Bundle_TT().
|
private |
Definition at line 81 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 101 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 102 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::Bundle_TT(), ROL::Bundle_TT< Real >::solveDual_TT(), and ROL::Bundle_TT< Real >::updateK().
|
private |
Definition at line 103 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::Bundle_TT(), and ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 104 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 105 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 106 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 107 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase(), ROL::Bundle_TT< Real >::solveDual_TT(), and ROL::Bundle_TT< Real >::updateK().
|
private |
Definition at line 108 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 109 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase(), and ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 110 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 111 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::addSubgradToBase(), ROL::Bundle_TT< Real >::deleteSubgradFromBase(), ROL::Bundle_TT< Real >::solveDual_TT(), and ROL::Bundle_TT< Real >::updateK().
|
private |
Definition at line 112 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::Bundle_TT().
|
private |
Definition at line 113 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 114 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 115 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 116 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 117 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 118 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 119 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 120 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 120 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase().
|
private |
Definition at line 120 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 120 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 120 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::addSubgradToBase(), and ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 120 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::addSubgradToBase(), and ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 120 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 121 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 122 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 123 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 124 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 124 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 125 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::solveDual_TT().
|
private |
Definition at line 126 of file ROL_Bundle_TT.hpp.
|
private |
Definition at line 127 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase().
|
private |
Definition at line 127 of file ROL_Bundle_TT.hpp.
Referenced by ROL::Bundle_TT< Real >::deleteSubgradFromBase().
1.8.13