jump-dev / MathOptInterface.jl

A data structure for mathematical optimization problems
http://jump.dev/MathOptInterface.jl/
Other
387 stars 87 forks source link

Reading .mps file with NAME #2445

Closed hannahtro closed 6 months ago

hannahtro commented 6 months ago

Hi, I am currently reading a problem in mps format and want to solve it with SHOT:

src = MOI.FileFormats.Model(filename="my_file.mps")
MOI.read_from_file(src, "my_file.mps")
MOI.copy_to(o, src)
optimize!(o)

If the model in the mps file has a name, the error below is thrown. If I remove the name in the file, the model is solved.

NAME          EXAMPLE
ROWS
 N  OBJ
 G  ROW01
 ...
Stacktrace:
  [1] copy_to(dest::MathOptInterface.FileFormats.NL.Model, model::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}})
    @ MathOptInterface.FileFormats.NL ~/.julia/packages/MathOptInterface/tpiUw/src/FileFormats/NL/NL.jl:280
  [2] copy_to
    @ ~/.julia/packages/AmplNLWriter/XKNTn/src/AmplNLWriter.jl:277 [inlined]
  [3] optimize!
    @ ~/.julia/packages/MathOptInterface/tpiUw/src/MathOptInterface.jl:84 [inlined]
  [4] optimize!(m::MathOptInterface.Utilities.CachingOptimizer{AmplNLWriter.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}})
    @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/tpiUw/src/Utilities/cachingoptimizer.jl:316
  [5] optimize!
    @ ~/.julia/packages/MathOptInterface/tpiUw/src/Bridges/bridge_optimizer.jl:380 [inlined]
  [6] optimize!
    @ ~/.julia/packages/MathOptInterface/tpiUw/src/MathOptInterface.jl:85 [inlined]
  [7] optimize!(m::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{AmplNLWriter.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}})
    @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/tpiUw/src/Utilities/cachingoptimizer.jl:316
  [8] optimize!(model::Model; ignore_optimize_hook::Bool, _differentiation_backend::MathOptInterface.Nonlinear.SparseReverseMode, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ JuMP ~/.julia/packages/JuMP/kSaGf/src/optimizer_interface.jl:457
  [9] optimize!(model::Model)
    @ JuMP ~/.julia/packages/JuMP/kSaGf/src/optimizer_interface.jl:409
odow commented 6 months ago

Hi @hannahtro thanks for finding this! Fix incoming: https://github.com/jump-dev/MathOptInterface.jl/pull/2446

odow commented 6 months ago

Hi @hannahtro, this should be fixed if you update to MathOptInterface v1.27.0