Sie sind auf Seite 1von 28

EURO XX Conference, Rhodes, 4-7 July, 2004

A computational evaluation of Wangs


algorithm and its variants for the 2D
constrained rectangular cutting problem
Jos Fernando Oliveira
Partially supported by FCT, POSI and FEDER (POSI/40908/SRI/2001 (CPackMO))
The 2D constrained
rectangular cutting problem
Cutting and Packing problem
Small items have to be assigned to large objects, realizing cutting
patterns or layouts geometric combinations of small items assigned to
large objects
Place a subset of the small items on one large object
Objective: to minimize the waste
The 2D constrained
rectangular cutting problem
Geometry
Two-dimensional objects and items
Rectangular large object (stock sheet) and rectangular small items (pieces)
Upper bound on the number of pieces of each type that can be used
Fixed orientations for all items (no rotations allowed)
Orthogonal cutting patterns
Guillotine cutting patterns
The 2D constrained
rectangular cutting problem
Geometry
Two-dimensional objects and items
Rectangular large object (stock sheet) and rectangular small items (pieces)
Upper bound on the number of pieces of each type that can be used
Fixed orientations for all items (no rotations allowed)
Orthogonal cutting patterns
Guillotine cutting patterns

The 2D constrained
rectangular cutting problem
Geometry
Two-dimensional objects and items
Rectangular large object (stock sheet) and rectangular small items (pieces)
Upper bound on the number of pieces of each type that can be used
Fixed orientations for all items (no rotations allowed)
Orthogonal cutting patterns
Guillotine cutting patterns

The 2D constrained
rectangular cutting problem
Geometry
Two-dimensional objects and items
Rectangular large object (stock sheet) and rectangular small items (pieces)
Upper bound on the number of pieces of each type that can be used
Fixed orientations for all items (no rotations allowed)
Orthogonal cutting patterns
Guillotine cutting patterns
Wangs algorithm (1983)
Constructive algorithm
Generates cutting patterns by successively adding pieces or group of
pieces (partial solutions) to each other, generating in this way new
partial solutions.
Operators: horizontal build and vertical build

