Skip to main content

Questions regarding partition heuristic, branching priorities & DistributedMIPJobs




  • Sonja Mars
    Gurobi Staff Gurobi Staff

    Hi Thomas,

    Branching priority:

    1. Yes, variables are allowed to have the same branching priority.
    2. Gurobi picks the order of the variables to branch on with an internal not public algorithm. 
    3. Gurobi will pick the variables with the highest priorities first, no matter if 5 is the highest number or 50 000. 

    Partition heuristic:

    Branching priorities are used throughout the whole search tree and the whole branch-and-bound search. The partition heuristic is a special improvement heuristic that only runs in a few different places (depending on your choice). The branching priorities don't overwrite the partition heuristic. If you specified a partition and a place where you want it to run, this heuristic on the partitions you used will run and try to find a better feasible solution. 


    1. No, it is more or less the same as on a single machine. Gurobi will determine which nodes are solved on which worker (or on which thread in the non-distributed case). 
    2. Yes, you can combine those, but I don't think we do it in the way you are looking for. It depends a bit on when you want to call the partition heuristic. For example the root node is not solved in a distributed way, if you run DistributedMIP. We start DistributedMIP with a ramp-up phase. This is a concurrent approach to find a good starting point for the rest of the search. The partition heuristic will be integrated into this approach. 



  • Thomas Leveringhaus

    Hi Sonja,

    Thank you very much for your answer.

    It will take me some time to evaluate all the options, but now I know that I can move in that direction.

    Best regards



Please sign in to leave a comment.