Cutting stock problem
The cutting stock problem is a fundamental optimization challenge in operations research and industrial engineering, involving the efficient partitioning of standard-sized stock materials—such as rolls of paper, sheets of metal, or bars of wood—into smaller items of specified sizes and quantities to meet production demands while minimizing material waste or the total number of stock items used.[1] This problem arises in scenarios where raw materials must be cut to fulfill orders at minimal cost, often formulated as an integer linear programming task that balances demand satisfaction against trim losses.[2] The origins of the cutting stock problem trace back to early work in linear programming and combinatorial optimization, with foundational contributions from Leonid Kantorovich in 1939 on resource allocation, though the modern formulation emerged in the 1960s.[1] In 1961, Peter C. Gilmore and Ralph E. Gomory introduced a seminal linear programming approach that addressed the combinatorial explosion of possible cutting patterns through a technique known as delayed pattern generation or column generation, solving the one-dimensional case by iteratively generating feasible cutting patterns via knapsack subproblems.[2] Their 1963 follow-up paper extended this method, demonstrating practical efficiency for large-scale instances and establishing the problem as a benchmark for decomposition algorithms in optimization. Subsequent developments in the 1970s and 1980s refined typologies for cutting and packing problems, with Harald Dyckhoff's 1990 classification system distinguishing variants based on dimensionality, item types, and constraints, later updated by Wäscher et al. in 2007 to provide a standardized framework widely adopted in research.[3] Mathematically, the one-dimensional cutting stock problem (1D-CSP) is typically modeled as minimizing the number of stock rolls of fixed length W used to produce demanded quantities b_j of items of length a_j for j = 1, \dots, m, subject to constraints ensuring demand is met via non-negative integer combinations of cutting patterns.[1] The two-dimensional variant (2D-CSP) extends this to rectangular sheets, incorporating guillotine cuts or more general patterns, which increases complexity due to geometric feasibility requirements.[1] Exact solution methods rely on branch-and-price algorithms combining column generation with integer programming branching, while heuristics such as sequential first-fit or hybrid linear programming approaches offer practical approximations for real-time industrial use.[1] Extensions like the cutting stock problem with usable leftovers (CSPUL) further consider remnants as potential future stock, enhancing sustainability in resource-constrained settings.[4] Applications of the cutting stock problem span diverse industries, including paper and pulp manufacturing where rolls are slit into narrower widths to reduce trim losses, steel production for cutting bars or sheets to order specifications, and woodworking for efficient panel division.[1] In metal fabrication, such as aluminum or copper processing, it optimizes coil or sheet utilization to minimize scrap, while in packaging like corrugated containers, it addresses two-dimensional guillotine cuts for cost-effective production.[4] These implementations often integrate with enterprise resource planning systems, yielding significant savings in material costs in high-volume settings—and have influenced broader fields like supply chain optimization and sustainable manufacturing.[5]Overview and Illustration
Definition and Basic Concept
The cutting stock problem involves cutting standard-sized stock materials, such as rolls or sheets of paper, metal, or fabric, into smaller items of specified sizes and quantities to fulfill given demands while minimizing the total cost, typically measured by trim loss or the number of stock pieces used. This optimization challenge arises in manufacturing and resource allocation, where the goal is to efficiently utilize raw materials to reduce waste and production expenses.[1] Key terms in the problem include stock material, which denotes the raw input available in fixed dimensions, such as rolls of uniform width; cutting patterns, which refer to the specific arrangements of cuts on a single stock piece to produce a combination of required items; trim waste, representing the unused portions left after cutting, often calculated as the difference between stock dimensions and the sum of item sizes in a pattern; and demand quantities, which specify the required numbers of each item type, sometimes with lower and upper bounds to account for flexibility in orders.[1] These elements form the foundation for modeling the problem as a combinatorial optimization task. The basic workflow entails identifying feasible cutting patterns that satisfy the demand quantities for items without exceeding the stock dimensions, then selecting a combination of patterns that optimizes the objective.[1] The problem is NP-hard, with its complexity stemming from its close relation to the bin packing problem, to which it can be reduced in principle.[6][7] A simple one-dimensional case, involving linear cuts along a single axis, illustrates these concepts without the added intricacies of multi-dimensional arrangements.One-Dimensional Example
Consider a simple illustrative example of the one-dimensional cutting stock problem, where stock rolls of fixed length 200 units must be cut to satisfy demands for two item types.[1] The required items consist of 3 units of length 100 and 3 units of length 90, for a total demanded length of $3 \times 100 + 3 \times 90 = 570 units.[1] To assess feasibility, a lower bound on the minimum number of stock rolls is obtained by dividing the total demanded length by the stock length and rounding up: \lceil 570 / 200 \rceil = 3 rolls.[1] An upper bound can be established via a greedy packing heuristic, such as prioritizing larger items: one roll cut into two 100-unit items (using 200 units), one roll into two 90-unit items (using 180 units), and two additional rolls each for the remaining single 100-unit and 90-unit items (using 100 and 90 units each), yielding 4 rolls in total.[1] Viable cutting patterns must satisfy the stock length constraint; for instance, patterns exceeding 200 units (e.g., three 100-unit items at 300 units) are infeasible.[1] The possible viable patterns in this instance are limited due to the small number of item types and can be enumerated as follows:| Pattern | Composition | Total Length Used | Waste |
|---|---|---|---|
| 1 | 2 × 100 | 200 | 0 |
| 2 | 1 × 100 + 1 × 90 | 190 | 10 |
| 3 | 2 × 90 | 180 | 20 |