OEBFGSOpt

Attention

This API is currently available in C++ and Python.

class OEBFGSOpt : public OEOptimizer1

The OEBFGSOpt implements the quasi-Newton optimization method with updating Hessian according to the scheme of Broyden, Fletcher, Goldfarb and Shanno. The convergence criteria in based on \(\sum_i {g_ig_i}\).

The following methods are publicly inherited from OEOptimizer1:
The OEBFGSOpt class defines the following public methods:

Constructors

OEBFGSOpt()
OEBFGSOpt(const OEBFGSOpt &)

Default and copy constructors.

operator=

OEBFGSOpt &operator=(const OEBFGSOpt &)

GetHessianDimension

unsigned int GetHessianDimension() const

Returns the dimension of the Hessian matrix.

GetInverseHessian

bool GetInverseHessian(double *h, unsigned int nv) const

Copies the inverted Hessian matrix into the array h in the form of lower triangle of complete Hessian. This function is useful when the Hessian matrix generated during optimization is needed. nv is the number of optimized variables.

GetKeepHessian

bool GetKeepHessian() const

Returns true if the OEBFGSOpt object is set to keep its Hessian

SetKeepHessian

void SetKeepHessian(bool keep)

If the value of the argument passed is true, the OEBFGSOpt object will keep its Hessian when the optimization is done.

UseSavedHessian

void UseSavedHessian(bool ini)

By default, at the start of the optimization Hessian is initiated as unit matrix. In the case when optimization has to repeated, for example starting with different values of variables, one can use this method to initiate optimization with the Hessian from the previous run.