🧩 Constraint Solving POTD:Problem of the Day: Strip Packing Problem #59439
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 #59704. |
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.
Problem Statement
What Is Strip Packing?
Strip packing is the problem of arranging a collection of rectangular items into a strip of fixed width and minimal height. Imagine a roll of material with a fixed width—your goal is to pack all items onto this roll using the least amount of material length.
Concrete Instance:
Given 8 rectangular items with dimensions (width × height):
Pack them into a strip of width 10, minimizing the total height (depth) of the strip.
Input/Output:
{(w_i, h_i)}, strip widthW{(x_i, y_i)}for each item such that:WWhy It Matters
Cutting Stock & Manufacturing:
Paper mills, textile manufacturers, and sheet metal suppliers use strip packing daily. Minimizing waste on fixed-width rolls directly reduces material costs.
VLSI Design:
Circuit layout engineers pack logic blocks onto silicon dies with fixed width to minimize die area and manufacturing cost.
Web Layout & UI Rendering:
Browsers and design tools use variants of strip packing to arrange components in fixed-width containers.
Modeling Approaches
Approach 1: Constraint Programming (CP)
Paradigm: Declarative constraint satisfaction with geometric constraints.
Decision Variables:
x[i] ∈ [0..W-w_i]— horizontal position of itemiy[i] ∈ [0..H_max]— vertical position of itemiH ∈ [h_max..H_max]— total height (minimize this)Key Constraints:
Global Constraint:
cumulative/4ornonoverlap_2dcan encode non-overlap efficiently.Trade-offs:
Approach 2: Mixed-Integer Linear Programming (MIP)
Paradigm: Optimize over linear constraints with binary indicators.
Decision Variables:
x[i], y[i]as before (continuous relaxation:x[i] ∈ [0..W])z[i,j] ∈ {0,1}for each pair(i,j): binary indicator of relative positionKey Constraints:
Trade-offs:
Example CP Model (MiniZinc)
Key Techniques
1. Global Constraint Propagation
The
nonoverlap_2dorcumulativeglobal constraint exploits the geometry of the problem:2. Heuristic Ordering & Greedy Seeding
Most-constrained variable heuristics (e.g., largest-first) pack bigger items early:
– Often finds good feasible solutions quickly (seed for branch-and-bound)
3. Symmetry-Breaking Inequalities
Strip packing has reflection and rotation symmetries:
x[1] < x[2](break lexicographic symmetry)Challenge Corner
Open Questions for You:
Can you reduce problem size?
Can you model this with a single continuous variable per item (e.g., just
y[i]if items are sorted by width)?What assumptions would you need to add?
Rotations & Guillotine Cuts:
How would you extend the model to allow 90° rotations of rectangles?
What about enforcing guillotine cuts (nested rectangular partitions) to speed up packing?
Online vs. Offline:
If items arrive one at a time (online variant), what greedy strategies are provably near-optimal?
How does offline knowledge improve the solution?
References
Lodi, A., Martello, S., & Monaci, M. (2002). "Two-dimensional packing problems: a survey." European Journal of Operational Research, 141(2), 241–252.
– Definitive survey covering variants, exact methods, and heuristics.
Korf, R. E. (2003). "Optimal rectangle packing: Initial results." Proc. ICAPS-03, 287–295.
– Exact algorithms for small-to-medium instances; excellent introduction to bounding techniques.
Hopper, E., & Turton, B. C. (2001). "A review of the application of meta-heuristic algorithms to 2D strip packing problems." Artificial Intelligence Review, 16(4), 257–300.
– Survey of local search and genetic algorithms; practical solver techniques.
MiniZinc Handbook ((www.minizinc.org/redacted)
– Global constraint documentation, including
nonoverlap_2dand rectangle packing examples.All reactions