non LPoptimal heuristic integer solution at CB_MIPSOL
AnsweredHi,
I solve a MILP with my proper callback function:
At a CB_MIPSOL event, a restricted problem is solved where all integer variables are fixed to their current values in the MILP solution.
If the restricted problem is feasible, its solution is recorded to be imported (using cbSetSolution/cbUseSolution) at the next CB_MIPNODE event.
Some lazy cuts are also added inbetween.
This is a minimization problem. When testing I encountered this (> are my printings at CB_MIPSOL and CB_MIPNODE):
> MIPSOL NOD_CNT=5888: OBJ=175.96778781100244, restricted_obj: 175.9647395334268
H 5888 3010 175.9677878 174.08247 1.07% 21.6 21s
> MIPNODE NOD_CNT=5888: OBJ_BST=175.96778781100244
> import solution: SetSolution(175.9647395334268) > UseSolution=175.9647395334269
> MIPSOL NOD_CNT=5888: OBJ=175.9647395334269
H 5888 3006 175.9647395 174.08247 1.07% 21.6 21s
It seems that the solver heuristic (H) has computed an integer solution of cost 175.9678 raising a CB_MIPSOL event.
But there exists another integer feasible solution with the same integer values (only some fractional values differ) of lowest cost:
the solver has indeed accepted the solution of cost 175.9647.
Is it possible that the heuristic integer solution returned at CB_MIPSOL is not LPoptimal (with all integer variables fixed) ?
Thank you !
Sophie.

Hi Sophie,
Yes, you are correct. There are different mechanisms embedded in Gurobi to find incumbent solutions and there is no guarantee that these heuristic solutions are LPoptimal given the fixed integral variables.
0 
And so I now have a feature request: tagged solutions to not to have to check their quality by ourselves !
Thank you very much Maliheh.
0
Please sign in to leave a comment.
Comments
2 comments