-
Notifications
You must be signed in to change notification settings - Fork 38
general set form #168
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
Comments
Question... would this format be general enough to subsume LPQP? Quadratic parts will obviously fit in. What about SOS, indicator constraints, etc? |
It would mean a bit more work in the solver interfaces, but I'm not seeing any reason why it would make it hard to get good performance, e.g, when modifying models. You can still dynamically add constraints, modify coefficients, add columns in this new format. |
It also removes a lot of complexity of all the translation layers between lpqp and conic. We would now push these translations onto the solvers. |
To make it easier on the solvers, we should specify in the format that each "type" of set will appear together in order. This would actually greatly simplify the ECOS and SCS wrappers because a lot of the code there is to account for the arbitrary order of cones in MPB format. |
This makes indicator (#155) and complementarity constraints (https://discourse.julialang.org/t/extending-mathprogbase-to-support-complementarity-constraints) trivial to express in MPB set form and with corresponding changes in JuMP, trivial to express in JuMP. Complementarity constraints usually appear in NLP though. We could think about allowing these general constraints on top of NLP form (e.g., via |
This will be implemented in https://github.com/JuliaOpt/MathOptInterface.jl |
We've had some discussions and there seems to be a consensus on generalizing the conic format to allow affine expressions and quadratic expressions belonging to general user-defined sets. This requires replacing the cone symbols with general julia objects that can be interpreted by the solvers.
jump-dev/JuMP.jl#715
jump-dev/JuMP.jl#1037
#165
#163 (reorder exponential cone)
#70
While we do this, we should add a min/max sense for consistency with other interfaces which would help fix jump-dev/JuMP.jl#1003.
@chriscoey @blegat
The text was updated successfully, but these errors were encountered: