Hessian Update Strategies

This module provides various generic Hessian approximation strategies that can be employed when the calculating the exact Hessian or an approximation is computationally too demandind.

Classes Summary

BFGS([hess_init])

Broyden-Fletcher-Goldfarb-Shanno update strategy.

DFP([hess_init])

Davidon-Fletcher-Powell update strategy.

HessianApproximation([hess_init])

Abstract class from which Hessian update strategies should subclass

HybridUpdate([happ, hess_init, switch_iteration])

SR1([hess_init])

Symmetric Rank 1 update strategy.

Classes

class fides.hessian_approximation.BFGS(hess_init=None)[source]

Broyden-Fletcher-Goldfarb-Shanno update strategy. This is a rank 2 update strategy that always yields positive-semidefinite hessian approximations.

class fides.hessian_approximation.DFP(hess_init=None)[source]

Davidon-Fletcher-Powell update strategy. This is a rank 2 update strategy that always yields positive-semidefinite hessian approximations. It usually does not perform as well as the BFGS strategy, but included for the sake of completeness.

class fides.hessian_approximation.HessianApproximation(hess_init=None)[source]

Abstract class from which Hessian update strategies should subclass

__init__(hess_init=None)[source]

Create a Hessian update strategy instance

Parameters

hess_init (typing.Optional[numpy.ndarray]) – Inital guess for the Hessian, if empty Identity matrix will be used

get_mat()[source]

Getter for the Hessian approximation :rtype: numpy.ndarray :return:

init_mat(dim)[source]

Initializes this approximation instance and checks the dimensionality

Parameters

dim (int) – dimension of optimization variables

class fides.hessian_approximation.HybridUpdate(happ=None, hess_init=None, switch_iteration=None)[source]
__init__(happ=None, hess_init=None, switch_iteration=None)[source]

Create a Hybrid Hessian update strategy which is generated from the start but only applied after a certain iteration

Parameters
get_mat()[source]

Getter for the Hessian approximation :rtype: numpy.ndarray :return:

init_mat(dim)[source]

Initializes this approximation instance and checks the dimensionality

Parameters

dim (int) – dimension of optimization variables

class fides.hessian_approximation.SR1(hess_init=None)[source]

Symmetric Rank 1 update strategy. This updating strategy may yield indefinite hessian approximations.