-
Notifications
You must be signed in to change notification settings - Fork 87
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
linprog, quadprog, and mixintprog #24
Comments
I agree they should be in a separate package. |
SolveAndForget.jl |
HighLevelMathOptInterface.jl |
MathOptStandardForm.jl or MatrixMathOpt.jl Compared to JuMP or Convex, it's actually not so high-level, right? |
If the functions remain with the old names |
@chriscoey would argue for trashing the |
Miles knows me too well. Yes, those names make me cringe. |
What about something like struct MatrixLP{T} <: AbstractStandaloneInstance
c::AbstractVector{T}
A::AbstractMatrix{T}
lb::AbstractVector{T}
ub::AbstractVector{T}
l::AbstractVector{T}
u::AbstractVector{T}
end
# Implements all MOI.get it can but no MOI.set! The user can then do MOI.copy!(solver, MatrixLP(c, A, lb, ub, l, u)) The name could be MatrixOptInterface.jl (MXOI) to mimic SemidefiniteOptInterface (SDOI), LinQuadOptInterface (LQOI) and StochOptInterface (SOI). |
@blegat, I like that idea. Couldn't |
|
Yes, either that or MatrixLP also returns a vector of variable indices and a vector of constraint indices |
That seems entirely unnecessary. When you create an array to store |
I meant, either MatrixLP is a separate implementation or it returns an MOIU instance with a vector of variables indices and a vector of constraint indices. |
Ah. Well, a separate implementation would also be a useful code example that people will be able to understand without all the complexities of the MOIU instance. |
Yes, the behaviour of the other solution can be recovered by doing MOIU.@instance LPInstance ...
instance = LPInstance()
MOI.copy!(instance, MatrixLP(...)) |
It feels like we have the right abstractions now, I didn't expect that to be so easy :) |
This is a good up for grabs issue. I support @blegat's |
I was thinking, maybe it could live in LinQuad, and it might be good to use the linquad mocksolver to generate the matrix instances (which is the other way). |
What can be shared by these interfaces is building a matrix similar to the MPB conic interface using the allocate-load interface. |
I started playing around with this in https://github.com/joaquimg/MatrixOptInterface.jl |
Closing because we have https://github.com/jump-dev/MatrixOptInterface.jl although it still needs some work. We also have documentation to explain how to transition to JuMP: |
These should be renamed without the
prog
and perhaps moved to a separate package. I don't see a good reason why these three particular functions should be in MOI itself.Relevant: http://www.juliaopt.org/MathOptInterface.jl/latest/apimanual.html#A-more-complex-example:-solveintegerlinear-1
The text was updated successfully, but these errors were encountered: