Cutting rectangular items from stock sheets to satisfy demands while minimizing waste is a central manufacturing task. The Two-Dimensional Single Stock Size Cutting Stock Problem (2D-CSSP) generalizes bin packing by requiring multiple copies of each item type, which causes a strong combinatorial blow-up. We present a SAT-based framework where item types are expanded by demand, each copy has a sheet-assignment variable and non-overlap constraints are activated only for copies assigned to the same sheet. We also introduce an infeasible-orientation elimination rule that fixes rotation variables when only one orientation can fit the sheet. For minimizing the number of sheets, we compare three approaches: non-incremental SAT with binary search, incremental SAT with clause reuse across iterations and weighted partial MaxSAT. On the Cui--Zhao benchmark suite, our best SAT configurations certify two to three times more instances as provably optimal and achieve lower optimality gaps than OR-Tools, CPLEX and Gurobi. The relative ranking among SAT approaches depends on rotation: incremental SAT is strongest without rotation, while non-incremental SAT is more effective when rotation increases formula size.
Figures & tables
Figure 1: A 2D-CSSP instance: sheet size 6×4 , two item types ( t1:3×2 , d1=3 ; t2:2×2 , d2=3 ), optimal packing on k∗=2 sheets. Hatched regions are waste.
Figure 2: SB4: the left assignment ( a1=false,a2=true ) violates ¬a2∨a1 and is eliminated; the right is the canonical labelling.
Config
#Opt
#Feas
Avg TTB (s)
Tot. Vars ( ×103 )
Tot. Cls ( ×106 )
Gap (%)
Non-Incremental SAT with Binary Search
CSP
15
3
59.1
485.0
171.6
10.55
CSP_SB
15
3
56.7
485.2
158.2
10.78
Incremental SAT with Binary Search
CSP_INC
15
3
42.6
489.2
209.6
10.55
CSP_INC_SB
16
3
105.9
489.2
192.9
9.71
Table 1: SAT/MaxSAT performance on the Cui–Zhao benchmark (no rotation). Best values per column are in bold .
Config
#Opt
#Feas
Avg TTB (s)
Tot. Vars ( ×103 )
Tot. Cls ( ×106 )
Gap (%)
Non-Incremental SAT with Binary Search
CSP_R
18
4
99.2
611.0
525.2
3.24
CSP_R_SB
18
4
162.0
611.4
536.2
3.24
Incremental SAT with Binary Search
CSP_INC_R
18
2
87.7
614.2
622.2
3.77
CSP_INC_R_SB
18
2
133.2
614.2
609.8
3.77
Table 2: SAT/MaxSAT performance on the Cui–Zhao benchmark (with rotation). Best values per column are in bold .
Config
#Opt
#Feas
Avg TTB (s)
Gap (%)
No Rotation
CSP_INC_SB
16
3
105.9
9.71
OR-TOOLS_CP_SB
7
8
139.1
12.03
GUROBI_MIP_SB
7
0
264.3
21.09
CPLEX_MIP_SB
7
0
264.5
21.27
OR-TOOLS_MIP_SB
5
1
46.3
22.11
Table 3: Best SAT/MaxSAT configurations vs. commercial solvers. Best values per block are in bold .
1Davidson School of Chemical Engineering, Purdue University · Faculty of Computer Science, RWTH Aachen University · 3Jacobs Technion-Cornell Institute, Cornell Tech