-
Is there a way to influence node selection during branch-and-bound, as well as add heuristics to obtain good MIP feasible solutions? For our problem (explained below), we have some natural variable order that may allow the solver to prune the search space efficiently, and we have simple algorithms to generate good MIP feasible solutions that may help to get a tighter upper bound during B&B. The only non-trivial solver example I saw in the example directory is the branch-and-price example, but it seems to be doing a custom branch-and-price loop, and not using the cut generators implemented in the MIP algorithm (if I understand it correctly). And apparently there is no way to invoke the cut generators from public APIs. Context: (Not sure if the following should be moved to discussion or a new issue) I'm currently working on e-graph extraction problem. We have a directed graph with two kinds of nodes, "or" (also called e-class) and "and" (e-node) nodes, as well as non-negative costs associated to each node. We want to extract a set of nodes such that
There are some heuristics as well as ILP encoding in https://github.com/egraphs-good/extraction-gym using cbc. The heuristics I want to implement for now:
I'm just wondering if this can be implemented with public APIs in HiGHS, or if I will to modify the source to add custom heuristics. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Thanks for setting out your questions and background in such detail, but the short answer is "no" to them all. The HiGHS MIP solver was written to give general performance as a "black box", and only slowly are we adding any user control. I note that what you ask for in HiGHS appears not to be available in Gurobi, and even with their |
Beta Was this translation helpful? Give feedback.
Thanks for setting out your questions and background in such detail, but the short answer is "no" to them all. The HiGHS MIP solver was written to give general performance as a "black box", and only slowly are we adding any user control. I note that what you ask for in HiGHS appears not to be available in Gurobi, and even with their
VarBranch
andBranchDir
parameters the documentation observes that "Changing the value of this parameter rarely produces a significant benefit". The tree search in sophisticated MIP solvers like HiGHS is far from being a simple "branch-and-bound" procedure, so modifying the default behaviour is (a) challenging to implement and (b) likely to give disappointing r…