The two-dimensional cutting stock problem consists of cutting rectangular pieces from stock sheets (possibly with several different sizes and costs) in such a way the cost is minimized. In the multi-stage version of the problem, the process is divided into several stages (usually two or three), and in each stage we are only allowed to perform either horizontal or vertical guillotine cuts. In the first stage we are only allowed to perform horizontal cuts, in the second stage we are only allowed to perform vertical cuts, and so on. Item rotation may or may not be allowed. Exact final cut of pieces may or may not be required at the last stage.
The MIP models are being solved using COIN-OR CBC (an open-source MIP solver) on a Raspberry Pi Zero W. Much better run times can be achieved using Gurobi or CPLEX.
By means of reductions to vector packing, VPSolver can be used to solve several problems such as:
- Bin packing;
- Cutting stock;
- Cardinality constrained bin packing;
- Cutting stock with cutting knife limitation;
- Bin packing with conflicts;
- Cutting stock with binary patterns;
- Cutting stock with binary patterns and forbidden pairs.
- [Computational results on several benchmark test data sets]
By means of reductions to multiple-choice vector packing, VPSolver can be used to solve several problems such as:
- Variants of the problems from the list above that consider multiple bin types;
- Variable-sized bin packing (as an one-dimensional multiple-choice vector bin packing problem).
VPSolver includes a python interface that allows modeling other problems easily. Using the python interface, VPSolver can be used to solve problems such as:
- Many variants that happen in the industry that include cutting and packing problems as subproblems of a larger production planning problem;
- Multi-stage variants (e.g, two- and three-stage two-dimensional cutting stock problems);
- Multi-period variants (e.g., plan the production for several days with the possibility of delaying or anticipating the production of some items).
Note: Suggestions of other cutting & packing problems (including industrial applications) are welcome! [Contact]