FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home
Back to examples browserPrevious exampleNext example

Cutting stock

A paper mill produces rolls of paper of a fixed width that are subsequently cut into smaller rolls according to the customer orders. The rolls can be cut into NWIDTHS different sizes. The orders are given as demands for each width. The objective of the paper mill is to satisfy the demand with the smallest possible number of paper rolls in order to minimize the losses. Starting with just a basic set of cutting patterns a column generation heuristic is employed to find more profitable cutting patterns. This heuristic solves a second optimization problem (a knapsack problem) that is independent of the main, cutting stock problem.

Further explanation of this example: 'Mosel User Guide', Section 11.2 'Column generation'; Xpress Whitepaper 'Embedding Optimization Algorithms'. Similar problem: 'Applications of optimization with Xpress-MP', Section 9.6 'Cutting steel bars for desk legs'[download all files]

Source Files

Data Files


! Data file for `cutstock.mos'


WIDTH: [ 6 11 17 21 24 28 30 33 42 49 56 69 74 87 91]
DEMAND: [9  6 20 30 17 19 25 12  8 20  5 14 15 18 10]

Back to examples browserPrevious exampleNext example