Goal:My goal is to solve a standard cutting stock problem with column generation. For solving the (relaxed) master problem and the (bin-packing) subproblem I want to use Google OR Tools with LP and MIP solvers.
Problem:
My problem is that until now, with Google OR Tools, the master problem is modeled and solved from scratch in every iteration. For smaller problem sizes this may work well, but for larger problem instances it would be great if the master problem is only extended by an additional variable (use of the new pattern) and the existing model is updated instead of re-build. (See Google OR Tools example code: csp_ortools.py)
What I know:
With the Gurobi Python Interface (gurobipy) this functionality is available and the existing model can be extended by the newly found pattern. The master problem does not always have to be re-build and solved from scratch. (See Gurobi example code: csp_gurobi.py; interesting function -> enrich_master_problem)
What I don't know / Question:
- In Google OR Tools, is there also the possibility to extend the problem and prevent it from having to be built and solved from scratch in each iteration?
- If yes, how do these commands look like? Incl. minimal example?
- If no, are there any (performance enhancing) alternatives?
Attached Code:
- Minimal Example Google OR Tools with re-building the master-problem
- Minimal Example gurobipy with updating and re-using the master-problem
Helpful Links: