Debugging wrong MIPSOL_OBJBND
I have modeled some graph problem in which I add graphs cuts as a lazy constraint.
For some reason after some number of iterations the algorithm deduce a bound for MIPSOL_OBJBND that is incorrect.
I know that if I look at the right subgraph as input and give it to my model, it terminates successfully, but I suspect that one of the lazy constraint might have made MIPSOL_OBJBND too big, will be glad to understand how I can debug why the algorithm derived this bound.
-
Official comment
This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?. -
BTW, I tried the following:
* Saving all lazy constraints
* Created a constraint : OBJ <= CORRECT BOUND
* Found n - the first time that adding the OBJ constraint and the first n lazy constraint became infeasible
* Ran IIS on the infeasible instance. But this part is the hard one, it takes A LOT of time (more than 20K seconds) and it seems like I need at least 600 inequalities... Which means that even when (and if) it terminates, I wont be able to debug what exactly is wrong with the lazy constraints.0 -
What if instead of adding the OBJ <= CORRECT BOUND constraint you fix all the variables to their optimal solution values, add the n constraint that invalidated this solution and then calculate an IIS? This should very quickly yield a single constraint that is invalid for your solution.
Regards,
Tobias
0
Post is closed for comments.
Comments
3 comments