Check Feasibility of Solution Returned by JuMP After Timeout

question
jump

#1

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?


#2

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


#3

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


#4

I put together a simple Julia package to help with this type of model diagnostics. Suggestions, comments and bug reports are welcome.