Questions regarding partition heuristic, branching priorities & DistributedMIPJobs
回答済みHi everybody,
I'd appreciate it if you'd answer my questions regarding branching priorities, the partition heuristic, their interactions and the operating principle of DistributedMIPJobs. I have tried to find answers in the documentation, but I have not found this specific information.
Regarding branching priorities in general:
# Are variables allowed to be assigned the same branching priorities, so that, for example, a group of variables has the same branching priority 1, and other groups of variables have the same branching priorities 2, 3, 4, ...?
## So how does Gurobi decide the order in which variables with the same branching priority are to be branched?
# Does it make a difference if I assign branching priorities with consecutive numbers (e.g.: 1, 2, 3, 4, ...) or with different weights (e.g.: 1, 2, 5, 10, 100, 1000, ...)?
Regarding the interaction of branching priorities and the partition heuristic:
# How are branching priorities and partition heuristic interacting? When I give Gurobi information on both, are the branching priorities evaluated only subordinately within each partition or do the branching priorities "overwrite" the partition heuristic? Can I use the parameter PartitionPlace to influence the behaviour?
Regarding the DistributedMIPJobs:
# If I enable the DistributedMIPJobs parameter, can I influence how MIPJobs are distributed to the workers?
# Can the partition heuristic be combined with the DistributedMIPJobs parameter and would the partitions then be distributed to the workers? What happens if I have more partitions than workers (or vice versa)?
Thank you very much for your assistance
Thomas Leveringhaus
-
正式なコメント
This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?. -
Hi Thomas,
Branching priority:
- Yes, variables are allowed to have the same branching priority.
- Gurobi picks the order of the variables to branch on with an internal not public algorithm.
- 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.
DistributedMIPJobs:
- 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).
- 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.
Best,
Sonja
0 -
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
Thomas0
投稿コメントは受け付けていません。
コメント
3件のコメント