π§© Constraint Solving POTD:Cutting Stock Problem β 1D Trim Loss Minimization #26215
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Constraint Solving β Problem of the Day. A newer discussion is available at Discussion #26423. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
The Cutting Stock Problem (CSP) is one of the oldest and most practically important problems in operations research. Despite its deceivingly simple description, it sits at the intersection of combinatorial optimization, integer programming, and constraint programming β and it gave birth to one of the most influential algorithmic ideas in OR: column generation.
Problem Statement
A paper mill produces rolls of a fixed width
W = 100 cm. Customers order pieces of smaller widths. Given a set of demand orders, cut the stock rolls to satisfy all demands while minimizing the total number of rolls used (equivalently, minimizing waste/trim loss).Concrete Instance
Stock roll width:
W = 100 cmA cutting pattern specifies how many pieces of each width to cut from a single roll. For example:
[1Γ45, 1Γ36, 0Γ31, 1Γ14]β uses 95 cm, wastes 5 cm β[0Γ45, 0Γ36, 3Γ31, 0Γ14]β uses 93 cm, wastes 7 cm β[2Γ45, 0Γ36, 0Γ31, 0Γ14]β uses 90 cm, wastes 10 cm βGoal: Choose how many times to use each feasible pattern so all demands are met with the fewest rolls.
Why It Matters
Paper, steel, glass, and textile industries use cutting stock daily to reduce material waste, directly impacting cost and sustainability. A 1% reduction in trim loss across a large mill can translate to millions of dollars annually.
Lumber and wood panel production uses 2D generalizations of this problem (guillotine cutting), where minimizing offcuts is critical for high-value materials like hardwoods.
Semiconductor wafer dicing and printed circuit board panelization are modern variants, where the "stock" is a wafer or panel and pieces are chips or PCBs.
Modeling Approaches
Approach 1: Column Generation (MIP / LP Relaxation)
The classical Gilmore-Gomory formulation uses patterns as columns in an LP.
Decision variables:
x_j β₯ 0β number of times patternjis usedParameters:
a_ijβ number of pieces of ordericut in patternjObjective: Minimize
Ξ£_r used[r]Trade-offs: CP models are more expressive and easier to add side constraints (e.g., color changes, setup costs), but the LP-based column generation approach typically scales much better on large industrial instances.
Example Model (MiniZinc)
Key Techniques
1. Column Generation & Knapsack Pricing
The pricing subproblem β "find the pattern with the best reduced cost" β is a 0-1 knapsack or bounded knapsack problem. Since knapsack is NP-hard in general but fast in practice (pseudo-polynomial DP), this is feasible to solve repeatedly in the CG loop. The elegance here is that CP and DP naturally complement LP-based decomposition.
2. Symmetry Breaking
Cutting stock models suffer from permutation symmetry: any permutation of roll assignments gives an equivalent solution. The CP model above breaks this with a
used[r] β₯ used[r+1]ordering constraint. More powerful symmetry breaking uses lex-leader constraints or value symmetry breaking (ensuring identical patterns are ordered consistently), which can dramatically prune the search tree.3. Bin-Packing Bound & Dual Feasible Functions
A key lower bound comes from the LP relaxation's optimal value (the fractional optimum). Another classical bound uses dual feasible functions (DFFs): functions
f: [0,W] β [0,1]that preserve feasibility of patterns. By choosingfcleverly (e.g., the FFD-based DFF), you can derive tight lower bounds without solving the LP β extremely useful in branch-and-bound.Challenge Corner
Can you model the 2D version (rectangular cutting stock) as a CP problem?
In the 2D case, each order is a
w_i Γ h_irectangle, and the stock sheet isW Γ H. Feasibility requires non-overlapping placement, which is naturally captured by thediffnglobal constraint in CP.d_iare not fixed but lie in ranges[d_i^min, d_i^max](over-production is allowed)? How does this change the model?References
Gilmore, P.C. & Gomory, R.E. (1961). "A Linear Programming Approach to the Cutting-Stock Problem." Operations Research 9(6):849β859. β The foundational paper introducing column generation for this problem.
Vance, P.H. (1998). "Branch-and-Price Algorithms for the One-Dimensional Cutting Stock Problem." Computational Optimization and Applications 9(3):211β228. β Exact methods combining LP relaxation with branch-and-bound.
WΓ€scher, G., HauΓner, H. & Schumann, H. (2007). "An Improved Typology of Cutting and Packing Problems." European Journal of Operational Research 183(3):1109β1130. β Comprehensive taxonomy of cutting/packing variants.
Clautiaux, F., Sadykov, R., Vanderbeck, F. & Viaud, Q. (2019). "Pattern-Based Diving Heuristics for a Two-Dimensional Guillotine Cutting-Stock Problem with Variable-Sized Stock." EURO Journal on Computational Optimization 7(3):247β278. β Modern treatment linking 1D theory to practical 2D applications.
Beta Was this translation helpful? Give feedback.
All reactions