Skip to content

Enable Approximation of the Hessian by Quasi Newton #50

@r-b0

Description

@r-b0

I am implementing a problem where symbolic calculation of the hessian is prohibitively difficult. Luckily Ipopt has an option to approximate the Hessian of the Lagrangian by a limited-memory quasi-Newton method (L-BFGS). This feature can be toggled by setting the option hessian_approximation to the value "limited-memory". See the IPOPT documentation below.

The question is thus, how can hessian_approximation be set to limited-memory using pyipopt?

As alluded to in the HS071 example would it be something like:
nlp.str_option('hessian_approximation', 'limited-memory')

A related question on the HS071 example, eval_h is not passed to pyipopt.create even though it is one of the required problem functions per section 3.2 of the introduction to IPOPT document if limited-memory hessian_approximation is not enabled. Does this imply that hessian approximation defaults to limited-memory if a function for calculating the hessian is not provided?

Thank you for your time.

QUASI_NEWTON Hessian Approximation Option
https://coin-or.github.io/Ipopt/SPECIALS.html#QUASI_NEWTON

HS071 Example
https://github.com/xuy/pyipopt/blob/master/examples/hs071.py#L111

Introduction to IPOPT
https://projects.coin-or.org/Ipopt/browser/stable/3.10/Ipopt/doc/documentation.pdf?format=raw

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions