OPTPP::OptLBFGS Class Reference

#include <OptLBFGS.h>

Inheritance diagram for OPTPP::OptLBFGS:

OPTPP::OptLBFGSLike OPTPP::OptimizeClass List of all members.

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 void readOptInput ()
 Run the optimization.
virtual real stepTolNorm () const
virtual void printStatus (char *c)
virtual void printIter (int, double, double, double, double, int)

Protected Member Functions

NLP1nlprob () const
void initMem (int n)

Private Attributes

NLP1nlp
 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()

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
Examples:

tstLBFGS.C.


Constructor & Destructor Documentation

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

Default Constructor

See also:
OptLBFGS(NLP1* p)

OptLBFGS(NLP1* p, TOLS t)

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

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

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)

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)

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)

virtual OPTPP::OptLBFGS::~OptLBFGS (  )  [inline, virtual]

Destructor


Member Function Documentation

virtual void OPTPP::OptLBFGS::acceptStep ( int  k,
int  step_type 
) [inline, virtual]

Note:
Pure virtual functions

Each derived class must define these functions for themselves

Implements OPTPP::OptLBFGSLike.

int OPTPP::OptLBFGS::checkDeriv (  )  [virtual]

Reimplemented from OPTPP::OptLBFGSLike.

virtual NEWMAT::ColumnVector OPTPP::OptLBFGS::computeSearch ( NEWMAT::SymmetricMatrix &   )  [inline, virtual]

Implements OPTPP::OptimizeClass.

virtual int OPTPP::OptLBFGS::computeStep ( NEWMAT::ColumnVector &  sk,
double  stp = 1.0 
) [virtual]

Compare analytic vs finite-difference gradient.

void OPTPP::OptLBFGS::initMem ( int  n  )  [inline, protected]

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.

void OPTPP::OptLBFGS::optimize (  )  [virtual]

Initialize the optimization.

Reimplemented from OPTPP::OptLBFGSLike.

void OPTPP::OptLBFGS::printIter ( int  ,
double  ,
double  ,
double  ,
double  ,
int   
) [virtual]

void OPTPP::OptLBFGS::printStatus ( char *  c  )  [virtual]

Implements OPTPP::OptimizeClass.

void OPTPP::OptLBFGS::readOptInput (  )  [virtual]

Run the optimization.

Reimplemented from OPTPP::OptLBFGSLike.

void OPTPP::OptLBFGS::reset (  )  [virtual]

Compute the step direction.

Implements OPTPP::OptimizeClass.

void OPTPP::OptLBFGS::setPrintFinalX ( bool  b  )  [inline]

real OPTPP::OptLBFGS::stepTolNorm (  )  const [virtual]

Reimplemented from OPTPP::OptimizeClass.

virtual void OPTPP::OptLBFGS::updateModel ( int  k,
int  ndim,
NEWMAT::ColumnVector  x 
) [inline, virtual]

Implements OPTPP::OptLBFGSLike.


Member Data Documentation

int OPTPP::OptLBFGS::memM [private]

number of memory vectors kept during optimization iteration

NLP1* OPTPP::OptLBFGS::nlp [private]

Pointer to an NLP1 object.

bool OPTPP::OptLBFGS::printXs [private]

controls if final point is printed by printStatus()


The documentation for this class was generated from the following files:
Bug Reports    OPT++ Developers    Copyright Information    GNU Lesser General Public License
Documentation, generated by , last revised August 30, 2006.