Support for lazy constraints and user cut callbacks in MIP solver #3079
-
|
Hi there! I have made a Python package called SteinerPy, which solves Steiner Tree and Steiner Forest variants. Users can choose between HiGHS and Gurobi as the underlying MIP solver depending on their preferences and licensing situation. For the Gurobi backend, I use lazy-constraint callbacks to implement a branch-and-cut algorithm: connectivity cuts are generated dynamically whenever an incumbent solution violates connectivity requirements. This allows Gurobi to exploit the full branch-and-bound tree efficiently. For the HiGHS backend, the same formulation currently has to be implemented through an iterative solve–separate–resolve loop because I could not find support for lazy constraints or user-cut callbacks in the current callback API. Is support for lazy constraints and/or user cut callbacks planned? If not, would you be interested in a feature request? Such functionality would make it possible to implement branch-and-cut algorithms for network design problems such as Steiner Tree directly within HiGHS, rather than through repeated re-solves. Looking forward to your answer! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
Although lazy constraints have been high on our wish-list, for years our priority has been parallelising the MIP solver. Now that we have a prototype code for this we can start work on lazy constraints. An external collaborator has already agreed to help us with this. |
Beta Was this translation helpful? Give feedback.
Although lazy constraints have been high on our wish-list, for years our priority has been parallelising the MIP solver. Now that we have a prototype code for this we can start work on lazy constraints. An external collaborator has already agreed to help us with this.