PII:
Computers Ops Res. Vol. 25, No. 6, pp. 469±485, 1998 # 1998 Elsevier Science Ltd. All rights reserved Printed in Great Britain S0305-0548(97)00087-7 0305-0548/98 $19.00 + 0.00
THE CUTTING STOCK PROBLEM IN A HARDBOARD INDUSTRY: A CASE STUDY Reinaldo Morabito{ and Valdir Garcia{ Departamento de Engenharia de Produc° aÄo, Universidade Federal de SaÄo Carlos, 13565-905, SaÄo Carlos, SP, Brazil (Received March 1997; in revised form September 1997) Scope and PurposeÐThis paper deals with the problem of cutting rectangular plates into smaller ones in a Brazilian hardboard industry. The problem is to determine the best patterns to be cut by an automated machine composed of a set of circular saws, devices to move and hold the plates, and loading and unloading stations. This machine involves unusual constraints such as bounds on the number of item types and the dierence between the largest and the smallest length of the items in the cutting pattern, as well as usual constraints such as availability of longitudinal and transversal saws, orthogonal and two-staged guillotine cuttings without trimming, among others. AbstractÐA particular two-phase column generation procedure is described for the cutting stock formulation of the hardboard industry. Each phase of the procedure is modeled as an integer program and solved by two alternative methods: The ®rst is based on dynamic programming and the second is a simple extension of the implicit enumeration procedure proposed in Gilmore and Gomory [1]. The application of the methodology is illustrated solving several random examples in a microcomputer as well as an actual problem derived of the hardboard industry under consideration. # 1998 Elsevier Science Ltd. All rights reserved
1. INTRODUCTION
The problem of cutting large objects into smaller ones (items) can be found in many industrial processes. Some examples are the cutting of steel bars and sheets in metallurgy, the cutting of paper rolls in the paper and cardboard industry, the cutting of plates of wood and other materials in the furniture industry, the cutting of glass and plastic sheets in the glass industry, among others. The waste material (trim-loss) in the cutting process may be substantial, depending on the diversity of available objects and ordered items as well as the limitations imposed by the cutting machines. The cutting stock problem is to ®nd a way to produce the ordered items from the objects in that a criteria is optimized, for example, minimizing the waste material. It should be noted that this problem can be seen as a problem of packing items into objects in such a way to maximize the object area utilization. Cutting and packing problems have been extensively dealt with in the literature by many authors; for surveys the reader is referred to Dyckho [2], Dowsland and Dowsland [3], Dyckho and Finke [4] and Sweeney and Paternoster [5]; see also Bischo and Waescher [6]. In most cases the problems can be modeled by means of mathematical programming and, since the models rarely belong to the class P (i.e. no polynomial-time algorithms are known to solve them and it is unlikely that such algorithms may exist), in general it is not an easy task to solve them and approximate methods (heuristics) are frequently applied. In this paper we are concerned with a particular cutting problem found in a large Brazilian hardboard industry. The current waste material in the cutting process involves approximately 20 {Reinaldo Morabito is an associate professor of the Production Engineering Department, Universidade Federal de SaÄo Carlos, Brazil. He has a B.Sc. in Civil Engineering from Universidade de Campinas, a M.Sc. in Operations Research and a Ph.D. in Transportation Engineering from Universidade de SaÄo Paulo, Brazil. He was a visiting scholar at the Sloan School of Management, Massachusetts Institute of Technology, in 1993 and 1994. His research interests include industrial cutting and packing problems, queueing networks applied to manufacturing systems, combinatorial optimization, logistics and operations management. {Valdir Garcia is a former research assistant of the Production Engineering Department, Universidade Federal de SaÄo Carlos, Brazil. He has a B.Sc. in Industrial Engineering and a M.Sc. in Operations Management from the aforementioned university. 469
470
Reinaldo Morabito and Valdir Garcia
tons per day, or US$ 1 million a year. Such waste consists of good-quality hardboard scraps which are useless for practical purposes because of their small sizes. Part of this waste can be avoided by a more eective production planning of the cutting machine, which does not imply additional investments in capacity. The approach proposed here is based on a two-phase modeling of the problem, each one as an integer program, and the use of dynamic programming and implicit enumeration techniques to solve it. It is worth noting that because of particular constraints of the cutting machine, the classical models for cutting and packing problems cannot be applied here; moreover, no particular model for a cutting problem that could be directly applied was found in the literature. In the next section we present a brief description of the hardboard production focusing on the cutting process and the main decisions involved. In Section 3 the cutting problem is formulated and in Section 4 two alternative methods are proposed to solve it: the ®rst utilizes dynamic programming recursive formulas (Section 4.1) and the second is a tree-search procedure using a depth-®rst strategy (Section 4.2). In Section 5 we illustrate the application of the methodology solving 600 randomly generated examples as well as an actual example derived from a typical one-week planning horizon of the hardboard industry. Finally, in Section 6 we present the conclusions and perspectives for forthcoming research.
2. HARDBOARD CUTTING PROCESS
For the purpose of this paper, we consider the hardboard production beginning at the wood chipping house where trunks of eucalyptus are washed and chipped. The chips are stored in wide-open areas to dry o and then are transformed into ®bers by means of a thermo-mechanical process. The ®bers are diluted in water tanks, yielding a pulp, which is then pumped to a continuous shaping ®lter. This ®lter produces a `®ber mattress' that is transported to a press which withdraws the water excess and shapes it into rectangular plates. After a thermal treatment and humidi®cation, these plates composed of wood ®bers pressed together are known as hardboards. The hardboards (objects), after being inspected and classi®ed, goes to the cutting process. The plates without any kind of defects are cut into smaller ordered items by an automated machine called samba saw (Wehner KG 154), whereas the defective ones are cut by manual equipment. The waste material is used as fuel for the boilers. The items generated are sandpapered, stored and ®nally dispatched to customers. For further details of the hardboard production, see e.g. Garcia [7]. The samba saw is the most important equipment in the cutting process being able to cut from 15 to 20 tons per hour. It is composed of a set of circular saws (which produce longitudinal and transversal cuts on the plates), pneumatical devices to push (pushers) and ®x (holders) the plates, transporters to move the plates, and plate loading and item unloading stations. All these components are controlled by a PLC (programmable logical controller). 2.1. Circular saw and cutting stage constraints The samba saw can cut a pack of up to 30 plates simultaneously. The circular saws have a thickness of 5 millimeters (mm) and are able to produce only orthogonal guillotine cuts on the plates (an orthogonal guillotine cut is a cut parallel to the plate border that, when applied to a rectangle, produces two rectangles). The cuts must be made in, at most, two stages. Due to restraints in the loading station, the plates must be loaded on the samba saw with their largest dimension (here called length) in the longitudinal direction. In the ®rst stage, the longitudinal saws make cuts parallel to the plate length, yielding strips of the same length of the plate (see Fig. 1(a)). The samba saw only has three longitudinal saws which can yield, at most, three strips (the third saw is only used for trimming). Note in the ®gure that if the three saws were utilized, the `fourth' yielded strip corresponds to a trim-loss. In the second stage, each strip yielded in the ®rst stage is repeatedly pushed (by a pusher) and ®xed (by a holder) in front of the transversal saw. Each time the strip is held, the saw makes a parallel cut to the plate width, yielding one item of the same width of the strip (Fig. 1). Therefore, despite the samba saw having only one transversal saw, this does not impose limi-
Cutting stock problem in a hardboard industry
471
Fig. 1. Two-dimensional two-staged guillotine cutting pattern: (a) exact, (b) non-exact.
tations on the maximum number of cuts that can be made on each strip (contrary to the longitudinal saws). Figure 1(a) illustrates a possible two-staged cutting pattern produced by the samba saw. It should be observed that the cutting pattern describes which ones, how many and how the items are cut from the plate. In particular the pattern of Fig. 1(a) is known in the literature as an exact two-dimensional two-staged guillotine cutting pattern. This pattern is said to be exact because all items on each strip have the same width (i.e. the samba saw is not able to trim these items as in the pattern of Fig. 1(b). 2.2. Holder constraints As described above, the pushers and holders are devices required to make the transversal cuts. When activated, the pusher pushes the strip up to the position where a holder is placed and then the transversal saw makes the cut on the strip. The holder is placed somewhere ahead of the transversal saw in such a way that the length of the item being cut from the strip corresponds to the distance between the holder and the transversal saw (see Fig. 2). The samba saw has a line of four available holders for each strip. Since each dierent item length on the strip needs one holder placed appropriately by the PLC before the cutting pattern is processed, it follows that each strip must contain items of, at most, four dierent lengths (note that this does not mean that each strip must contain at most four items, since we may have several items of the same length). Furthermore, because of physical interference among holders, there are limitations on the minimum distance between two holders of the same line: (i) if the strip contains three items of dierent lengths, the dierence between the largest and the smallest length must be at least
Fig. 2. Transversal saw and line of 3 holders.
472
Reinaldo Morabito and Valdir Garcia
300 mm (Fig. 2); (ii) if the strip contains four items of dierent lengths, it must be possible to group the lengths into two pairs so that the dierence between the lengths of each pair is at least 300 mm. It is worth noting that in practical problems the plate and item sizes are such that it is very rare to obtain patterns with strips containing four dierent item lengths. Therefore, for simplicity, we assume in this paper that the maximum allowable number of dierent lengths in a single strip is three. In this way, we need to consider only the constraint (i) above. 2.3. Loading and unloading station constraints In the loading station, a transversal pre-cut can be made on the pack of identical plates yielding two dierent sets of plates. After that, each set can be individually handled by the samba saw; it should be observed that in this way we may obtain a three-staged cutting pattern for the original pack. Despite increasing the ¯exibility to generate cutting patterns, the pre-cut reduces the productivity of the samba saw (the main reason for this is the increased utilization time spent on the loading station) and is seldom utilized in practice. Therefore, for simplicity, the pre-cut option will not be considered in this paper. Another constraint arises in the item unloading station. After the longitudinal and transversal cuts are made, the samba saw is able to sort up to ®ve items by size (length and width). Therefore, the cutting pattern must not contain more than ®ve dierent sizes of items. To summarize, the constraints to be considered in this paper are: (i) guillotine cuts in, at most, two stages without trimming (exact case); (ii) longitudinal and transversal saw thickness of 5 mm; (iii) maximum of three strips in the ®rst stage; (iv) availability of three holders at each line of the samba saw (i.e. strips with, at most, three dierent item lengths); (v) minimum distance of 300 mm between the largest and the smallest item length in a strip, if it contains exactly three dierent item lengths; and (vi) cutting patterns with, at most, ®ve dierent item sizes. 2.4. Production planning Examples of the decisions involved in the hardboard production planning are [7]: (i) to determine how many plates will be needed to satisfy the demand; (ii) to determine which cutting patterns and how many times each one will be cut by the samba saw; (iii) to determine the cutting pattern sequence to be cut by the samba saw. These decisions interfere in the whole process and not only in the cutting process. In the present paper, however, we focus basically on decisions (i) and (ii) where the cutting problem is de®ned.
3. MATHEMATICAL MODEL
Let M = {1,2, . . .,m} be the set of item types of the order list. Each type-i item, i $ M, has an ordered quantity bi and size (li, wi), where li and wi are its length and width, respectively. We assume that the stock of hardboards (objects) is suciently large to produce all ordered items (i.e. ai $ M bi items). Each plate has size (L, W), where L and W are its length and width, respectively. Note that as we simply add the saw thickness to the dimensions li, wi, L and W, we are satisfying constraint (ii) (Section 2.3). The cutting problem is to determine how to cut the plates (according to cutting patterns) in order to produce all ordered items and minimize the overall waste material. This problem is classi®ed as 2/V/I/R [2], where 2 refers to a two-dimensional problem, V means that all items must be produced, I means that all objects are identical and R indicates that bi may be large but m is a relatively small number. Let us consider initially that all possible cutting patterns are known. To each one, say the j-th pattern, we associate the vector (a1j,a2j, . . .,amj), where aij corresponds to the number of times type-i item appears in pattern j. Let cj be the waste material of pattern j (i.e. cj = LW ÿ ai $ M liwiaij). The cutting problem can be de®ned as the following integer linear program: X cj xj
1
P min j
Cutting stock problem in a hardboard industry
s:t: :
X
aij xj ebi ; i 2 M
473
2
j
with : xj e0; integer
3
where each variable xj corresponds to the number of times pattern j is cut. When the number of possible cutting patterns is very large (which is common in practice), problem (P) is generally dicult to be solved optimally. Gilmore and Gomory [1, 8, 9] suggested the following procedure: (i) relax the integrality constraints of problem (P), and (ii) apply the simplex method to solve the LP-relaxation starting with an initial base composed of m patterns and, during each simplex iteration, generating a pattern to substitute one of the m basic patterns. The procedure terminates as soon as X pi aij ÿ cj E0 i2M
where p is the simplex multiplier vector associated with the current base. This procedure can be useful when demand bi is suciently large with respect to each aij (as it is the case of the hardboard cutting problem). Some authors suggested the use of a simple greedy iterative heuristic called repeated exhaustion reduction (see e.g. [10]) as an alternative procedure to solve problem (P). Basically the heuristic can be stated as: While the demand is not exhausted do: (i) generate the best cutting pattern, (ii) repeat this pattern as much as possible as a function of the demand and (iii) update the demand. In the next section we present an integer programming model which can be used to generate the best cutting pattern for each iteration of either Gilmore and Gomory's procedure or the repeated exhaustion reduction heuristic. This pattern generation problem can be classi®ed as 2/ B/O/R [2] where 2 refers to a two-dimensional problem, B means that a subset of items is chosen to be cut from the objects, O means that there is only one object and R indicates that bi may be large but m is a relatively small number. 3.1. Cutting pattern generation problem The problem of generating a hardboard cutting pattern can be modeled on two phases: First, items are chosen to be combined along the length L of strips of size (L, wj), j $ M' (see the de®nition of M' below). Then, strips are chosen to be combined along the width W of plates of size (L, W). The application of two-phase models is frequent in the literature, in part motivated by the success of Gilmore and Gomory's model to the two-staged cutting problem [9]; see also [11± 14]. Let us consider without loss of generality that the item type set M = {1,2, . . . ,m} is such that: w1Ew2E. . . E wm. Let
4 M 0 ijwi 6 wj ; i < j; i 2 M; j 2 M ; m0 jM 0 j Mj ijwi wj ; i 2 M ; j 2 M 0 ;
mj jMj j
5
(vAv denotes the number of elements of set A). M' is a set of item types of dierent widths and Mj is the set of item types of width equal to wj, j $ M'. Moreover, for any integer n, we de®ne a function d as 1; if n > 0 d
n 0; otherwise: 3.1.1. First phase. In the ®rst phase, besides the constraints related to the strip size, we consider the number of available holders at each line of the samba saw (see constraint (iv) in Section 2.3) and the minimum distance among holders (constraint (v) in Section 2.3). Let R be the number of available holders for each strip (R = 3; see Section 2.2) D be the minimum distance among holders (D = 300 mm; see Section 2.2).
474
Reinaldo Morabito and Valdir Garcia
We wish to ®nd the most valuable combination of type-i items, i $ Mj, on each strip (j, r) of size (L, wj), j $ M', with at most r item types, r = 1, . . .,min(mj, R). Let Vjr be the value of the best item combination on strip (j, r), j $ M', r = 1, . . .,min(mj, R) aijr be the number of type-i items, i $ Mj, in the best combination. Each value Vjr can be obtained by solving the following linear integer program in the variables aijr: X pi aijr ; j 2 M 0 ; r 1; . . . ; min
mj ; R
6 Vjr max i2Mj
s:t: :
X
li aijr EL
7
d
aijr Er
8
i2Mj
X i2Mj
if
X
d
aijr R;
then lmax ÿ lmin eD
9
i2Mj
lmax max li jd
aijr 1
10
lmin min li jd
aijr 1
11
aijr e0; integer
12
i2Mj
i2Mj
with
i 2 Mj :
De®ning N as a suciently large number and the auxiliary variables: 1; if aijr > 0 yijr 0; otherwise z ui vi
1; 0;
P if i2Mj yijr R otherwise
1; 0;
if lmax Eli yijr otherwise
1; 0;
if lmin Eli yijr otherwise
we may rewrite model (6)±(12) as: X pi aijr ; Vjr max
j 2 M 0 ; r 1; . . . ; min
mj ; R
13
i2Mj
s:t: :
X
li aijr EL
14
yijr Er
15
i2Mj
X i2Mj
aijr ENyijr ;
i 2 Mj
lmax ÿ lmin eDz
16
17
Cutting stock problem in a hardboard industry
Rÿ
X
475
yijr EN
1 ÿ z
18
yijr e1 ÿ z
19
i2Mj
Rÿ
X i2Mj
lmax eli yijr ;
i 2 Mj
20
lmax Eli yijr N
1 ÿ ui ; X
i 2 Mj
ui 1
21
22
i2Mj
lmin Eli yijr N
1 ÿ yijr ; lmin eli yijr ÿ N
1 ÿ vi ; X
with :
vi 1
mj ÿ
X
i 2 Mj yijr
i2Mj
i2Mj
aijr e0; integer;
i 2 Mj
yijr ; z; ui ; vi 2 f0; 1g;
i 2 Mj
i 2 Mj :
23
24
25
26
27
Note that in the ®rst phase we need to solve am' j = 1 min(mj, R) problems (13)±(27), each one with 4 mj+1 integer variables and 6 mj + 6 constraints (in practical cases mj is generally a small number). Constraint (16) guarantees that if aijr>0 then yijr=1, constraints (18)±(19) guarantee that if ai $ Mj yijr=R then z = 1, constraints (20)±(22) guarantee that if lmaxEliyijr then ui=1, and constraints (23)±(25) that if lmin eliyijr then vi=1. 3.1.2. Second phase. In the second phase, besides the constraints related to the plate size, we consider the limitation on the number of strips for the ®rst stage (see constraint (iii) in Section 2.3) and the limitation on the number of item types in the unloading station of the samba saw (constraint (vi) in Section 2.3). Let K be the maximum number of strips in the ®rst stage (K = 3; see Section 2.1) R' be the maximum number of item types in the unloading station, R' eR (R' = 5; see Section 2.3). We wish to ®nd the most valuable combination of strips (j, r), j $ Mj , r = 1, . . . ,min(mj, R), on the plate (L, W). In this way we produce an exact two-staged guillotine cutting pattern (see constraint (i) in Section 2.3). Let a*ijr (and y*ijr) be the optimal solution of each problem (13)±(27) of the ®rst phase, with value Vjr, and X X d
aijr yijr
28 njr i2Mj
i2Mj
be the number of item types on strip (j, r) (note that njr Er; see constraint (15)). In addition let V be the value of the best strip combination on the plate (L, W) ajr be the number of strips (j, r), j $ M', r = 1, . . . ,min(mj, R), in the best combination. The value V can be obtained by solving the following linear integer program in the variables ajr: V max
Xj ;R X min
m j2M 0
r1
Vjr ajr
29
476
Reinaldo Morabito and Valdir Garcia
s:t: :
X min
m Xj ;R j2M 0
Xj ;R X min
m j2M 0
with
30
ajr EK
31
njr d
ajr ER 0
32
r1
Xj ;R X min
m j2M 0
wj ajr EW
r1
r1
ajr e0; integer;
j 2 M 0 ; r 1; . . . ; min
mj ; R:
33
De®ning N as a suciently large number and the auxiliary variables: 1; if ajr > 0 yjr 0; otherwise we may rewrite model (29)±(33) as: V max
Xj ;R X min
m j2M 0
s:t: :
Xj ;R X min
m j2M 0
with
wj ajr EW
35
ajr EK
36
njr yjr ER 0
37
r1
Xj ;R X min
m j2M 0
34
r1
Xj ;R X min
m j2M 0
Vjr ajr
r1
r1
ajr ENyjr ;
j 2 M 0 ; r 1; . . . ; min
mj ; R
ajr e0; integer; yjr 2 f0; 1g;
j 2 M 0 ; r 1; . . . ; min
mj ; R
j 2 M 0 ; r 1; . . . ; min
mj ; R:
38
39
40
m' The model (34)±(40) contains 2 am' j = 1 min(mj, R) integer variables and 2 aj = 1 min(mj, R) + 3 constraints. Constraint (38) guarantees that if ajr>0 then yjr=1. Let a*jr be the optimal solution of model (34)±(40) (do not confuse with a*ijr in (28)) with value V; hence, the number of type-i items, i $ M, in the optimal pattern is ®nally obtained by
ai
X min
m Xj ;R j2M 0
r1
aijr ajr :
41
It is worth noting that model (34)±(40) assumes that the item type sets of the strips are disjoints, that is, an item type in a strip (j, r) cannot be in any other strip (k, s), (k, s) $(j, r) (verify that njr in constraint (37) describes how many item types, instead of which ones, are in the strip). We need this assumption to avoid a double counting of the same item type present in two dierent strips. The hardboard material can be either isotropic (i.e. the items can be placed in any orientation on the plate) or non-isotropic, and the associated cutting problem is often unconstrained (i.e.
Cutting stock problem in a hardboard industry
477
there is no limitation on the number of times the same item type can be in the pattern). If the material is non-isotropic and the problem is unconstrained, then, since we have to generate an exact two-staged pattern, two conditions always hold: (i) two strips of dierent widths, say of sizes (L, wj) and (L, wk), j$ k, never contain the same item type, since Mj \Mk = ; (see expression (5)), and (ii) two dierent strips of same width never need to be together in an optimal pattern, since it is always possible (and it is at least as good) to repeat the more convenient strip to the objective (34) and to the constraint (37) than to combine two dierent strips on the plate. Model (34)±(40) is always valid to this case, which is the most frequent in the present hardboard cutting process. If the material is non-isotropic and the problem is constrained (i.e., the demand bi is much less than LW/liwi), although it is possible to: (i) impose upper bounds on the variables aijr (i.e. aijrEbi) in model (13)±(27) and (ii) include expression (41) as an additional constraint and impose upper bounds on the variables ai (i.e. aiEbi) in model (34)±(41), this does not avoid the double counting of the same item type in two dierent strips of the same width. For example, let us consider two strips of the same width, say strips (j, 1) and (j, 3). The ®rst contains three items of type 1 (i.e. a1j1=3, nj1=1) and the second, one item of type 1 and two items of type 3 (a1j3=1, a3j3=2, nj3=2). Obviously, we have w1 = w3 = wj. If b1 = 4, it follows that a pattern composed by these two strips may be feasible (since a1 = a1j1 + a1j3 E b1); however, constraint (37) incorrectly counts the item type 1 twice for any R' e 2. Despite the resulting model not being able to guarantee optimality for this case, it provides feasibility and can be utilized to generate good (if not optimal) patterns, sometimes even better than the patterns currently generated (manually) in the hardboard industry under consideration. If the material is isotropic, then model (34)±(40) as stated above may double count even if the problem is unconstrained. That model can generate good feasible patterns for this case (as illustrated in Section 5) although it does not guarantee optimality. The less general case that the problem is constrained is of minor practical interest and is a topic for future research. In the present paper we are particularly concerned with the case that the material is either isotropic or non-isotropic, and the problem is unconstrained.
4. SOLUTION METHODS
The models (13)±(27) and (34)±(40) can be solved by usual integer programming techniques, such as branch-and-bound and cutting planes methods. For instance, they can be implemented in a modeling language as GAMSÐGeneral Algebraic Modeling System [15] and solved by available branch-and-bound-based solvers such as GAMS/OSL and GAMS/CPLEX. In this section we present two apparently eective methods to solve the models: the ®rst applies dynamic programming techniques and the second is an extension of the implicit enumeration procedure proposed in [1], here called lexicographical method. Dynamic programming has been frequently used to solve cutting and packing problems; see e.g. [16, 17]. 4.1. Dynamic programming Let us consider that L, W, li and wi are integer numbers. If they are not originally integers, we assume that it is always possible to multiply them by a factor such that they may be considered as integers. 4.1.1. First phase. Let ip be the p-th element of the item type set Mj = {i1, i2,. . .,imj}, j $ M' (recall from expression (5) that ip is such that wip = wj), and: f jp(q, x) value of the best combination of the ®rst p item types in Mj, with at most q dierent item types, on a strip of size (x, wj), aip number of type-ip items combined on this strip ( j, q). For each state (q, x) of each stage p, we must take one of the following decisions: (i) stay with the best combination obtained with the ®rst p ÿ 1 item types in Mj (f jp ÿ 1 (q, x)), (ii) stay with the best combination obtained with at most q ÿ 1 dierent item types (f jp(q ÿ 1, x)), or (iii) add aip items of type ip on the strip if feasible (see Fig. 3). The recursive formula for f jp (q, x), j $ M', can be de®ned as:
478
Reinaldo Morabito and Valdir Garcia
Fig. 3. Decisions involved at state (q, x) of stage p of the recursive formula.
f jp
q; x
n
max
aip 1;2;...;bl x c
f
j pÿ1
q; x;
f jp
q ÿ 1; x;
ip
pip aip f jp
q ÿ 1; x ÿ lip aip if if
p X
d
aik R
and
p X
d
aik < R
or;
k1
lmax ÿ lmin eD
o
42
k1
where
lmax max lik jd
aik 1 k1;...;p
lmin min lik jd
aik 1 k1;...;p
with p 1; 2; . . . ; mj q 1; 2; . . . ; r x 1; 2; . . . ; L and L, lip, pip, r, R and D de®ned as before. The value of f jmj (r, L) corresponds to the solution of model (13)±(27), with value Vjr. 4.1.2. Second phase. Let M0 ={( j, r)1, (j, r)2,. . .,( j, r)m0} be the set of strips produced in the ®rst phase, where m0 = am' j = 1 min(mj, R) and (j, r)p be the p-th element of M0. For example, if ( j, r)p=(2,3), it corresponds to strip (2,3) of size (L, w2) and with at most 3 item types. Let us de®ne:
Cutting stock problem in a hardboard industry
479
Fig. 4. Decisions involved at state (q, k, x) of stage p of the recursive formula.
fp(q, k, x) as the value of the best combination of the ®rst p strips in M0, with at most q dierent item types and at most k cuts on a plate of size (L, x), ajrp as the number of strips ( j, r)p combined along the width x of the plate, wjrp the width of strip ( j, r)p (i.e. wjrp = wj). It should be observed that each strip (j, r)p has value Vjrp = f jmj(r, L), according to the ®rst phase, and njrp dierent item types, according to expression (28). For each state (q, k, x) of each stage p, we must take one of the following decisions: (i) stay with the best combination obtained with the ®rst p ÿ 1 strips in M0 ( fp ÿ 1(q, k, x)), (ii) stay with the best combination obtained with at most q ÿ 1 item types ( fp(q ÿ 1, k, x)), (iii) stay with the best combination obtained with at most k ÿ 1 cuts ( fp(q, k ÿ 1, x)), or (iv) add ajrp strips (j, r)p on the plate if feasible (Fig. 4). The recursive formula for fp(q, k, x) can be de®ned as: n max x fp
q; k; x fpÿ1
q; k; x; fp
q ÿ 1; k; x; fp
q; k ÿ 1; x; ajrp 1;2;...;min
bw c;k jrp
Vjrp ajrp fp
q ÿ njrp ; k ÿ ajrp ; x ÿ wjrp ajrp
o
43
with p 1; 2; . . . ; m00 q 1; 2; . . . ; R0 k 1; 2; . . . ; K x 1; 2; . . . ; W and W, K and R' de®ned as before. The value of fm0(R', K, W) corresponds to the solution of model (34)±(40), with value V. Substituting in (41) the optimal values ajrp of (43) (i.e. a*jr)
480
Reinaldo Morabito and Valdir Garcia
together with the respective optimal values aip of (42) (i.e. a*ijr), we may obtain each optimal ai, i $ M. Depending on the values of m', mj, m0, L, W, K, R and R', the recursive formulas (42) and (43) may demand great computational eort (e.g., formulas (42) and (43) need to store O(RL) and O(R'KW) numbers to compute f jmj (R, L) and fm0(R', K, W), and O(mjRL) and O(m0R'KW) numbers to compute a*ijr and a*jr, respectively). These requirements can be reduced by considering in the formulas the normal sets, as in [13] and [17] (or the sets of raster points as in [18]). Let us de®ne X as the set of non-negative linear combinations of the item lengths li along the plate length L: X ai li EL ÿ minflj ; j 2 Mg; ai e0 and integer X xjx i2M
It has been shown [19, 20] that, without loss of generality, the analysis can be limited to the points x $ X instead of considering all guillotine cuts x = 0, . . .,L. Therefore, we may rede®ne f jp(q, x) in (42) as f jp(q, n) where n = 1, . . .,vXv denotes the n-th element of set X. Note that, in this way, the required amount of computer memory of (42) decreases from O(RL) to O(RvXv) numbers (similarly, the required memory of (43) decreases from O(R'KW) to O(R'KvYv), where Y is the corresponding normal set of the widths wi and W).
4.2. Lexicographical method A method that needs relatively small memory requirements to solve models (13)±(27) and (34)±(40) can be simply derived from the implicit enumeration proposed in [1]. This method, here called lexicographical method due to the order on which the variables are enumerated in the tree search, reserves the shallower branchings to the variables with larger ratio value/length. It is easy to show that this is a tree search procedure using a depth-®rst strategy [13]. 4.2.1. First phase. Next we present an algorithm adapted from [1] to solve model (13)±(27) of the ®rst phase, for each strip of size (L, wj) and for r = 1, . . .,min(mj,R). For simplicity, we assume that the ®rst mj item types in M belong to Mj, that is, Mj = {1,2, . . . ,mj} (the notation Vjr, aijr, etc. remains valid). The main modi®cation with respect to the original algorithm occurs in steps 3 and 5. Now, in step 3, the feasibility of the current pattern is veri®ed before updating the pattern, if this is case, as the best one found so far by the search. Besides, in step 5, if the condition holds (see step 5 below), the variable corresponding to type-s items vanishes and therefore, prolongs the search. Lexicographical algorithm Step 1: Sort the item types such that: p1/l1ep2/l2e. . . e pmj/lmj, and de®ne pmj+1 = 0 and lmj+1 = 1. Make Vjr=0. Step 2: Compute P L ÿ iÿ1 k1 lk akjr c; i 2 Mj aijr b li Step 3: Check if the vector (a1jr,a2jr,. . .,amj jr) corresponds to a feasible pattern, that is, if constraints (8)±(11) are satis®ed. If the pattern is feasible and ai $ Mjpiaijr>Vjr, then save this pattern and update Vjr. Step 4: De®ne s = max{ivaijr>0,i $ Mj}. If such s does not exist, then stop: the pattern of value Vjr is optimal. Step 5: Make asjr3aajrÿ1. If s s X X ÿ ÿ li aijr ps1 E Vjr ÿ pi aijr ls1 Lÿ i1
then make asjr = 0 and go back to step 3.
i1
Cutting stock problem in a hardboard industry
481
Table 1. Optimal solutions of 600 random examples grouped into 12 sets Sets 1 2 3 4 5 6 7 8 9 10 11 12
(L, W) (10, (10, (10, (50, (50, (50, (100, (100, (100, (5000, (5000, (5000,
10) 10) 10) 50) 50) 50) 100) 100) 100) 5000) 5000) 5000)
Area utilization V
m 10 20 30 10 20 30 10 20 30 10 20 30
0.9744 1.0 1.0 0.9529 0.9843 0.9956 0.9459 0.9804 0.9865 0.9266 0.9620 0.9722
Step 6: Compute aijr b
Lÿ
Piÿ1
k1 lk akjr
li
c;
Standard deviation
Time1 (sec) (DP)
(0.0425) (0.0) (0.0) (0.0366) (0.0146) (0.0093) (0.0327) (0.0190) (0.0144) (0.0367) (0.0178) (0.0121)
0.32 0.32 0.46 0.48 1.10 1.82 0.82 1.83 3.06 8.70 15.85 23.95
Time2 (sec) (LEX) 0.10 0.44 1.30 0.14 1.22 6.76 0.08 1.44 6.58 0.04 0.46 4.70
Number of items (LEX) 20.10 14.28 15.84 16.80 17.42 16.52 13.08 15.89 15.88 12.22 12.92 13.08
i s 1; s 2; . . . ; mj
and go back to step 3. 4.2.2. Second phase. The algorithm above with minor modi®cations can also be adapted to solve model (34)±(40) of the second phase. Now, in step 3, the feasibility constraints to be veri®ed refer to the model of the second phase. We conjecture that the lexicographical algorithm is exact, since it seems to implicitly enumerate all feasible solutions like its original version in [1]. Moreover, as illustrated in Table 1 of the next section, all 600 optimal values found by dynamic programming were also obtained by the lexicographical algorithm. Nevertheless, a formal proof of its optimality guarantee is beyond the scope of this case-study paper. 5. COMPUTATIONAL RESULTS
In this section we illustrate the application of this methodology initially solving 600 random examples grouped into 12 dierent sets of 50 examples. The plate size (L, W) and the number of item types m were ®xed for each set (see Table 1). The item length and width (li, wi), i = 1, . . .,m, were generated by sampling an integer from the uniform distributions [0.1 L, 0.5 L] and [0.1 W, 0.5 W], respectively. We assumed that the material is non-isotropic and the problem is unconstrained. For simplicity, we de®ned each item value as pi=liwi/LW; therefore, the solution value V of model (34)±(40) corresponds to the percentage utilization of the plate area LW. Both methods, namely the dynamic programming formulas of Section 4.1 (DP) and the lexicographical algorithm of Section 4.2 (LEX), were coded in Pascal language and run on a microcomputer PC-486 DX2. Table 1 summarizes the optimal values obtained for each problem set using the parameters D = 0 mm (no minimum distance), R = 3 holders, K = 3 strips and R' = 5 items. Column `Area utilization' presents the mean utilization V found by either the DP or the LEX method (with the standard deviation in parentheses), columns `Time1' and `Time2' correspond respectively to the mean run-time (in seconds) for the DP and LEX methods, and column `Number of items' presents the mean number of items in the cutting pattern found by the LEX method. It should be noted in Table 1 that, for a given number m of item types, the larger the plate size (L, W), the smaller the mean area utilization V (see e.g. sets 3, 6, 9 and 12). This can be explained in part because a larger plate yields a larger interval [0.1 W, 0.5 W] from which wi is sampled and, therefore, it is less probable to generate item types of the same width to combine them into the same strip. Similarly, for a given (L,W), as m increases, V also increases (see e.g. sets 4, 5 and 6), as we would expect. While the run-time of the DP method depends on m and (L, W), the run-time of the LEX method depends basically on m (see Table 1). Table 2 presents the input data of an example of set 4 and Table 3 presents its optimal solutions for dierent values of the parameters D, R, K and R' (recall that ai is de®ned in (41)). Figure 5 depicts the corresponding optimal cutting patterns. Notice, for instance, the in¯uences
482
Reinaldo Morabito and Valdir Garcia
Fig. 5. Optimal cutting patterns of the example of set 4 for dierent values of the parameters D, R, K and R'.
of: the constraint of the minimum distance among holders (D) comparing rows 1 and 2 of Table 3 (Fig. 5(a) and (b)), the constraint of the maximum number of holders (R) comparing rows 1 and 3 (Fig. 5(a) and (b)), the constraint of the maximum number of cuts (K) comparing rows 1 and 4 (Fig. 5(a) and (c)), and the constraint of the maximum number of item types (R') comparing rows 1 and 5 (Fig. 5(a) and (b)). The models (13)±(27) and (34)±(40) were also coded in the modeling language GAMS [15] and implemented in the microcomputer. The optimal solutions obtained by the solver GAMS/ OSL were the same as Table 3; however, they required more than a couple of minutes to be computed whereas the solutions of Table 3 were found in less than one second. Next we illustrate how this methodology can be applied to solve an actual example derived from a typical one-week planning horizon of the Brazilian hardboard industry. Columns `Item size' and `Demand' of Table 4 present the sizes (li, wi) and quantities bi of m = 29 ordered items which must be cut from stock plates of size (L, W) = (4880, 2130) mm. For simplicity, let us assume that the waste material due to the saw thickness is of second order and can be neglected. We intentionally chose an example with isotropic material (i.e., identical in all directions) and, therefore, both methods of Section 4.1 and 4.2 are approximate (see the discussion at the end of Section 3). The parameters are D = 300 mm, R = 3 holders, K = 3 strips and R' = 5 items (according to Sections 2 and 3) and the number of available plates is suciently large to produce all am i = 1bi=118,850 items during the week. The objective is to determine the best cutting patterns and the number of times that each pattern will be cut to meet the demand and minimize the total waste material (as in problem (P) of Section 3). Table 2. Input data of the example of set 4 (L, W)
m
(li, wi), i = 1,. . ., m
(50, 50)
10
(20, 16), (9, 16), (10, 20), (22, 14), (21, 16), (22, 23), (15, 14), (11, 13), (5, 14), (17, 22)
Table 3. Optimal solutions of the example of set 4 for dierent values of the parameters D, R, K and R' D
R
K
R'
0 13 0 0 0
3 3 2 3 3
3 3 3 2 3
5 5 5 5 4
Area utilization V 1.0 0.9936 0.9936 0.8096 0.9936
(ai, i = 1,. . .,m) (1, (2, (2, (0, (2,
1, 1, 1, 0, 1,
5, 5, 5, 0, 5,
0, 0, 0, 0, 0,
1, 0, 0, 0, 0,
0, 0, 0, 4, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
10, 0) 10, 0) 10, 0) 0, 0) 10, 0)
Cutting stock problem in a hardboard industry
483
Table 4. Item sizes (li, wi) and quantities bi of the actual example and the corresponding item quantities generated by the operator (b'i) and the present model (b0i ) Item i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Total
Item size (li, wi) (mm)
Operator b'i (items)
Demand bi (items)
(1580, 768) (1575, 1232) (1226, 768) (1073, 768) (2451, 1226) (870, 615) (1073, 615) (1580, 1073) (1226, 921) (1073, 921) (1073, 1073) (1450, 921) (1580, 921) (1226, 615) (1580, 1226) (1580, 615) (1226, 1226) (1880, 1073) (1220, 1073) (1450, 1226) (2045, 622) (1880, 1226) (1880, 921) (1450, 768) (1575, 1226) (2045, 825) (1226, 1073) (2045, 724) (2045, 775)
7200 10,000 2000 3000 1050 4000 6000 4000 3600 4000 1250 1000 20,000 3000 6000 6000 4200 500 600 2000 750 400 200 4000 10,400 8450 2100 1050 2100 118,850
Model b0i =ajaijxj (items)
b0i ÿbi bi
7200 10,002 2001 3011 1050 4000 6266 3999 5601 2900 1250 1000 20,000 2999 6000 6000 4524 500 600 1841 750 399 133 4074 14,100 8450 2100 1050 2100 123,900
b00i ÿbi bi
7200 9999 1999 2999 1050 3997 5998 4000 3602 4002 1249 999 19,995 3000 6000 6000 4200 499 600 2000 752 399 200 4000 10,398 8450 2100 1050 2101 118,838
0.02% 0.05% 0.37% 4.43% ÿ0.03% 55.58% ÿ27.50%
ÿ0.03% 7.71% ÿ7.95% ÿ0.25% ÿ33.50% 1.85% 35.57%
4.25%
ÿ0.01% ÿ0.05 ÿ0.03% ÿ0.08% ÿ0.03% 0.06% 0.05% ÿ0.08% ÿ0.10% ÿ0.03%
ÿ0.20% 0.27% ÿ0.25% ÿ0.02%
0.05% ÿ0.01%
In order to control the amount of waste material, the production manager set a threshold of 15% of trim-loss for all ordered items. Under this limitation, the operator of the samba saw was unable to ®nd a `feasible' solution to this particular example. Based on local heuristics and experience, the best solution found by the operator had a trim-loss of 12.7% and yielded less than the original demand of items 10, 20 and 23 (see b'i in column `Operator' of Table 4 and its
Table 5. Solution of the actual example Pattern j 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Total
xj (plates) 2400 926 833 562 407 571 100 294 387 392 853 133 1739 164 892 488 479 183 150 495 117 206 233 210 253 3333 1143 182 83 18,208
cj LW
(a1j, a2j,. . . ,amj) (items) (3, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0, (0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 6, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 6, 0, 0, 0, 0, 3, 3, 0, 0, 0, 3, 0, 3, 0, 3, 0, 0,
0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0,
0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0) 2) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 3)
(%)
9.25% 13.60% 8.83% 10.13% 15.86% 8.24% 8.25% 5.53% 8.97% 10.46% 5.61% 14.07% 16.00% 17.72% 11.63% 15.92% 10.66% 8.11% 7.63% 16.22% 5.47% 15.81% 8.96% 4.31% 8.45% 11.53% 7.95% 15.98% 5.31% 11.00%
484
Reinaldo Morabito and Valdir Garcia
deviation to bi). Moreover, that solution resulted in an overproduction of items 7, 9, 17, 24 and 25, and turned out additional inventory holding costs. The last two columns of Table 4 show the number of type-i items generated by the present model (see b0i in column `Model') and its deviation to bi (note that b0i is very close to bi). Each quantity b0i =ajaijxj was obtained rounding o the solution of the LP-relaxation of problem (P) (recall that xj is the number of times that pattern j is cut in the LP-solution, and aij is the number of type-i items in pattern j). To generate a cutting pattern at each simplex iteration, we utilized the lexicographical method since its computational performance is better than dynamic programming for this particular size of example (see sets (10)±(12) of Table 1). Table 5 presents the rounded values xj found after 79 simplex iterations in less than one minute of run-time, together with the m basic cutting patterns generated. It is worth noting that this solution requires 18208 plates (189261.2 squared meters) and has a waste material of 11.0% (20812.0 squared meters) corresponding to savings of almost 2% compared with the solution obtained by the industry. Relaxing the constraints (15)±(25) and (36)±(38) of models (13)±(27) and (34)±(40), we obtain a lower bound of 10.99% (20,800.3 squared meters) for the optimal waste material, which is very close (less than 0.1%) to the the value of Table 5. 6. CONCLUSIONS AND PERSPECTIVES
In this paper we analysed a particular cutting problem found in a Brazilian hardboard industry. After being produced, the hardboards (objects) are cut by an automated machine called a samba saw which has usual as well as unusual cutting constraints. The problem is to determine the best cutting patterns as a function of the ordered items so that the overall waste material is minimized. Due to the actual production scale of the samba saw, small percentage waste reductions of the cutting patterns may result in substantial savings for the industry. In spite of the literature having dierent approaches to the cutting problem, the present problem involves constraints which make their direct application dicult. We showed that the hardboard cutting pattern generation can be modeled on two phases, each one as an integer program, and presented two alternative methods to solve them: the ®rst is based on dynamic programming techniques and the second is a simple extension of the implicit enumeration procedure proposed in [1]. We believe that this approach may also be useful to deal with cutting problems in other industrial processes involving constraints similar to those analysed here. In order to illustrate the performance of the two methods, we implemented them in a microcomputer and solved 600 random examples. Using any of these methods to generate cutting patterns to problem (P) (Section 3), we obtain a solution to the problem of determining the best patterns to meet the demand. An actual problem derived from the hardboard industry was solved to depict the bene®ts of this approach in comparison with the solution implemented by the industry. A perspective of this work is to incorporate into the approach a tradeo analysis among order due dates, work-in-process, machine setup time, order speci®cations and waste material. The extension of the present approach to situations where material is isotropic and the problem constrained (Section 3) is also in our research agenda. AcknowledgementsÐThe authors thank Profs Marcos Arenales, Guntram Scheithauer, HoraÂcio Yanasse and the anonymous referees for their helpful comments. This research was partially supported by CNPq (grants ]522973/95-7 and ]680082/95-6) and FAPESP (grant ]9522-0).
REFERENCES 1. Gilmore, P. and Gomory, R., A linear programming approach to the cutting-stock problem II. Opr. Res., 1963, 11, 863±888. 2. Dyckho, H., A typology of cutting and packing problems. Eur. J. Opl. Res., 1990, 44, 145±159. 3. Dowsland, K. and Dowsland, W., Packing problems. Eur. J. Opl. Res., 1992, 56, 2±14. 4. Dyckho, H. and Finke, U., Cutting and Packing in Production and Distribution: Typology and Bibliography, Springler-Verlag Co, Heildelberg, 1992. 5. Sweeney, P. and Paternoster, E., Cutting and packing problems: A categorized, application-oriented research bibliography. J. Opl. Res. Soc., 1992, 43, 691±706. 6. Bischo, E. and Waescher, G., Special issue on cutting and packing. Eur. J. Opl. Res., 1995, 84(3), 503±712.
Cutting stock problem in a hardboard industry
485
7. Garcia, V., Otimizac° aÄo na gerac° aÄo de padroÄes de corte de chapas de ®bra de madeira reconstituõÂ da, Dissertation, Departamento de Engenharia de Produc° aÄo, Universidade Federal de SaÄo Carlos, Brazil, 1996. 8. Gilmore, P. and Gomory, R., A linear programming approach to the cutting stock problem. Opr. Res., 1961, 9, 849±859. 9. Gilmore, P. and Gomory, R., Multistage cutting stock problems of two and more dimensions. Opr. Res, 1965, 14, 94±120. 10. Hinxman, A., The trim-loss and assortment problems: A survey. Eur. J. Opl. Res., 1980, 5, 8±18. 11. Zissimopoulos, V., Heuristic methods for solving (un)constrained two-dimensional cutting stock problems. Meth. Opl. Res., 1985, 49, 345±357. 12. Hi®, M., The DH/KD algorithm: A hybrid approach for unconstrained two-dimensional cutting problems. Eur. J. Opl. Res., 1997, 97(1), 41±52. 13. Morabito, R. and Arenales, M. N., Performance of two heuristics for solving large scale two-dimensional guillotine cutting problems. INFOR, 1995, 33(2), 145±155. 14. Morabito, R. and Arenales, M. N., Staged and constrained two-dimensional guillotine cutting problems: An AND/ OR-graph approach. Eur. J. Opl. Res., 1996, 94(3), 548±560. 15. Brooke, A., Kendrick, D. and Meeraus, A., GAMS: A User's Guide, Release 2.25. The Scienti®c Press, 1992. 16. Gilmore, P. and Gomory, R., The theory and computation of knapsack functions. Opr. Res., 1966, 14, 1045±1074. 17. Beasley, J., Algorithms for unconstrained two-dimensional guillotine cutting. J. Opl. Res. Soc., 1985, 36, 297±306. 18. Scheithauer, G. and Terno, J., The G4 heuristic for the pallet loading problem. J. Opl. Res. Soc., 1996, 47, 511±522. 19. Herz, J., Recursive computational procedure for two-dimensional stock cutting. IBM J. Res. Develop., 1972, 16, 462±469. 20. Christo®des, N. and Whitlock, C., An algorithm for two-dimensional cutting problems. Opr. Res., 1997, 25, 30±44.