MIP start and Heuristic callback
回答済みHi,
I would like to receive a message about constraint violation when using heuristic callback. When I warm start the model, if there is an infeasibility, I obtain
user MIP start violates constraints constraint_name by value
Instead, in the Heuristic callback, the message is
Heuristic_solution_rejected
but there is no additional explanation about violation of constraints.
In the MOI.callback.jl of gurobi.jl (MOI.HeuristicCallback), a solution is created, then the solution is passed to GRBcbsolution and the objective function value is got back and checked with respect to GRB_INFINITY to eventually return
MOI.Heuristic_solution_accepted
Otherwise, rejected.
Is there a way to get some additional information about the infeasibility of the partial solution passed with the heustistic callback?
I want to know if the partial solution is infeasible or if gurobi does not complete the (feasible) partial solution I submitted.
Thank you in advance
-
Hi Martina,
Unfortunately it does not look like further information can be obtained about why the solution is rejected.
Looking at the code for Gurobi.jl it looks like MOI.HEURISTIC_SOLUTION_REJECTED is used when the solution is infeasible and MOI.HEURISTIC_SOLUTION_UNKNOWN if Gurobi postpones completing it.
I think the easiest way to troubleshoot is to write your heuristic solutions to files inside the callback. Once the solve is terminated you can either use the solution as a MIP start to get some information, or more thoroughly use the solution to fix variable values (via upper and lower bounds) and compute an IIS.
- Riley
0
サインインしてコメントを残してください。
コメント
1件のコメント