Wangs algorithm
Partial solutions that
exceed the large rectangular object dimensions or
do not satisfy the upper bound on the number of pieces of each type
are discarded.
The algorithm stops when no more new partial solutions can be
built
The best partial solution (less waste) is chosen and the final waste is
calculated.
Wangs algorithm assigns to each piece a value equal to its area
Objective: waste minimization
Wangs algorithm
To avoid the explosive growth of the number of partial solutions
being generated
Duplicated partial solutions are eliminated
Same rectangles and same rectangular enclosure
An aspiration level for the partial solutions is defined
The algorithm rejects partial solutions where waste exceeds a percentage
of the stock sheet area
If the total waste Tp of a pattern p, obtained with a fixed value of ,
satisfies Tp wh, then p is an optimal pattern.
The parameter is critical in
striking a balance between
long execution times and
providing the guaranteed
optimality of the solution.
h
w
Vaskos improvement
to Wangs algorithm (1989)
Vertical and horizontal completeness
A partial solution that can not be used anymore in vertical (horizontal)
builds
Because the difference between the stock sheet height (width) and the
partial solution height (width) is less than the smaller piece height (width)
is marked as complete and will not be further considered for vertical
(horizontal) build operations.
A horizontally complete partial solution ws + w2 > w
ws
h
hs
w2
w
Oliveira and Ferreiras improvement
to Wangs algorithm (1990)
Change in the aspiration criterion
To reject, as soon as possible, the partial solutions that will generate
cutting patterns with total waste greater than wh
A lower bound of the partial solution external waste is considered,
together with the inner waste, to decide about the acceptance of a
partial solution.
Inner
waste
(Ts)
ws
Ts + LB wh
h
hs
w
Oliveira and Ferreiras improvement
to Wangs algorithm (1990)
Oliveira and Ferreiras lower bound
Based on the resolution of the unconstrained problem UP (no bounds on the
number of pieces of each type) for the regions:
w
h
ws
hs
ws x (h hs) and (w - ws) x h
w x (h - hs) and (w - ws) x hs
LBOF = min( UP(ws,h-hs) + UP(w-ws,h) , UP(w,h-hs) + UP(w-ws,hs) )
Gilmore and Gomorys two-
dimensional knapsack function
Oliveira and Ferreiras improvement
to Wangs algorithm (1990)
Oliveira and Ferreiras lower bound
does not consider the hypothesis of
having the first guillotine cut, in the
region not yet occupied by the partial
solution, not adjacent to the partial
solution.
Alternative: Viswanathan and Bagchis
lower bound
Also based on the resolution of the
unconstrained problem UP:
w
h
ws
hs
u
v
LBVB(ws,hs) = min( h1(ws,hs) + h2(ws,hs) )
h1(ws,hs) = min( LBVB(u,hs) + UP(u-ws,hs))
ws u w
h2(ws,hs) = min( LBVB(ws,v) + UP(ws,v-hs))
hs v h
LBVB(w,h) = 0
Computational experiments
Pentium 4 @ 2.4 GHz
1 GB RAM
C Code
Windows XP (console mode)
Computational experiments
Data set 1 - 8 instances available in the literature
N. Christofides, C. Whitlock, An algorithm for two-dimensional cutting
problems, Operations Research 25 (1977) 30-44
P.Y. Wang, Two algorithms for constrained two-dimensional cutting
stock problems, Operations Research 31 (1983) 573-586
F.J. Vasko, A computational improvement to Wangs two-dimensional
cutting stock algorithm, Computers and Industrial Emgineering 16
(1989) 109-115
J.F. Oliveira, J.S. Ferreira, An improved version of Wangs algorithm for
two-dimensional cutting problems, EJOR 44 (1990) 256-266
Data set 2 - 21 instances available at OR-Library
http://mscmga.ms.ic.ac.uk/jeb/orlib/ngcutinfo.html
Data set 3 - 210 instances available at OR-Library
Generated by Beasley following Fekete and Schepers studies
Computational results Data set 1
Instance w h m
Pieces
Area /
(w*h)
Beta
Time
(seconds)
Waste
Christofides & Whitlock 1 15 10 7 1,50 0,04 15,19 6
Christofides & Whitlock 2 70 40 10 1,55 0,079 0,09 22
Oliveira & Ferreira 1 70 40 10 2,74 0,0225 15,09 63
Oliveira & Ferreira 2 70 40 10 3,09 0,0393 9,73 110
Wang 70 40 10 8,54 0,029 0,02 79
Vasko 1 800 130 5 11,32 0,1924 0,17 20000
Vasko 2 800 130 10 17,63 0,0994 0,17 8252
Vasko 3 800 130 18 28,42 0,03 0,31 2988
Computational results Data set 2
Instance w h m
Pieces
Area /
(w*h)
Beta
Time
(seconds)
Waste
Beasley 1 10 10 5 0,95 0,05 0,00 5
Beasley 2 10 10 7 1,07 0,03 0,00 3
Beasley 3 10 10 10 1,36 0,01 0,02 0
Beasley 4 15 10 5 0,72 0,08 0,00 12
Beasley 5 15 10 7 1,21 0,07 0,00 10
Beasley 6 15 10 10 1,24 0,02 0,00 2
Beasley 7 20 20 5 0,39 0,57 0,09 225
Beasley 8 20 20 7 0,78 0,05 0,00 20
Beasley 9 20 20 10 1,39 0,03 0,03 10
Beasley 10 30 30 5 0,77 0,03 0,00 21
Beasley 11 30 30 7 0,83 0,07 0,00 58
Beasley 12 30 30 10 1,24 0,01 0,02 2
Hadjiconstantinou & Christofides 1 30 30 7 1,06 0,16 0,00 139
Hadjiconstantinou & Christofides 2 30 30 15 2,82 0,11 9,00 93
Wang 70 40 19 4,71 0,03 0,00 79
Christofides & Whitlock 40 70 20 4,83 0,04 0,00 100
Fekete & Schepers 1 100 100 15 1,28 0,01 10,70 62
Fekete & Schepers 2 100 100 30 3,14 0,03 110,34 227
Fekete & Schepers 3 100 100 30 3,61 0,02 0,13 123
Fekete & Schepers 4 100 100 33 3,65 0,01 65,03 24
Fekete & Schepers 5 100 100 29 2,90 0,01 5150,47 18
Computational results Data set 3
210 instances
(w,h) = (100,100)
m {40, 50, 100, 150, 250, 500, 1000}
30 instances for each value
Number of pieces of each type {1, 3, 4}
70 instances for each value
Pieces shape and size
20% high w [1,50] and h [75,100]
20% long w [75,100] and h [1,50]
20% big w [50,100] and h [50,100]
40% small w [1,50] and h [1,50]
Average ( Pieces area / w h ) = 181,34
Selection instances
Computational results Data set 3
Time limit = 60 seconds
Average running time 57,28 seconds
Number of instances solved until optimality 99
Number of instances that verified the optimality condition 13
Number of instances with zero waste solutions 86
Time limit = 300 seconds
Average running time 279,85 seconds
Number of instances solved until optimality 118
Number of instances that verified the optimality condition 18
Number of instances with zero waste solutions 100
A new extension of Wangs algorithm:
1st order non-guillotine patterns
1st order non-guillotine pattern Higher order non-guillotine pattern

