Reading xpress problem from .lp file into Julia

I’m reading a problem from .lp into Julia. I’ve tried various xpress.optimizer params - the problem is infeasible. The reason is b/c the model isn’t read exactly as it’s defined in the .lp file - some constraints get modified. I’ve tried enforcing LP format when reading .lp file using:

model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_LP)
MOI.read_from_file(model, probPath)

but then set_optimizer doesn’t like that model as a parameter…so that the code doesn’t run:
set_optimizer(model, ()->Xpress.Optimizer(DEFAULTALG = 1, PRESOLVE = 1, logfiset_optimizerle = “lp.log”)) - and i’ve tried different options for the optimizer…

Appreciate experts help!!!

Did you try to load the same LP file with the Xpress API directly. You can do something like this

using Xpress
prob = Xpress.XpressProblem()
Xpress.readprob(prob, file_name, "")
Xpress.lpoptimize(prob, "")

if the problem is still infeasible then it isn’t a JuMP problem.

1 Like

That was extremely helpful. But how can i see the log file or the details from the solver - to make sure that indeed it was solved successfully and obj cost makes sense? i.e. with jump i’m able to do both - specify the log file and to call/output: solution_summary(model)
outputting println(prob) is not sufficient:
Xpress Problem:
type : LP
sense : minimize
number of variables = 248
number of linear constraints = 113
number of quadratic constraints = 0
number of sos constraints = 0
number of non-zero coeffs = 1365
number of non-zero qp objective terms = 0
number of non-zero qp constraint terms = 0
number of integer entities = 0
Appreciate your help!

You need

using JuMP, Xpress
model = read_from_file(probPath)
set_optimizer(model, () -> Xpress.Optimizer(log file = "lp.log"))
optimize!(model)

Docs: Models · JuMP

If that doesn’t work, can you provide the LP file?

Ah, I see you’ve opened https://github.com/jump-dev/MathOptInterface.jl/issues/1786. Please upload the LP file there.