Skip to main content

Control over the number of callbacks in MIPNODE

Answered

Comments

3 comments

  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Francois,

    Could you elaborate a bit more on why you would like to call a MIPNODE callback multiple times for a single node? Usually, for decomposition algorithms, it is enough to retrieve node information once, construct a cut or perform any required changes to the model, i.e., run a Bender's loop on an axuiliary model, and proceed with the next node.

    Best regards, 
    Jaromił

    0
  • francois lamothe
    Gurobi-versary
    First Comment
    First Question

    Hello,

    thanks for your time.

    For benders decomposition, I want to add more than one benders cut per node. Because the MIPNODE callback is my separation for the benders cuts (with an auxiliary model inside it) I want to call it multiple times in order to retrieve multiple cuts and further strengthen the linear relaxation at each.

    More specifically, I would like to do the following loop several times at each node :

    1) get the solution of the linear relaxation at the current node

    2) generate (with the MIPNODE callback) a benders cut that is cutting the current solution

    3) add the cut to the model and resolve the relaxation of the current node

    I didn't find a way to obtain the same result with only one call to the callback function because I can't re-optimize the relaxation of the node without getting out of the callback.

    Best regards,

    Francois

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Francois,

    Thank you for the clarification. Unfortunately, there is no workaround to achieve the goal you have. Currently, there are also no plans for such a feature but we will discuss your suggestion internally.

    For now, the only way I see is to implement an own B&B algorithm where you use Gurobi to solve the node relaxations. The implementation would be similar to spatial B&B solvers, which use a (MI)LP solver to solve node relaxation. This way, you would have full control of each node and branching decisions.

    Best regards, 
    Jaromił

    0

Please sign in to leave a comment.