Get infeasibility certificate in CPLEX or Gurobi

Hi,

I’m trying to retrieve an extreme/dual infeasibility ray from a JuMP Model. I tried to do so with the GLPK, CPLEX, and Gurobi Solvers. I currently have the following versions installed:

  [a076750e] CPLEX v0.7.3
  [60bf3e95] GLPK v0.14.2
  [2e9cd046] Gurobi v0.9.3
  [4076af6c] JuMP v0.21.5

When I pose the following problem:

m = Model(GLPK.Optimizer)
@variable(m, x[1:2] >= 0)
@objective(m, Max, sum(x))
optimize!(m)

then primal_status(m) returns INFEASIBILITY_CERTIFICATE::ResultStatusCode = 4 for GLPK, but NO_SOLUTION::ResultStatusCode = 0 for CPLEX and Gurobi. Hence I can only access the ray for the GLPK solved model. However, if I add the constraint @constraint(m, x[2] >= 3) to the model above, then julia crashes with

glp_eval_tab_col: k = 3; variable must be non-basicError detected in file draft/glpapi12.c at line 936

signal (6): Abort trap: 6
in expression starting at REPL[22]:1
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 114915766 (Pool: 114881956; Big: 33810); GC: 106
Abort trap: 6

upon optimizing with GLPK (CPLEX and Gurobi work as before). Now, this is obviously a toy problem, but I experience the same core dump/no infeasibility certificate in the actual problem I am trying to solve. So, basically, I have two questions:

  • Are CPLEX and Gurobi not supposed to provide infeasibility certificates (I couldn’t find detailed information on that end)?
  • Is there an alternative (free academic license) LP/NLP solver that can give me an infeasibility certificate without crashing?

Thank you for your help!

Can’t say for sure without the exact log, but…
I would guess that CPLEX/Gurobi solved the problem at presolve. For Gurobi you can try setting the InfUnbdInfo parameter manually.

As for GLPK, this looks like an internal error.

Correct. You need to set additional parameters for CPLEX/Gurobi. For CPLEX

set_optimizer_attribute(model, "CPX_PARAM_REDUCE", 0)

The GLPK looks like a bug. Open an issue.

Thanks, that was it! I’ll open an issue w.r.t. GLPK