#include <OptLBFGS.h>
Inheritance diagram for OPTPP::OptLBFGS:

Public Member Functions | |
| OptLBFGS () | |
| OptLBFGS (NLP1 *p) | |
| OptLBFGS (NLP1 *p, int m) | |
| OptLBFGS (NLP1 *p, TOLS t) | |
| OptLBFGS (NLP1 *p, TOLS t, int m) | |
| virtual | ~OptLBFGS () |
| virtual NEWMAT::ColumnVector | computeSearch (NEWMAT::SymmetricMatrix &) |
| virtual void | acceptStep (int k, int step_type) |
| virtual void | updateModel (int k, int ndim, NEWMAT::ColumnVector x) |
| void | setPrintFinalX (bool b) |
| virtual int | checkDeriv () |
| virtual int | computeStep (NEWMAT::ColumnVector &sk, double stp=1.0) |
| Compare analytic vs finite-difference gradient. | |
| virtual void | reset () |
| Compute the step direction. | |
| virtual void | initOpt () |
| Reset the parameters. | |
| virtual void | optimize () |
| Initialize the optimization. | |
| virtual real | stepTolNorm () const |
| Run the optimization. | |
| virtual void | printStatus (char *c) |
| virtual void | printIter (int, double, double, double, double, int) |
Protected Member Functions | |
| NLP1 * | nlprob () const |
| void | initMem (int n) |
Private Attributes | |
| NLP1 * | nlp |
| Pointer to an NLP1 object. | |
| int | memM |
| number of memory vectors kept during optimization iteration | |
| bool | printXs |
| controls if final point is printed by printStatus() | |
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
|
|
Default Constructor |
|
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||||||
|
|
|
|
Destructor |
|
||||||||||||
|
Implements OPTPP::OptLBFGSLike. |
|
|
Reimplemented from OPTPP::OptLBFGSLike. |
|
|
Implements OPTPP::OptimizeClass. |
|
||||||||||||
|
Compare analytic vs finite-difference gradient.
|
|
|
|
|
|
Reset the parameters.
|
|
|
Implements OPTPP::OptLBFGSLike. |
|
|
Initialize the optimization.
Reimplemented from OPTPP::OptLBFGSLike. |
|
||||||||||||||||||||||||||||
|
|
|
|
Implements OPTPP::OptimizeClass. |
|
|
Compute the step direction.
Implements OPTPP::OptimizeClass. |
|
|
|
|
|
Run the optimization.
Reimplemented from OPTPP::OptimizeClass. |
|
||||||||||||||||
|
Implements OPTPP::OptLBFGSLike. |
|
|
number of memory vectors kept during optimization iteration
|
|
|
Pointer to an NLP1 object.
|
|
|
controls if final point is printed by printStatus()
|