JuMPeR.jl icon indicating copy to clipboard operation
JuMPeR.jl copied to clipboard

Mapping Gurobi IIS to JuMP Constraints

Open chelseas opened this issue 7 years ago • 0 comments

I am trying to solve a mixed-integer uncertain program. I can solve a deterministic instantiation of this uncertain program using JUMP, easily. However, when I generalize this program using uncertain parameters, JUMPER reports that it becomes infeasible. This doesn't make sense to me.

So I am trying to debug what might be happening. I have used Gurobi's IIS generating function to pull this information:

function getIIS(m::JuMP.Model) grb_model = m.internalModel.inner num_constrs = Gurobi.num_constrs(grb_model) Gurobi.computeIIS(grb_model) iis_constrs = Gurobi.get_intattrarray(grb_model, "IISConstr", 1, num_constrs) m.linconstr[find(iis_constrs)] end

But when it returns the IIS, it is impossible to parse. E.g.: p[3,4,1] - 3 b[3,4,1] ≤ 0
_π_10_10 + _π_10_11 = 1

when my JuMP variables are p[i,j,k] and b[i,j,k] -- no pi's to be found. Therefore, I have deduced that these pi's somehow represent the uncertain parameters.

Does anyone have any suggestions on how to link this Gurobi representation of the IIS to the JuMPeR constraints that I've defined? This will speed up debugging.

Also does anyone know if there's some reason that JuMPeR may report infeasibility when something else is the case? E.g. it cannot solve the problem? I know that uncertain mixed-integer programs are difficult to solve in general.

chelseas avatar Feb 15 '18 01:02 chelseas