I am implementing a column-and-constraint generation algorithm. The problem is solved as follows: A relaxed master MILP problem is solved. Using the optimal solution of the master problem, we solve a subproblem to verify if the solution if optimal. If not, a set of constraints is added to the master problem. These constraints contain unique continuous variables that do not affect the rest of the constraints.
Currently, I am solving a sequence of MILPs to optimimality when solving the master problem, which is time consuming. So I would like to explore the option of solving a single MILP and adding these constraints as lazy constraints as needed in the B&B procedure. I have seen the tsp example (see link below), however, in that example only lazy constraints are added without new continuous variables. From what I understand, the class GRBCallback() it does not allow to add new continuous variables. We can only add constraints. Is this correct?
I could include all continuous variables in the initial MILP. Since they will not appear in any of the constraints (initially) they shouldn't interfere with the complexity of the B&B. However, I want to avoid this, since the size of these continuous variables is exponential with respect to the problem size.
Is there a cleverer way to address this issue.
Thanks for your help
Please sign in to leave a comment.