MathOptInterface.jl
MathOptInterface.jl copied to clipboard
A data structure for mathematical optimization problems
Context: Yesterday I had a chat to @rluce about nonlinear expressions, particularly as they relate to Gurobi's upcoming nonlinear interface. We broadly agree on scalar nonlinear functions, and he had...
> MILP bridges are largely done. I haven't done Path and Cumulative because they're quite complicated, but Cbc, HiGHS, and Gurobi are all passing tests with the new constraint programming...
The following works: ```julia julia> model=Model(); julia> @variable(model,x); julia> @variable(model,y,Bin); julia> @constraint(model, y => {x == 0}); julia> write_to_file(model,"test.lp") ``` However if the indicator constraint is changed to `@constraint(model, !y...
The LP reader is a source of many problems because it was designed as a bit of a hack and doesn't follow any formal grammar. It's probably time we rewrote...
The purpose of this issue is to track things that we could consider changing if we release MathOptInterface v2.0. To be clear for readers, we currently have no plans to...
Because of its popularity, I'd like to use JuMP as one of several "showcases" for the impact of pkgimages in Julia 1.9 (CC @vchuravy, @vtjnash, @KristofferC). It turns out that...
All bridges in MOI are affine transformations except the QuadtoSOC bridge. As deletion commutes with affine transformations, except for the QuadtoSOC bridge, there should be no issue just deleting the...
This is working for `FlipSignBridge` since it just multiply by `-1` but for a linear map that is not diagonal, we cannot set the starting values variable by variable. https://github.com/jump-dev/MathOptInterface.jl/blob/5025b50de1d6cb29e6bbb0d26adfcf1b57b6a51c/src/Bridges/Variable/set_map.jl#L182-L192...
There is tooling in `MOI.Nonlinear.ReverseAD` to exploit common subexpressions, but we don't actively exploit this when parsing ScalarNonlinearFunction. I wonder if we could walk the tape somehow to detect and...
Some variable bridges don't support `unbridged_variable` and that makes `runtests` fail when getting `ConstraintFunction` or when getting `ConstraintSet` for scalar constraints. For example, `ZerosBridge` does not support it so it...