The Limited Memory BFGS Method for Large Scale Optimization. More...
Public Member Functions | |
| virtual void | acceptStep (int k, int step_type) |
| virtual int | checkDeriv () |
| virtual NEWMAT::ColumnVector | computeSearch (NEWMAT::SymmetricMatrix &) |
| virtual int | computeStep (NEWMAT::ColumnVector &sk, double stp=1.0) |
| Compare analytic vs finite-difference gradient. | |
| virtual void | initOpt () |
| Reset the parameters. | |
| virtual void | optimize () |
| Initialize the optimization. | |
| OptLBFGS (NLP1 *p, TOLS t, int m) | |
| OptLBFGS (NLP1 *p, TOLS t) | |
| OptLBFGS (NLP1 *p, int m) | |
| OptLBFGS (NLP1 *p) | |
| OptLBFGS () | |
| Default Constructor. | |
| virtual void | printIter (int, double, double, double, double, int) |
| virtual void | printStatus (char *c) |
| virtual void | reset () |
| Compute the step direction. | |
| void | setPrintFinalX (bool b) |
| virtual real | stepTolNorm () const |
| Run the optimization. | |
| virtual void | updateModel (int k, int ndim, NEWMAT::ColumnVector x) |
| virtual | ~OptLBFGS () |
| Destructor. | |
Protected Member Functions | |
| void | initMem (int n) |
| NLP1 * | nlprob () const |
The Limited Memory BFGS Method for Large Scale Optimization.
Solves the unconstrained minimization problem
min F(x) x = (x_1, x_2, ..., x_N),
using the limited memory BFGS method, where N can be large.
The inverse Hessian approximation Hk is computed via BFGS updates to a diagonal matrix H0. The number of updates depend on the previous m steps kept in memory, as set by the user. H0 can be any symmetric positive definite matrix specified by the user (else a default one is constructed).
References:
D. Liu and J. Nocedal, "On the limited memory BFGS method for large scale optimization" Mathematical Programming B 45 (1989), 503-528
Definition at line 99 of file OptLBFGS.h.
| OPTPP::OptLBFGS::OptLBFGS | ( | ) | [inline] |
Default Constructor.
Definition at line 130 of file OptLBFGS.h.
References OPTPP::OptimizeClass::method.
| OPTPP::OptLBFGS::OptLBFGS | ( | NLP1 * | p | ) | [inline] |
| p | a pointer to an NLP1 object |
Definition at line 136 of file OptLBFGS.h.
References OPTPP::OptimizeClass::method.
| OPTPP::OptLBFGS::OptLBFGS | ( | NLP1 * | p, | |
| int | m | |||
| ) | [inline] |
| p | a pointer to an NLP1 object | |
| m | integer specifying number of memory vectors |
Definition at line 146 of file OptLBFGS.h.
References OPTPP::OptimizeClass::method.
| OPTPP::OptLBFGS::OptLBFGS | ( | NLP1 * | p, | |
| TOLS | t | |||
| ) | [inline] |
| p | a pointer to an NLP1 object | |
| t | a TOLS object |
Definition at line 156 of file OptLBFGS.h.
References OPTPP::OptimizeClass::method.
| OPTPP::OptLBFGS::OptLBFGS | ( | NLP1 * | p, | |
| TOLS | t, | |||
| int | m | |||
| ) | [inline] |
| p | a pointer to an NLP1 object | |
| t | a TOLS object | |
| m | integer specifying number of memory vectors |
Definition at line 165 of file OptLBFGS.h.
References OPTPP::OptimizeClass::method.
| virtual OPTPP::OptLBFGS::~OptLBFGS | ( | ) | [inline, virtual] |
Destructor.
Definition at line 173 of file OptLBFGS.h.
| virtual void OPTPP::OptLBFGS::acceptStep | ( | int | , | |
| int | ||||
| ) | [inline, virtual] |
Implements OPTPP::OptLBFGSLike.
Definition at line 178 of file OptLBFGS.h.
References OPTPP::OptimizeClass::defaultAcceptStep().
| virtual int OPTPP::OptLBFGS::computeStep | ( | NEWMAT::ColumnVector & | sk, | |
| double | stp = 1.0 | |||
| ) | [virtual] |
Compare analytic vs finite-difference gradient.
| virtual void OPTPP::OptLBFGS::initOpt | ( | ) | [virtual] |
Reset the parameters.
| NLP1* OPTPP::OptLBFGS::nlprob | ( | ) | const [inline, protected, virtual] |
Implements OPTPP::OptLBFGSLike.
Definition at line 111 of file OptLBFGS.h.
| virtual void OPTPP::OptLBFGS::optimize | ( | ) | [virtual] |
Initialize the optimization.
Reimplemented from OPTPP::OptLBFGSLike.
| virtual void OPTPP::OptLBFGS::reset | ( | ) | [virtual] |
Compute the step direction.
Implements OPTPP::OptimizeClass.
| virtual real OPTPP::OptLBFGS::stepTolNorm | ( | ) | const [virtual] |
Run the optimization.
Reimplemented from OPTPP::OptimizeClass.
1.6.3