Check Feasibility of Solution Returned by JuMP After Timeout

I’ve got an integer programming problem which I’m solving with JuMP, using Cbc as the underlying solver. The full solution of the problem (i.e., finding a provably optimal solution) takes longer than I care to wait, so I’ve implemented a time limit on the solve time like so:

using JuMP
using Cbc
m = Model(solver=CbcSolver(Sec=5*60))

When I solve the problem using

status = solve(m)

The status is

UserLimit
WARNING: Not solved to optimality, status: UserLimit

and I don’t know whether or not the solver managed to find a feasible solution in the allotted time. How can I quickly check whether or not the solution returned by the solver is feasible?

Checking whether a solution is feasible is discussed in this JuMP issue.

1 Like

I posted a proposed solution to this problem in the aforementioned JuMP issue.

I put together a simple Julia package to help with this type of model diagnostics. Suggestions, comments and bug reports are welcome.
https://github.com/adowling2/DegeneracyHunter.jl

1 Like