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!