A Heuristic Dynamic Programming Algorithm for 2D Unconstrained Guillotine Cutting XIANG SONGa,b,c, CHENG-BIN CHUc, YI-YONG NIEa Department of CIMS a Shenyang Institute of Automation, Chinese Academy of Sciences b School of Graduate, Chinese Academy of Sciences Lab. 2, 114, Nanta Street, Shenyang, Liaoning CHINA Département GSI c Université de Technologie de Troyes 12 rue Marie Curie-BP 2060, 10010 Troyes Cedex FRANCE Abstract:-In this paper, a heuristic dynamic-programming recursion is proposed for solving unconstrained 2D knapsack problem efficiently. The algorithm we propose is an incompletely enumerative method, in which some intricate cutting patterns may not be enumerated. Compared with the traditional dynamic-programming, the algorithm gives a high percentage of optimal solutions (93%) with a much lower computational complexity. Some theoretical analyses for the algorithm are performed. Computational results are given for small and medium-sized problems. Key-Words:-Heuristic dynamic programming; knapsack problem; The orientation of the pieces is considered to be fixed, i.e. a piece of length l and width w is not the same as a piece of length w and width l The number of stages in which the cuts are made is not limited, which is usually called general cutting in the literature. All sizes l i , wi for i 1,2,, m are assumed integers and therefore the cuts on the rectangles are to be made in integer steps. Mathematical description of this problem is usually as follows, 1 Introduction Classical 2D knapsack problem (KP), expressed by words, is as follows. There are in total m types of ordered rectangular sheets. Positive integers li , wi and ci i 1,2,, m are the length, width and value of the i th type of the ordered rectangular sheets, respectively. Given a standard stock rectangular sheet R with length L and width W ( i 1,2,..., N ), the problem consists of finding a feasible cutting pattern so that the total value of the ordered rectangular sheets cut out from the stock sheet is maximized. Let M 1,2,, m be the index set. In this paper we consider the following restrictions on the cutting pattern that usually appear in real-life situations. Only guillotine cuts are allowed. That is, a rectangle is cut from one edge of the rectangle to the opposite edge and the cutting line is parallel to the two remaining edges. m max c s i 1 i i m s.t. l w s i 1 i i i LW , s Z m where si denotes the number of times the piece i appears in the pattern, s s1 , s2 ,, sm represents a feasible cutting pattern and Z m is a m dimensional non-negative integer vector. 1 The 2DKP is the sub-problem of many complex optimization problems, such as 2D cutting stock problem. As is proved, optimal solutions to integer cutting stock problems can be found only for values of m smaller than typically found in practices, approximate procedures represent the only feasible approach to solving this type of problem. Almost all LP (linear programming) based procedures for solving cutting stock problems can be traced back to Gilmore and Gomory (1961,1963). They described how the next pattern to enter the LP basis could be found by solving an associated knapsack problem (KP). This made it possible to solve the trim loss minimization problem by liner programming without enumerating every feasible cutting pattern. Since then, much of related papers focused primarily on pattern generation. The approaches proposed in the literature may be classified into three categories: 1. Exact algorithms: e.g. dynamic programming [2,7] and branch & bound [5,9] . These algorithms can be used to produce optimal solutions. 2. Approximate approaches: If exact algorithm cannot be used, the problem may be solved approximately. People have developed various kinds of approximate algorithms, e.g. some tree search algorithms [4,10,11], And/Or graph approaches [10,11], Wang’s algorithm[11] and other heuristics. 3. Probabilistic convergence algorithms: In recent years, some authors managed to exert the intelligent algorithms in solving cutting problems. We call them probabilistic convergence algorithms because the solutions are convergent with probability one to the optimal solution. The wellknown methods of this category are tabu search [1], genetic algorithm [8], simulated annealing [6] and incompletely enumerative method [3, 12]. In this paper, we propose a heuristic dynamic programming algorithm to solve this 2DKP approximately. Compared with the traditional dynamic programming method, the algorithm gives a high percentage of optimal solutions (93%) with a much lower computational complexity Om L W . In section 2, the algorithm is described in details. In Section 3, the worst case analysis of this algorithm is presented. Section 4 contains the computational study and the discussion about the result. Finally, in Section 5 we present the conclusions. 2 The Algorithm 2.1 Traditional dynamic-programming recursion Among the exact algorithms, Gilmore and Gomory(1966) presented a dynamic-programming recursion for staged two-dimensional cutting. Beasley has noted that there is an error in that paper relating to the dynamic-programming recursion given for staged two-dimensional cutting. He develops a correct dynamic-programming recursion for the staged two-dimensional cutting problem, which involves On L W L W operations, where n is the maximum number of the stages that an ordered rectangular sheet needs to be cut out. Then he show the recursion can be modified so that the computational complexity can be lowered down to On L W L W , where m L x x li ai ,1 x L min li , ai 0 and integer , i 1,, m L i 1 , L the size of the set L . m W y y wi bi ,1 y W min wi , bi 0 and integer , i 1,, m W i 1 , W the size of the set W . But he didn’t analyze the possible values of L and W , which are critical to the computational complexity of the problem. We are to discuss this issue in our paper. 2.2 Heuristic algorithm dynamic-programming The algorithm we propose, called the Heuristic Dynamic Programming Algorithm (HDP), is an incompletely enumerative method, in which some intricate cutting patterns may not be enumerated. The HDP algorithm finds a local optimum (which is a global optimum in many cases). Correlated concepts are introduced in the next section. 2 2.2.1 Twice guillotine cut We now define the cutting types which are used to determine cutting patterns. In all the definitions guillotine cuts are implicit. Definition 1 (normalized cut and normalized cutting pattern). A cutting pattern is normalized if any cut in that pattern can be moved until both the left-hand edge and the bottom edge of all pieces in the pattern are adjacent to a cut (See Fig. 1). A cut is normalized if it generates normalized cutting pattern. We define that the cuts mentioned in this paper are all normalized cuts. Definition 2 (twice guillotine cut and twice cutting type). A cut is a twice guillotine cut if it produces an ordered rectangular sheet i (i 1,, m) at the bottom left of the stock sheet with two times of guillotine cut (See Fig. 2). A cutting pattern is of twice cutting type if it is obtained by successive twice guillotine cuts. We see that only two combinatorial conditions can be obtained with twice guillotine cut for a stock rectangular sheet of size x, y . The first condition (Fig. 2. (a)) is obtained by first a horizontal guillotine cut, second a vertical cut and the second condition (Fig. 2. (b)) is obtained by first a vertical guillotine cut then a horizontal cut. We found in a large number of numerical experiments that most of the optimal cutting patterns are of twice cutting type. Thus a heuristic dynamic program recursion was developed to search optimal values in confined spaces. y y x x Non-normalized cutting pattern Normalized cutting Fig.1. Normalized cutting pattern (Shaded area is the wastage) A y y i B C D i x x y Fig. 2. Two combinatorial conditions of the rectangular pieces i 1,2,, m , x xi , y y . Then s1 s 2 s I i and s1 s 2 s I i (vector s I i is an m-dimensional unit vector, in which the i -th entry equals to 1) are the two feasible solutions for the stock rectangular sheet of size x, y . Thus we obtain F x , y maxci F xi , y yi F x xi , y , ci F x xi , yi F x , y yi : i 1,2, , m , x xi , y yi (2) On the other hand, if s is the optimal cutting pattern of twice cutting type for the stock rectangular sheet of size x, y , x min li , y min wi and there exists an iM iM ordered rectangular sheet i i 1,2,, m that satisfies x xi , y y i , which can be cut out at the bottom left of the stock rectangular sheet of size x, y , we see that with twice guillotine cut, s s I is i a feasible cutting pattern for the combination of the stock rectangular sheet of size x, y y i and x xi , y or xi , y yi and x xi , y . Thus we obtain: 2.2.2 Heuristic dynamic program recursion Let F x, y represents optimal value for the cutting patterns of twice cutting type in a stock rectangular sheet of size x, y , the following theorems are proved as follows: Theorem 1 F x , y maxci F xi , y yi F x xi , y , maxF xi , y yi F x xi , y ,F x xi , yi F x , y yi F x , y ci i 1,2, , m , x xi , y y (3) The proof is concluded by applying relation (2) and (3) together. Note that the values of x and y belongs to the set L and W respectively, which has been analyzed in the literature [2]. □ Theorem 2. The complexity of the recursion is Om L W . Proof. For each given ( x, y) x L , y W , ci F x xi , yi F x , y yi : i 1,2, , m , x xi , y yi x L, y W (1), where x i , y i denote the length and width of the i -th ordered rectangular sheet respectively. Proof. Let s1 , s 2 , s 3 and s 4 represent the optimal cutting patterns of twice cutting type in a stock rectangular sheet of size x, y y i , x xi , y , xi , y yi and x xi , y respectively, where recursion (1) needs O m times of operation. Thus the total computation time of the above mentioned recursion is O(m W L ) . □ 3 Theorem 3. Let largest integer el ew j 1 j 1 L C j m 1, j , W C j m 1, j C j m 1, j size x, y . And let Q( x, y) V , H store the two combinatorial conditions in Fig. 2. (a) and (b). Let l min min li i 1,2, , m, wmin min wi i 1,2, , m, the algorithm is as follows: Step 1 If x l min , or y wmin , set F x, y 0 , Gx, y 0 , Q ( x, y ) 0 . Go to step 2. Step 2 Initialization. Set i 1 , x l min 1, y wmin , F x, y 0 , Gx, y 0 , Q ( x, y ) 0 and Z 0 to store optimal solution for cutting patterns of twice cutting type. Step 3 Set x x span( x), y y . For each i i M , compute L W el , ew represent the lmin wmin L less than , W . We have l min wmin m 1 ! . j m 1 ! , where Proof. The problem to compute L has the same structure with the problem to compute the number el of terms in the polynomial l j 1 1 l2 lm j . In fact, each term in polynomial l1 l2 lm represents a possible combination of lengths of j ordered rectangular sheets. For example, the item l1 l2j 1 corresponds to the combination l1 j 1 l2 . To obtain all the possible combinations of l1 , l 2 , , l m j m that satisfy l i i i 1 taken from L i 0 ,int eger , 1 to el in the max ci F xi , y yi F x xi , y ,ci F ( x xi , yi ) Z F x , y yi , if there exist xi x , yi y , 0, x minxi , y minyi If Z F x, y , set F x, y Z , Gx, y i , j should be V , if Z ci F xi , y yi F x xi , y . Qx, y H , if Z ci F ( x xi , yi ) F x, y yi polynomial If x L , go to step 3, else go to step 4. Step 4 Set y y span( y), x lmin 1 . If y W , set F ( x, y) 0 go to step 3, else return. In the above mentioned procedure, span (x) is a function, which returns the span between the current value x x L to the next one within the set l1 l2 lm j correspondingly. The condition that j el will not be considered, because under this m condition we have l i 1 i i L i 0 ,int eger according to the definition of el . According to the knowledge of combinatorial mathematics, for the given positive integer j and m there are in total C ( j m 1, j ) number of terms in the polynomial l1 l 2 l m j . Thus the total number of terms of the polynomial el l j 1 1 l2 lm j L . It is the same for span ( y ) . The heuristic dynamic programming algorithm finds the optimal value F L, W in an orderly way. To find the corresponding cutting pattern, we must use heuristic dynamic programming method again in a reverse way. The procedure is as follows: Step 0 Initialization. Let S R, the list of rectangles still to be cut. Initially, the original rectangle R = L, W . Let P , the set of pieces el is C j m 1, j . We obtain that j 1 el L C j m 1, j and the proof is the same j 1 for W . □ already cut. Let cT 0, the total value of pieces cut. Step 1 While S , the set S of rectangles still to be cut is ordered by increasing area. Step 2 If S , then stop, else take the smallest rectangle of S , Rk Lk , Wk and set S S Rk . If or or Lk min i l i , Wk min i wi Lk Wk min i l i wi , then go to step 2, else go to step 3. 2.2.3 Main steps of the heuristic algorithm Let Gx , y i* represent the ordered rectangular sheet cut out at the bottom left of the stock rectangular sheet in the optimal cutting patterns of twice cutting type in a stock rectangular sheet of 4 Step 3 For each piece i , i 1,2, , m , if l i Lk , wi Wk , then consider the consequences of cutting the piece i at the bottom left hand corner of R k :Let v1 F l i , Wk wi , v 2 F Lk l i , Wk , obtained by a first vertical guillotine cut and h1 F Lk l i , wi , h2 F Lk , Wk wi , obtained by a first horizontal guillotine cut, compute T i = ci max v1 v 2 , h1 h2 , else set Ti 0 . Step 4 For the piece j , such that T j max i Ti . If In this section, we study performance bounds for the HDP algorithm which deals with minimizing waste unconstraint 2DKP. In this case the value c i attributed to each piece is the surface li wi and thereby maximizing the total value is equivalent to minimizing the waste. 3.1 Intricate structure First we analyze the structure of the cutting patterns that can’t be obtained by successive twice guillotine cuts. The following definitions are given: Definition 4 (waste rectangle and trip cut). A newly generated rectangle, which is too small to contain any ordered rectangular sheet, is called a waste rectangle. If one of the two new rectangles generated by a guillotine cut is a waste rectangle, we call this guillotine cut a trip cut. Definition 5 (0-cut) If for a given stock rectangular sheet of size x, y , an ordered rectangular sheet can be produced by only one guillotine cut, we say there exists a 0-cut so that we can say that this ordered rectangular sheet is cut out with two times of guillotine cuts. Definition 6 (Intricate cutting pattern): For a given cutting pattern, the smaller rectangular sheets are generated successively with guillotine cuts. If for one of the smaller rectangular sheets of size x, y , which is not a waste sheet, no ordered rectangular sheet can be cut out with twice guillotine cut, we can say that this cutting pattern is an intricate cutting pattern, which can’t be enumerated with HDP algorithm. Definition 7 (Intricate structure): For a given rectangular sheets of size x, y , suppose the first guillotine cut parallels to y-axis. Then there exist a series of guillotine cuts parallel to the y-axis and divide the stock rectangular sheet x, y into several strips with the same width y . Within each strip, T j 0 , then cut piece j at the bottom left hand corner of R k and set P P j , cT cT c j . If v1 v 2 h1 h2 , then else S S l i , Wk wi , Lk l i , Wk , S S Lk l i , wi , Lk , Wk wi . If T j 0 , then rectangle R k is waste. Go to step 1. It is clear that the computational complexity of this procedure is O(k m) , LW k max iI li wi where denotes the maximum number of ordered rectangular sheets that can appear in the cutting pattern. Thus the general computational complexity of the algorithm is Omaxk m, L W m . 3 Worst Case Analysis Although the HDP algorithm finds the optimal solution for the cutting patterns of twice guillotine type, the solution is not always optimal for the general cutting pattern. That is because some of the combinatorial condition (See Fig. 3) for a stock rectangular sheet of size x, y may not be enumerated with twice guillotine cut. As in Fig. 3, no ordered rectangular sheets (marked with sequential numbers) can be cut out with two times of guillotine cut. 6 5 3 Ap Bq y 1 y 4 2 Ai 1 Ai Bj Ai 2 B j 1 A1 x B1 xA Fig. 3. The combinatorial condition not enumerated (Shaded area is the wastage.) B j2 x Fig.4. Intricate structure 5 there is a series of guillotine cuts parallel to x-axis and divide the strips into a series of rectangles. Thus we obtain rectangles A1 , A2 , , Ap , B , B 1 Case 2.1: If within the series of rectangles, there is one, say rectangle A1 , in which no vertical guillotine cuts is available (Fig. 4.4), rectangle A1 must be an ordered rectangular sheet, which can be cut out with twice guillotine cut. Case 2.2: In the condition that the cutting pattern contains the series of rectangles A1 , A2 , , Ap , , …, as shown in Fig. 4. We call the 2 , , Bq structure, which contains above mentioned rectangles and within each rectangle there is at least one guillotine cut parallel to y-axis, an intricate structure. To judge if a cutting pattern is an intricate cutting pattern, we give the theorem as follows: Theorem 4 Only the cutting patterns that contain the intricate structure are intricate cutting patterns. Proof For any given rectangular sheets of size x, y in a given A B cutting pattern, we y only discuss the case that the first guillotine x cut is paralleled to yFig.4. 1 axis, the discussion is the same for the case that the first guillotine cut is paralleled to x-axis. Suppose that there exist a series of guillotine cuts parallel to the y-axis (See Fig. 4.1. Trip cuts are not included) and divide the stock rectangular sheet x, y into several strips A, B , , with the same width y . There are several cases for the following cuts. Case 1: If there exists a strip A that within it no horizontal cut is available (Fig. 4.2 a) or only a trip cut is available (Fig. 4.2 b, shaded area is a waste rectangle.), the strip A is (or contains) an ordered rectangular sheet, which can be cut out with twice guillotine cut obviously. Case 2: If within each strip there is at least one horizontal cut, which is not a trip cut, there must be series of rectangles A1 , A2 , , Ap , B 1 , B2 , , Bq , , B A B y Bq Ai Bj A1 B1 x Fig.4. 3 Ap y Bq Ai Bj A1 B1 x Fig.4. 4 Ap y , B2 , , Bq , Bq Ai Bj A1 B1 and within each x rectangle there is at Fig.4. 5 least one vertical guillotine cut (See Fig.4 and 4.5. It is obvious that within strip A , there must be a rectangle Ai , which contains at least two stock rectangular sheets Ai1 and Ai2 , which are not waste rectangles, according to the definition of normal cuts. The condition is the same for other strips), we see there is no ordered rectangular sheet that can be cut out with twice guillotine cut. Only in this case can we say that the given cutting pattern is an intricate cutting pattern. Thus we conclude only the cutting patterns that contain the intricate structure are intricate cutting patterns. ٱ cut out (See Fig. 4.3) and each rectangle contains at least one ordered rectangular sheet. y 1 Ap A 3.2 Approximation ratio Now we prove the approximation ratio of the HDP algorithm as follows: Let OPT I denotes the optimal solution of problem I and HDP I the approximate solution provided by HDP algorithm. We have: Theorem 5 If e max el , e w is equal to 1, 2 or 3, OPT ( I ) HDP ( I ) . B x x Fig.4. 2 a Fig.4. 2 b 6 Proof. Given any four rectangular sheets with length l a , lb , l c , l d and let l a be the minimum length second horizontal guillotine cuts. Within Ai , we suppose that l Ai 1 l Ai 2 , then l A 1 l A 1 x 1 L of the four, we have that l a l b l c l d 4l a . For the case e 4 , we have 4l a L . Thus l a lb lc l d L is obtained. In this case, the rectangle Ai1 , Ai2 , B j1 and B j2 can’t exist together in one stock rectangular sheet. That is the intricate structure can’t be contained in any cutting pattern. So the optimal cutting pattern must be of twice cutting type. The optimal solution found with HDP algorithm is the optimal solution. Thus we obtain OPT ( I ) HDP ( I ) . ٱ Theorem 6 If ei1 L li and ei 2 W wi , i 1,, m , we have that 2 If w A 1 y 1 W , we get a piece Ai 1 that can fit 2 i1 2 the rectangle L, W two times in the length and 2 times in the height. Thus by theorem 6, is proved. If wA 1 y , we have i1 xA 2 1 x 2 wA1 HDP ( I ) 4 OPT I 9 1 1 y W. 2 2 And has been supposed, we have that 1 1 x L . So A1 can fit the rectangle 2 2 L, W two times in the length and 2 times in the l A1 x A Proof. i M , we have that ei1 1 li L ei1 li and ei 2 1 wi W ei 2 wi . So ei1 1 ei 2 1 li wi L W ei1 ei 2 li wi . And we know that the combinatorial condition that only one kind of ordered rectangular sheet is available in the cutting pattern can be enumerated by HDP algorithm. So we have: HDP ( I ) max ei1 ei 2 li wi i 1,2,, m. And OPT ( I ) LW clearly, so height. With theorem 6, HDP ( I ) 4 is proved OPT I 9 also. For e 3 , HDP ( I ) 1 has been proved in Theorem OPT I 5, thus Theorem 7 is proved. ٱ 4 Computational Results To analyze the effectiveness of this algorithm, the worst case analysis is not enough. Some computational experiments must be made. We generate the input-data randomly under different combinations of parameters m, e, (See table 1). The number 1…6 identify the given m and e as defined in Table1. And for each combination of m and e , 100 instances were generated with a uniform distribution on some ranges given below. For a given length L 200 and width W 100 of stock rectangular sheet, the length l i and width wi of ordered rectangular sheet e e l w HDP ( I ) max i1 i 2 i i i 1, , m OPT I L W ٱ Proof. By considering a normal optimal cutting pattern we prove that, for e 3 , the intricate structure can be contained in the cutting pattern. Thus the solution found with HDP algorithm may not be a global optimum. In the case that the optimal solution contains the structure in Fig. 4, we suppose that x A 2 is gotten. ei1 ei 2 HDP ( I ) max i 1,, m . OPT I e 1 e 1 i2 i1 ei 1 ei 2 li wi max i 1, ,m e 1 e 1 l w i 1 i 2 i i . ei 1 ei 2 max i 1, , m ei 1 1 ei 2 1 HDP ( I ) 4 Theorem 7 . OPT I 9 2 i1 W W L L i i 1,2,, m are in , and , . The e 2 e 2 required quantities of the ordered rectangular sheets are not limited for the problem studied is an unconstrained knapsack problem. And the value ci li wi is supposed for convenience. 1 x be the 2 first guillotine cut, say vertical, in an optimal pattern, which divides the initial stock sheet x, y into two strips. Then rectangular sheets A1 , A2 , , A p , B1 , B2 , , Bq are cut out with 7 No. m e Opt. Sol. (%) Av. Appr. ratio Min. Appr. ratio Table 1. Parameters selection 2 3 5 10 20 10 1 5 10 4 10 20 5 20 10 Table 2. The performance of the HDP algorithm L 200, W 100 1 2 3 4 5 6 99% 90% 97% 88% 95% 88% 0.999 0.994 0.992 0.996 0.997 0.999 0.999 0.990 0.977 0.992 0.988 0.997 6 20 20 Ave. 93% 0.996 0.991 computational complexity is much lower and a high percentage of optimal solutions (93%) can be achieved. Thus with this algorithm, some problem with parameters L , W not too large can be solved effectively with HDP algorithm. Finally, the algorithm can easily be used for solving general Cutting Stock problems. In Table 2, we can see the performance of the HDP algorithm by referring to the percentage of optimal solutions, the average approximation ratio and the minimum ratio. The average approximation ratio is calculated without considering the cases that the solution is optimal. The knapsack problems were solved exactly by a dynamic programming algorithm. We see that 93% of the instances are optimally solved, whereas the totality of the instances was solved very close to the optimum. The experimental minimum approximation ratio was found to be 0.991 and the average one 0.996. Besides, we see that the selection of parameter e influence the results greatly. With the same parameter m , the larger the parameter e is, the lower the approximation ratio will be. And from the theorem 3, we also know that the larger the parameter e is, the larger the parameters W or L will be, thus adds up to the computing time. So this algorithm fits for the condition that the minimum length or width of the ordered rectangular sheet is relatively large to that of the stock rectangular sheet. References : [1] Alvarez-Valdés, R., Parajón, A. et al, 2002. A Tabu Search Algorithm for Large-Scale Guillotine (un)Constrained Two-Dimensional Cutting Problems, Computers & Operations Research, Vol. 29, Issue 7, pp 925-947. [2] Beasley, J.E., 1985. Algorithms for Unconstrained Two-dimensional Guillotine Cutting. Journal of Operational Research Society, Vol. 36, No. 4, pp 297-306. [3] Balas, E. and Zemel, E., 1980. An Algorithm for Large Zero-One Knapsack Problem, Operations Research, Vol. 28, pp 1130-1154. [4] Christofides, N. and Whitlock, C., 1977. An Algorithm for Two-Dimensional Cutting Problems, Operational Research, Vol. 25, pp 30-44. [5] Cung,V. D. and Hifi, M. et al, 2000. Constrained Two-Dimensional Cutting Stock Problems a Best-First Branch-and-Bound Algorithm, International Transactions in Operational Research, Vol.7, pp 185-210. [6] Dowsland, K.A., 1993. Some Experiments with Simulated Annealing Techniques for Packing Problems, European Journal of Operational Research, Vol. 68, pp 389-399. [7] Gilmore, P.C. and Gomory, R.E., 1966. The Theory and Computation of Knapsack 5 Conclusion In this paper, a heuristic dynamic-programming recursion is presented for solving unconstrained 2D cutting stock problem approximately. The parameters L , W that effect the computing time are analyzed and we have shown that this algorithm 4 has approximation ratio equal to . Computational 9 results for a large number of randomly generated problems are given. We see that with the heuristic dynamic-programming algorithm, the 8 Functions, Operations Research, Vol. 14, pp 1045-1074. [8] Gomez, A. and D de la Fuente, 2000. Resolution of Strip-Packing Problems with Genetic Algorithms, Journal of the Operational Research Society, Vol. 51, pp 1289-1295. [9] Mhand Hifi, Ouafi, R., 1998. A Best-First Branch-and-Bound Algorithm for Orthogonal Rectangular Packing, International Transactions in Operational Research, Vol. 5, pp 345-356. [10] Morabito, R.N. and Arenales, M.N., 1992. An and-or-Graph Approach for Two-Dimensional Cutting Problems, European Journal of Operational Research. Vol. 58, pp 263-271. [11] Morabito, R.N. and Arenales, M.N., 1996. Staged and Constrained Two-Dimensional Guillotine Cutting Problems: An AND/ORGraph Approach, European Journal of Operational Research, Vol. 94, pp 548-560. [12] Nie, Y.Y. and Song, X. et al, 2002. Incompletely Enumerative Solution for 1D Cutting-Stock Problem, Far East J. Math. Sci (FJMS), Vol. 5, No.1, pp 25-46. [13] Wang, P.Y., 1983. Two Algorithms for Constrained Two-Dimensional Cutting Stock Problems, Operations Research, Vol. 31, pp 573-586. 9
© Copyright 2026 Paperzz