OPTPP::OptLBFGS Class Reference

The Limited Memory BFGS Method for Large Scale Optimization. More...

Inheritance diagram for OPTPP::OptLBFGS:
[legend]
Collaboration diagram for OPTPP::OptLBFGS:
[legend]

List of all members.

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

Detailed Description

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

Author:
R.A.Oliva, Lawrence Berkely National Laboratories, raoliva@lbl.gov

Definition at line 99 of file OptLBFGS.h.


Constructor & Destructor Documentation

OPTPP::OptLBFGS::OptLBFGS (  )  [inline]

Default Constructor.

See also:
OptLBFGS(NLP1* p)
OptLBFGS(NLP1* p, TOLS t)

Definition at line 130 of file OptLBFGS.h.

References OPTPP::OptimizeClass::method.

OPTPP::OptLBFGS::OptLBFGS ( NLP1 *  p  )  [inline]
Parameters:
p a pointer to an NLP1 object
See also:
OptLBFGS(NLP1* p, TOLS t)

Definition at line 136 of file OptLBFGS.h.

References OPTPP::OptimizeClass::method.

OPTPP::OptLBFGS::OptLBFGS ( NLP1 *  p,
int  m 
) [inline]
Parameters:
p a pointer to an NLP1 object
m integer specifying number of memory vectors
See also:
OptLBFGS(NLP1* p)
OptLBFGS(NLP1* p, TOLS t)
OptLBFGS(NLP1* p, TOLS t, int m)

Definition at line 146 of file OptLBFGS.h.

References OPTPP::OptimizeClass::method.

OPTPP::OptLBFGS::OptLBFGS ( NLP1 *  p,
TOLS  t 
) [inline]
Parameters:
p a pointer to an NLP1 object
t a TOLS object
See also:
OptLBFGS(NLP1* p, TOLS t, int m)

Definition at line 156 of file OptLBFGS.h.

References OPTPP::OptimizeClass::method.

OPTPP::OptLBFGS::OptLBFGS ( NLP1 *  p,
TOLS  t,
int  m 
) [inline]
Parameters:
p a pointer to an NLP1 object
t a TOLS object
m integer specifying number of memory vectors
See also:
OptLBFGS(NLP1* p, TOLS t)

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.


Member Function Documentation

virtual void OPTPP::OptLBFGS::acceptStep ( int  ,
int   
) [inline, virtual]
Note:
Pure virtual functions
Each derived class must define these functions for themselves

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]
Returns:
Pointer to an NLP1 object

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.


The documentation for this class was generated from the following file:
Generated on Mon Jan 24 12:04:41 2011 for FASTlib by  doxygen 1.6.3