Skip to content

Add Hessian Support to IFOPT #104

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

longhongc
Copy link

@longhongc longhongc commented Mar 20, 2025

Hi,

I’ve been working on a trajectory optimization project and came across this great interface for the IPOPT library. In my project, I needed custom Hessian functions, so I’ve added Hessian support to the IFOPT project.

There are some design choices I made that I’m not entirely sure align with the project’s philosophy, so I’m open to discussions on those. Specifically, the Hessian matrix interface (FillHessianTriplets) exposes all variable sets because it's difficult to define a pair of variables for the local Hessian matrix, as is done with FillJacobianBlock. This is because Jacobians focus on one variable set at a time, whereas Hessians involve cross-derivatives between different sets.

The decisions I made for the Hessian interface are mostly prioritized for time and space efficiency.

I’ve tested the interface with my own application, and I plan to create a few examples using more complex Hessians based on the original IPOPT examples.

This is my first time contributing to an open-source project, so I hope I’ve done everything correctly!

Issue link

#41

TODO

  • Complete documentation related to Hessian support
  • Add more examples with more complex Hessians
  • Cache hessian if its constant

@longhongc longhongc marked this pull request as draft March 20, 2025 01:48
@longhongc
Copy link
Author

Looks like some ci workflow needs a update.
image

@Levi-Armstrong
Copy link
Collaborator

If you rebase on master the CI issue should be resolved.

@longhongc longhongc force-pushed the feature/add-hessian-support branch from e67a2df to fbfa0fc Compare March 21, 2025 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants