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