The pattern can be completely cut


by applying to the stock sheet, or
recursively to the portion resulting
from a previous cut, one of the
following cuts:
Horizontal guillotine cut
Vertical guillotine cut
Whirl cut
Any of the previous cuts, when
applied to the stock sheet or to a
portion of the stock sheet
resulting from a previous cut,
would cross one of the rectangles.
New operators for Wangs algorithm
With 4 rectangles (or partial solutions) 6 different 1st order non-
guillotine blocks can be built:
different rectangular enclosure
different waste
1
3
4
2
4
1
3
2
1
3
4
2
1
3
4
2
1
3
4
2
1
3
4
2
Changes in Wangs algorithm
and its variants
In each construction phase partial solutions are joined together:
2 by 2 using the horizontal and vertical build operators
4 by 4 using the 6 different 1st order non-guillotine build operators
The internal waste aspiration level still holds
Parameter can still be used to reject partial solutions
The external waste lower bound does not hold any more
Gilmore and Gomorys two-dimensional knapsack function only
considers guillotine patterns
Vaskos horizontal and vertical completeness concept can still be
applied
The algorithm only guarantees optimal solutions if they are
guillotine or 1st order non-guillotine patterns.
Higher order non-guillotine patterns can not be generated.
Computational results Data set 2
Instance Beta
Time
(seconds)
Waste Optimality?
Beasley 1 0,05 0,00 5 Yes
Beasley 2 0,03 0,00 3 Yes
Beasley 3 0,01 0,06 0 Yes
Beasley 4 0,08 0,00 12 Yes
Beasley 5 0,07 0,05 10 Yes
Beasley 6 0,02 0,00 2 Yes
Beasley 7 0,57 4,92 225 Yes
Beasley 8 0,05 0,02 20 Yes
Beasley 9 0,03 0,61 10 Yes
Beasley 10 0,03 0,00 21 Yes
Beasley 11 0,07 0,11 58 Yes
Beasley 12 0,01 0,06 2 Yes
Hadjiconstantinou & Christofides 1 0,16 0,09 139 Yes
Hadjiconstantinou & Christofides 2 0,11 (*) 93 No
Wang 0,03 0,06 74 Yes
Christofides & Whitlock 0,03 0,08 74 Yes
Fekete & Schepers 1 0,01 1985,05 26 Yes
Fekete & Schepers 2 0,03 (**) 257 No
Fekete & Schepers 3 0,02 125,67 123 Yes
Fekete & Schepers 4 0,01 (*) 24 No
Fekete & Schepers 5 0,01 (**) 36 No
(*) Time limit of 2000 seconds reached; it is, probably, the optimal solution
(**) Time limit of 2000 seconds reached; it is not, surely, the optimal solution
Computational results
Wangs instance
Guillotine
Non-guillotine
Waste = 79
Waste = 74
Computational results
Fekete & Schepers instance
Guillotine
Non-guillotine
Waste = 62
Waste = 26
Comparison with other authors results
Most of the approaches are heuristics.
Most of the authors tackle the more general problem of having a
value for each piece different from its area.
Some optimal solutions can not be obtained just with
1st order non-guillotine cuts.
Most of the instances have originally the pieces value different from
their area and had to be transformed into waste minimization
problems.
Difficult to make direct comparisons, but
Comparison with other authors results
Data set 2 (21 instances)
Beasley (2004) population heuristic
Optimal solution for 13 instances
Running time between 0.02 and 83.44 seconds
Silicon Graphics O2 workstation (R10000 chip, 225 MHz, 128 MB main memory)
Parreo, lvarez-Valds, Tamarit (2004) GRASP algorithm
Optimal solution for 18 instances
Running time between 0.00 and 4.17 seconds
Pentium 3 @ 800 MHz
Oliveiras variant of Wangs algorithm
Time limit = 5 seconds Optimal solutions for 15 instances
Time limit = 150 seconds Optimal solutions for 16 instances
Time limit = 2000 seconds Optimal solutions for 17 instances
Pentium 4 @ 2.4 GHz, 1Gb RAM
Conclusions and future developments
Wangs algorithm, with its improvements, guarantees optimal
solutions for large two-dimensional constrained guillotine problems
in a reasonable amount of time
The extension of Wangs algorithm to 1st order non-guillotine
patterns is competitive with heuristic approaches and guarantees
the solutions optimality
when constrained to 1st order non-guillotine patterns
Future developments
Tackle problems where the value of each piece is not proportional to its
area.
Devise and implement build operators for higher order non-guillotine
patterns.

Das könnte Ihnen auch gefallen