Whatever the MIP tolerance I get the relative mip gap is always zero.

I am using:

MOI.get(model, MOI.RelativeGap())

JuMP v"0.20.1"

Xpress v"0.10.0"

Seems to be an issue either in JuMP or in Xpress

Whatever the MIP tolerance I get the relative mip gap is always zero.

I am using:

MOI.get(model, MOI.RelativeGap())

JuMP v"0.20.1"

Xpress v"0.10.0"

Seems to be an issue either in JuMP or in Xpress

Do you have an example?

See below:

The expression MOI.get(model, MOI.RelativeGap()) always returns zero, regardless of the tolerance achieved by the solver.

using JuMP

using Xpress

m = Model(with_optimizer(Xpress.Optimizer, OUTPUTLOG = 0, MIPRELSTOP = 0.0001 ))

@variable(m, 0<= x1 <=10)

@variable(m, x2 >=0, Int)

@variable(m, x3[i=1:100000], Bin)

@variable(m, obj_function >= 0 )

@objective(m, Max, obj_function )

@constraint(m, constraint0, sum(x3[i] for i in 1:100000) <= 1000)

@constraint(m, constraint1, -x1 + x2 + sum(rand()*x3[i] for i in 1:100000) <= 500)

@constraint(m, constraint2, x1 + 3x2 - sum(rand()*x3[i] for i in 1:100000) <= 800)

@constraint(m, constraint3, x1 + 2x2 + sum(rand()*x3[i] for i in 1:100000) == obj_function)

optimize!(m)

MOI.get(m, MOI.RelativeGap())

JuMP.value(obj_function)

MOI.get(m, MOI.SolveTime())