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.