I've been recently reading some papers where the authors use local branching specifically in Benders Decomposition (see for reference). Although I understand up to some extend how the algorithm works, I am having hard time to understand how it is implemented in practice.
For instance, it is stated that we can divide the feasible region into two parts by using $\Delta(x_o,x) \leq \kappa$ and $\Delta(x_o,x) \geq \kappa+1$ which are identified as the left and right branches, respectively.
I was wondering if someone can briefly explain how this operation can be performed from the coding perspective when using in Java API using CPLEX
.
Some academic references are:
Rei, W., Cordeau, J. F., Gendreau, M., & Soriano, P. (2009). Accelerating Benders decomposition by local branching. INFORMS Journal on Computing, 21(2), 333-345.
Baena, D., Castro, J., & Frangioni, A. (2020). Stabilized benders methods for large-scale combinatorial optimization, with application to data privacy. Management Science.