Skip to content

User-Defined Operator support #291

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

Closed
LebedevRI opened this issue Jul 19, 2024 · 6 comments
Closed

User-Defined Operator support #291

LebedevRI opened this issue Jul 19, 2024 · 6 comments

Comments

@LebedevRI
Copy link

LebedevRI commented Jul 19, 2024

As far as i can tell, SCIP itself does support user operators.
It would be really awesome if that functionality would be exposed in the wrapper using JuMP's User-Defined Operators.
As it stands right now, none of the non-Comm. (MI)LP solvers provides that functionality.

Refs. jump-dev/MiniZinc.jl#76
Refs. #282

@matbesancon
Copy link
Member

hi, indeed it would be great, if you want to take a swing at it go for it, I sadly don't have the bandwidth at the moment

@odow
Copy link
Collaborator

odow commented May 9, 2025

As far as i can tell, SCIP itself does support user operators

Do we have any documentation for this? It's not obvious to me how SCIP can be a global NLP solver if it just has access to the function and its derivative.

@odow
Copy link
Collaborator

odow commented May 9, 2025

Closing because I don't think this is possible. Happy to be proven wrong if someone can find documentation/C example and I will re-open this issue.

@odow odow closed this as completed May 9, 2025
@LebedevRI
Copy link
Author

Changelog says:

- removed SCIPexprCreateUser(), use SCIPincludeExprhdlr() instead

and grepping for that functions shows a lot of hits, so i think you are wrong.

@odow
Copy link
Collaborator

odow commented May 9, 2025

I don't bet that there's a way to include user-defined operators in SCIP. My question is: is it possible to include a user defined operator that supports only function and gradient evaluation (and maybe, Hessian). The answer is almost certainly not. I'm happy to be proven wrong, but someone is going to need to provide actual documentation or links to an example. Not just the name of a function.

@odow
Copy link
Collaborator

odow commented May 9, 2025

As it stands right now, none of the non-Comm. (MI)LP solvers provides that functionality.

None of the commercial MILP solvers do either, because this is not something that they can support. MOI.UserDefinedOperator is really intended for local NLP solvers like Ipopt.

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

No branches or pull requests

3 participants