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)
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 >= 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: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!