Coluna.jl icon indicating copy to clipboard operation
Coluna.jl copied to clipboard

Branching callback

Open guilhemdupuis opened this issue 5 years ago • 2 comments

Hello,

In the current version of Coluna, is it possible to take control of the branching decisons in the B&P tree through a callback? If not, where are encoded the branching rules (or are they detailed somewhere in the documentation)? Thank you very much in advance.

Regards,

GD

guilhemdupuis avatar Nov 05 '20 16:11 guilhemdupuis

Hi Guilhem,

Ok I put the branching callback in the TODO list for the next minor release.

You can define a customized divide algorithm. The divide algorithm is a parameter of TreeSearchAlgorithm. It is called at src/Algorithm/treesearch.jl:249. The default one is the StrongBranching which returns a DivideOutput (see src/Algorithm/branching/branchingalgo.jl).

The interface of algorithms will evolve in next minor releases so you may sometimes have to update your code if you choose to implement a new divide algorithm.

Best

guimarqu avatar Nov 09 '20 16:11 guimarqu

Hi Guillaume, Thank you for the clarification. I'll have a look at it and if need be I come back to you. Best

guilhemdupuis avatar Nov 10 '20 15:11 guilhemdupuis

An interface for the branching algorithm is now merged into master. Dev documentation is available here: https://atoptima.github.io/Coluna.jl/latest/api/branching/ (method names and location may change before the next release).

It is very likely that there will be no branching callback and that we'll advise users to implement the interface if they want to customize the branching algorithm.

guimarqu avatar Aug 25 '22 10:08 guimarqu