MathOptInterface.jl
MathOptInterface.jl copied to clipboard
A data structure for mathematical optimization problems
Discussed with @oxinabox * https://github.com/JuliaDiff/ChainRules.jl * Used in ReverseDiff https://github.com/JuliaDiff/ReverseDiff.jl/blob/df0067465ca436b05377054ac7a184da691db1a3/src/macros.jl#L298-L316
This issue is to track support for a limited subset of constraint programming in MOI. At present, we don't envisage MOI having the same scope as MiniZinc, but we want...
The wrappers of nonlinear solvers like Ipopt and NLopt are quite complicated because the solvers only expect gradient, jacobian, hessian callbacks and they also support linear and quadratic objective and...
Since they're so complicated, I wonder if we need documentation in the style of literate programming where we explain in much more detail what's going on. @matbesancon this blog post...
It was recently brought up on Gitter (both with @freemin7 on 29th of November, and with @chriscoey on 3rd of November). We could define a bridge `NumberConversionBridge{T,S}` converting constraints with...
```julia struct Box{T} lower::Vector{T} upper::Vector{T} end ``` which is a cartesian product if `Interval{T}` so `lower` and `upper` are allowed to have infinite values. This has been requested by @migarstka...
This is needed for Mosek as it uses the `Bridges.Constraint.ZeroOneBridge`.
## Writing Currently, the CBF writer assumes all variables are in the `"F"` (`MOI.Reals`) cone. https://github.com/jump-dev/MathOptInterface.jl/blob/7a95b636765a5a9ecfcec9a3300041c02e9e787f/src/FileFormats/CBF/write.jl#L252-L253 We should add support for `add_constrained_variables` and then dis-allow `VectorOfVariables` constraints: https://github.com/jump-dev/MathOptInterface.jl/blob/7a95b636765a5a9ecfcec9a3300041c02e9e787f/src/FileFormats/CBF/write.jl#L194 since we...
We discussed with @ccoffrin, @harshangrjn and @kaarthiksundar about what the next-generation NLP could look like. Here is a gist of the idea: We create two new function types. First `NonlinearExpressionFunction`...
```julia julia> f = 1 * MOI.VariableIndex(1) MathOptInterface.ScalarAffineFunction{Int64}(MathOptInterface.ScalarAffineTerm{Int64}[MathOptInterface.ScalarAffineTerm{Int64}(1, MathOptInterface.VariableIndex(1))], 0) julia> g = 1.0 * f MathOptInterface.ScalarAffineFunction{Float64}(MathOptInterface.ScalarAffineTerm{Float64}[MathOptInterface.ScalarAffineTerm{Float64}(1.0, MathOptInterface.VariableIndex(1))], 0.0) julia> promote(f, g) ERROR: promotion of types MathOptInterface.ScalarAffineFunction{Int64} and MathOptInterface.ScalarAffineFunction{Float64} failed...