[WIP] add initial version of OptimizationIpopt #915
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pacakge directly uses the C interface in Ipopt.jl.
The implementation is based on OptimizationMOI, but it also adds Ipopt specific elements, such as the callback handling.
This PR is an initial draft and needs more work.
The advantage of this approach over OptimizationMOI is that
maxiters
,maxtime
,abstol
argumentsWhile I copied a bit of the code for handling of symbolic systems since I'm not sure I understand how it's working yet and why do we essentially re-implement SymbolicUtils' codegen.
I think that some of the functionality of OptimizationMOI might be common enought that can be moved to an upstream pacakge to avoid code duplication.
I tried to give credit to the autohors of the funtionality that I copied over from OptimizationMOI by includding them as co-authors on the commit. Let me know if that's okay.
Checklist
contributor guidelines, in particular the SciML Style Guide and
COLPRAC.
Additional context
Add any other context about the problem here.