A Binary Search Heuristic Algorithm Based on ... - Semantic Scholar

6 downloads 0 Views 769KB Size Report
Jun 6, 2012 - encasement, objects of different sizes have to be packed as many as possible into a large container. In newspapers, advertisements and ...
INFORMS Journal on Computing Vol. 25, No. 2, Spring 2013, pp. 332–345 ISSN 1091-9856 (print) — ISSN 1526-5528 (online)

http://dx.doi.org/10.1287/ijoc.1120.0505 © 2013 INFORMS

A Binary Search Heuristic Algorithm Based on Randomized Local Search for the Rectangular Strip-Packing Problem Defu Zhang Department of Computer Science, Xiamen University, Xiamen, 361005, China, [email protected]

Lijun Wei, Stephen C. H. Leung Department of Management Sciences, City University of Hong Kong, Kowloon, Hong Kong {[email protected], [email protected]}

Qingshan Chen Department of Computer Science, Xiamen University, Xiamen, 361005, China, [email protected]

T

his paper presents a binary search heuristic algorithm for the rectangular strip-packing problem. The problem is to pack a number of rectangles into a sheet of given width and infinite height so as to minimize the required height. We first transform this optimization problem into a decision problem. A least-waste-first strategy and a minimal-inflexion-first strategy are proposed to solve the related decision problem. Lastly, we develop a binary search heuristic algorithm based on randomized local search to solve the original optimization problem. The computational results on six classes of benchmark problems have shown that the presented algorithm can find better solutions within a reasonable time than the published best heuristic algorithms for most zero-waste instances. In particular, the presented algorithm is proved to be the dominant algorithm for large zero-waste instances. Key words: rectangular strip packing; heuristic; local search; binary search History: Accepted by Michel Gendreau, (former) Area Editor for Heuristic Search and Learning; received January 2007; revised December 2007, October 2008, February 2010; accepted September 2011. Published online in Articles in Advance June 6, 2012.

1.

Introduction

and then applies BLF + metaheuristic for the remaining rectangles. Martello et al. (2003) gave an exact approach to the strip-packing problem, and a new relaxation, that produces good lower bounds and provides information to obtain effective heuristic algorithms, was used in a branch-and-bound algorithm. The less flexibility first principle was introduced by Wu et al. (2002) to determine the packing rules. Zhang et al. (2005, 2006) proposed a new heuristic recursive algorithm and a metaheuristic algorithm based on the recursive strategy and the simulated annealing algorithm. Huang et al. (2007) presented a very effective heuristic algorithm, in which two important concepts, namely, the corner-occupying action and caving degree, were introduced to guide the packing. Cui et al. (2008) presented a new heuristic recursive algorithm based on a recursive structure combined with branch-and-bound techniques. Hopper and Turton (2001) empirically investigated metaheuristic and heuristic algorithms for 2D packing problems that have been developed for different variants of the strip-packing problems. Artificial neural networks were introduced by Dagli and Poshyanonda (1997) to

The packing problem is faced in many industries, with different applications incorporating different constraints and objectives. For example, in shipping encasement, objects of different sizes have to be packed as many as possible into a large container. In newspapers, advertisements and articles have to be arranged in individual pages in the most efficient manner. Lodi et al. (2002), Dowsland and Dowsland (1992), and Pisinger (2002) gave more extensive and detailed descriptions of the packing problem. In this paper, we consider the rectangular strip-packing problem. Various heuristic algorithms based on different methodologies have been presented for solving this problem. The bottom-left (BL) and bottom-left fill (BLF) methods (Baker et al. 1980 and Chazelle 1983) are the most famous heuristic approaches. A genetic algorithm based on BL is presented in Liu and Teng (1999) which uses an improved BL heuristic. Burke et al. (2004) suggested a different construction method (BF). Later, Burke et al. (2009) improved their heuristic by adding a metaheuristic phase that first uses the best-fit heuristic to pack some rectangles 332

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

333

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

solve the packing problem. Kröger (1995) presented a genetic approach for guillotinable bin packing problems. Bortfeldt (2006) presented a genetic algorithm that works directly on the layout solutions and does not have any encoding of the solutions (SPGAL). Alvarez-Valdes et al. (2008) presented a greedy randomized adaptive search procedure (GRASP) for the strip-packing problem. SPGAL, BLF + metaheuristic, and GRASP are three of the current best algorithms to solve the strip-packing problem. Hifi (1999) and Hifi and M’Hallah (2003) proposed a hybrid algorithm for the two-dimensional layout problem. Most algorithms mentioned above have similar processes: a construction heuristic algorithm is first used to obtain an initial solution, and then it is combined with a local search or metaheuristic to obtain a desirable solution. The idea of using local search to alter the order of the rectangles, for example, using a swap neighborhood by Oliveira and Ferreira (1993) and Zhang et al. (2006), is often used to improve the solution. Generally these algorithms perform reasonably well, though intuitively most algorithms have some drawbacks. For example, some algorithms cannot make full use of information for controlling wasted space. Some algorithms are more complicated because they have to first set some parameters by learning some instances to obtain a desirable solution. The idea of transforming the problem into a decision problem and then searching the space with the appropriate height and the fixed width is useful (Oliviera and Ferreira 1993 and Dowsland 1993), and it can be used to efficiently solve the rectangular strippacking problem. In this paper, we first transform this optimization problem into a decision problem and then present a least-waste-first strategy and a minimal-inflexion-first strategy, which evaluates the positions of the rectangles to solve the decision problem. Lastly we introduce a binary search heuristic algorithm (BSHA) based on randomized local search to solve the original strip-packing problem. The computational results on six classes of benchmark problems show that BSHA can find better solutions within a reasonable time than the published best heuristic algorithms. In particular, the presented algorithm was proved to be the dominant algorithm for large packing problems.

2.

describe a rectangular packing problem (RPP), the aim of which is to maximize the area of rectangles packed into a sheet with fixed dimensions, and then use the rectangular packing problem to describe the rectangular strip-packing problem (RSPP). 2.1. Rectangular Packing Problem Given a rectangular sheet B with width W and height H , and a set R of n rectangles with each rectangle Ri of width wi and height hi 1 ≤ i ≤ n, the aim of the RPP is to find a packing that maximizes the total area of the rectangles packed into the sheet. The packing must satisfy the following constraints: each edge of the packed rectangles should be parallel to an edge of the sheet, which is also called orthogonal packing; and any two packed rectangles should not overlap each other. It is to be noted that we have assumed that the rectangles can be rotated by 90 . To state this problem more formally, place the bottom left of the sheet at origin (0 0) of the two-dimensional Cartesian coordinate system and let its four sides be parallel to either the x- or y-axis (Figure 1), thereby allowing the rectangle to rotate 90 , which means that an edge of the packed rectangle can be parallel to either the x-axis or the y-axis. For example, in Figure 1, two arrangements of rectangle Ri are feasible. Let fi 1 ≤ i ≤ n denote whether rectangle Ri has been packed into the sheet or not, if yes then fi = 1, otherwise fi = 0. For every rectangle Ri packed into the sheet, let (xli  yli ) denote the coordinates of its bottom-left corner, and (xri  yri ) denote the coordinates of its top-right corner. The mathematical formulation of the problem can be described as follows: max

n 

fi wi hi

i=1

subject to

fi = 0 ∨ 0 ≤ xli < xri ≤ W ∧ 0 ≤ yli < yri ≤ H 

i = 1 2     n

y

H

Problem Description

This paper is concerned with the rectangular strippacking problem which belongs to the subtype RF (the rectangles may be rotated by 90 (R) and no guillotine cutting is required (F)) as described by Lodi et al. (1999) and Bortfeldt (2006). According to an improved typology of cutting and packing problems, this problem belongs to an open dimension problem (Wäscher et al. 2007). In this section, we first

Ri 0 Figure 1

Ri W

The Coordinate System

x

(1)

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

334

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

fi = 0 ∨ xri − xli = wi ∧ yri − yli = hi  i = 1 2     n

5

y

· ∨xri − xli = hi ∧ yri − yli = wi 

1

(2)

Envelope

fi = 0∨fj = 0∨xli ≥ xrj ∨xlj ≥ xri ∨yli ≥ yrj ∨ylj ≥ yri  i j = 1 2     n i = j fi ∈ 0 1 

i = 1 2     n

(3)

where Equation (1) implies that each rectangle is placed within the confines of the sheet; (2) implies that the rectangles to be packed are rotatable; (3) implies that any two packed rectangles cannot overlap each other; and (4) states whether each rectangle can be packed into the sheet or not. 2.2. Rectangular Strip-Packing Problem Given a rectangular sheet B with width W and infinite height, a set R of n rectangles with each rectangle Ri of width wi and height hi 1 ≤ i ≤ n, the aim of the RSPP is to pack all the rectangles into the sheet so as to minimize the used height of the sheet. The packing must satisfy the constraints of the RPP, except that the height of the sheet is not fixed. We use the RPP to describe the RSPP formally: find the minimum height of the sheet such that the corresponding RPP can find a packing that packs all the rectangles into the sheet.

3.

H

2

(4)

Random Local Search Algorithm for the RPP

In this section, we first present a least-waste-first strategy based on the way of finding positions to pack rectangles, and then we develop a random local search algorithm based on the least-waste strategy for the RPP. Let I denote the set of the rectangles packed into the sheet, the unpacked rectangles may be packed only at position p such that these rectangles must be packed above or to the right of p, and cannot overstep the border of the sheet. More formally, the unpacked rectangles can be packed only at the positions contained in the set:

3 0 Figure 2

W

4

x

Inflexions

then determines corner points to reduce the number of positions. We only consider the inflexions where the edge of the envelope changes from vertical to horizontal (black points in Figure 2). An inflexion is similar to the concept of a corner point defined in references (Martello et al. 2000, 2003). We call these inflexions (except one inflexion at the top-right corner of the sheet) feasible positions. The unpacked rectangles are considered for packing at these feasible positions. In Figure 2, inflexions (except inflexion 5) 1, 2, 3, and 4 are feasible positions. To avoid invalid search, we can further reduce the number of feasible positions in the following way: If the gap between a feasible position and the border of the sheet is less than the smallest edge of the unpacked rectangles, we think this position is a bad position because none of the unpacked rectangles can be packed at this position. In any configuration, if there exist some bad positions, we can discard them and make some changes to the envelope. The changed envelope is shown in Figure 3 (the grey area is discarded). For example, in Figure 3, if both gap l1 and gap l2 are smaller than the smallest y

5

l1 1 Envelope

SI = x y ∀ Ri ∈ I x ≥ xri or y ≥ yri  and x ≤ W and y ≤ H  

Figure 2 shows the feasible area that is enclosed by the dotted line, where the area is called an envelope. The envelope contains the positions belonging to SI, and the unpacked rectangles can be packed at any position within the envelope. Obviously, the envelope contains too many infeasible positions, so we can develop the idea of finding a position (Martello et al. 2000) that first finds extreme items and

H

2 3

0

Figure 3

W

The Changed Envelope

4

l2

x

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

edge of the unpacked rectangles, we discard bad positions 1 and 4, so the current feasible positions only have 2 and 3. It is noted that to determine whether an unpacked rectangle can be packed at a feasible position or not, we just need to check if the rectangle oversteps the border of the sheet. If some rectangles can be packed into current feasible positions 2 and 3 (see Figure 4), the problem is to decide which rectangle will be packed at what position. When a rectangle is packed at one of the current feasible positions, the envelope will be reduced. Furthermore, the area cut down from the envelope can be larger than that of the corresponding packed rectangle. In this case, some area is wasted and cannot be reused. For example, in Figure 4, when rectangle Ri is packed at position 3, it results in the bias area being wasted. This shows that packing Ri at position 3 is not a good choice. To obtain a better choice, we can construct the following least-wastefirst strategy: Let the set of the current feasible positions be P and the set of the unpacked rectangles be U , given a combination Ri  p b, where Ri ∈ U , p ∈ P , b ∈ 0 1 , b = 0 means the longest edge of rectangle Ri is parallel to the x-axis, and b = 1 means the longest edge of the rectangle is parallel to the y-axis. Then we can calculate the wasted area ARi  p b by packing Ri at current feasible positions p according to the value of b. Obviously, we hope to minimize the wasted area to maximize the total area available to pack the rectangles into the sheet. In addition, the rectangles with smaller areas should be packed later so that space is available for large rectangles. So we should consider both the size of the rectangle and the wasted area to select a good combination. In detail, we should select the unpacked rectangle r that will be packed at the current feasible position q such that the corresponding ratio Ar q c/sr is minimal. Namely, Ar q c/sr = minRi ∈U  p∈P  b∈ 0 1 ARi  p b/si , where si denotes the area of rectangle i. It must be noted y l1 Envelope 6

H

Ri

2 3

7 0

W l2

Figure 4

The Wasted Area

x

335

that the wasted area is calculated after we discard the bad positions because discarding the bad positions can reduce the number of feasible positions and simplify the calculation of the wasted area. The idea of using information based on the wasted areas that cannot be used by other rectangles has also been applied by Dowsland et al. (2006). However, the definition of the wasted area is different and is applied in a different way. Dowsland et al. (2006) think that any gaps left “behind” the current packing can be identified as waste. The waste is used to define the bound applicable to tree search. In this paper, the wasted area is calculated by Ar q c and is used to select a rectangle to be packed. In addition, given a combination Ri  p b, where Ri ∈ U  p ∈ P  b ∈ 0 1 , we can calculate the corresponding ratio. It is possible that several combinations have the same minimal ratio in the current configuration. So we must consider which combination should be selected when the number of such combinations is more than one. We know that an envelope with a minimal inflexion will contain less wasted area. Inspired by the experience in daily life, we should make the envelope with minimal inflexion. So we should develop a way to measure the change of the inflexion for an envelope. We can observe that each feasible position is formed by a horizontal and a vertical segment. Given a combination Ri  p 1, when rectangle Ri is packed at position p, if the width of the rectangle is equal to the horizontal segment and the height of the rectangle is equal to the vertical segment, we think this combination is a good combination because the resulting envelope has less inflexion. We use a variable inflexion (IN) to evaluate such combinations. For a combination Ri  p 1, if the width of the rectangle is equal to the horizontal segment and the height of the rectangle is equal to the vertical segment, IN of this combination will be 2; if the width of the rectangle is equal to the horizontal segment or the height of the rectangle is equal to the vertical segment, IN of this combination will be 1; otherwise IN will be 0. Obviously, IN = 2 means the combination can decrease one inflexion, and it is a better combination. IN = 1 means the combination does not increase the number of inflexions, and it may also be a good combination. IN = 0 means the combination may increase one inflexion, and that makes it become a bad combination. So we can construct a minimal-inflexion-first strategy as follows: select a combination with a larger IN value when the corresponding ratio of several combinations is the same. For example, in Figure 5, the value of IN for combination Ri  2 1 is 2, the value of IN for combination Rj  1 0 is 0, and the value of IN for combination

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

336

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

5

y 1

Rj

hj

wj

hi

Envelope

wi

wi

Ri hi

H

Ri

Rj

2 Rk

wk

hk

Rk

3 0

W Vertical segment

Figure 5

4

hj

hk

wj wk

x

Horizontal segment

The Calculation of Inflexions

Rk  3 0 is 1. Therefore we can describe the way of selecting a combination as follows: (a) Select combination r q c by the least-wastefirst strategy such that ratio Ar q c/sr is minimal; (b) If the number of such combinations with the same ratio is more than one, select the combination by the minimal-inflexion-first strategy such that IN is maximal; (c) If the number of such combinations with the same IN is more than one, select the first combination by the position order from left to right; (d) If the number of such combinations with the same position is more than one, select the first combination by the given rectangle sequence. Using the strategy of selecting a combination as described above, we can get the following heuristic algorithm: rpp-packing(R, n, W, H) I ← ; U ← R while U =  do calculate the set P of all the feasible positions; use the method described above to select a combination r q c from U and P ; if the combination r q c does not exist, then U = ; else pack r at the position q according to the way of c I ← I ∪ r  U ← U − r ; return the total area of rectangles in I. Where R is the ordered set of rectangles, n is the number of rectangles in R, W is the width of the sheet, and H is the height. I is the set of the current packed rectangles, P denotes the set of all the feasible positions, and U denotes the set of the unpacked rectangles. In the procedure rpp-packing(R, n, W, H), we first let I be empty, and then execute the packing process until none of the unpacked rectangles can be

packed into the sheet. The total area of the packed rectangles is returned at the end. Since the result of the procedure rpp-packing(R, n, W, H) depends on the sequence of the rectangles in R, we import a randomized local search to improve the result. The randomized local search algorithm developed is described as follows: rls-rpp-packing(R, n, W, H, kmax, samemax, imax) sort the rectangles in descending order of their area in R; sortR ← R; best ← rpp-packing(R, n, W, H); same ← 0; for k = 1 to kmax do R ← sortR; for i = 1 to imax do select rectangle r and s from R randomly, swap the order of r and s in R; area ← rpp-packing(R, n, W, H); if area > best, then same ← 0, best ← area; if best = totarea, then return best; else swap the order of r and s in R, same ← same + 1; if same > samemax, then break; return best. Where the variable best is used to record the best result found so far, same is used to take count of the number of calls in which the result is not improved. The kmax is an upper bound on the number of times a local minimum is reached, sortR is used to save the sorted R, and totarea is the total area of rectangles in R. In the procedure rls-rpp-packing(R, n, W , H, kmax, samemax, imax), we first sort the rectangles by their area because the rectangles with maximum area should be packed first. To improve the result, we select two rectangles randomly (the size of the selected rectangles should be unequal), and swap their orders in R. Then call the procedure rpp-packing(R, n, W, H) to check whether the result is improved or not; if it is, we will accept the swap, otherwise undo it. If an optimal solution is found, we return it. If the result cannot be improved in the samemax calls, we believe a local minimum is reached and reset R to sortR. We stop the process when the number of times a local minimum has been reached is more than kmax.

4.

Binary Search Heuristic Algorithm (BSHA) for the RSPP

We now use the algorithm developed for the RPP to solve the RSPP. Clearly, the lower bound (LB) for the RSPP is the height where the area of the sheet is equal  to the total area of the rectangles, namely, LB =  ni=1 wi hi /W . To calculate an upper bound (UB),

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

337

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

we increase UB from LB until the procedure rpppacking(R, n, W, H) returns a value that is equal to the total area of rectangles in R. Lastly, we use binary search that repeatedly calls the procedure rlsrpp-packing(R, n, W, H, kmax, samemax, imax) to find a desirable height. The binary search heuristic algorithm developed is given as follows: bsh-rspp-packing(R1 n1 W 1 H5 sort the rectangles in descending order of their area in R; totarea ← 0; for i = 1 to —R— do if wi < hi , then swap(wi 1 hi 5; totarea ← totarea + wi × hi ; UB ← LB; while (rpp-packing(R, n, W, UB) 6= totarea) do UB ← UB + 1; k ← min41 + 4n − 15/1001 105; kmax ← 20/k, samemax ← 21000/k, imax ← 201000/k; head ← LB, tail ← UB; while (head < tail) do mid ← (head + tail)/2; if (rls-rpp-packing(R, n, W, mid, kmax, samemax, imax) = totarea), then tail ← mid; else head ← mid + 1; if (kmax > 10), then kmax ← kmax − 1; if (samemax > 11000), then samemax ← samemax − 100; if (imax > 101000), then imax ← imax − 11000; return head, where the variable totarea is the total area of rectangles in R; head, tail, and mid are variables used in the binary search; imax, kmax, samemax are the parameters used in the procedure rls-rpp-packing(R, n, W, H). In the procedure bsh-rspp-packing(R, n, W, H), we first sort the rectangles in R. For each rectangle Ri , if its width is less than its height, we swap its width with its height so that the width is not shorter than the height. We then calculate the lower bound LB and an upper bound UB, where LB and UB are integers. In the binary search, we first set head = LB and tail = UB, then repeat the following process until head is not less than tail: set mid = (head + tail)/2, check whether rls-rpp-packing(R, n, W, mid, kmax, imax, samemax) can find a packing that packs all the rectangles. If so, set tail = mid; otherwise set head = mid + 1. The variable head returned by bsh-rspp-packing(R, n, W, H) is the minimal height. It must be noted that the larger n is, the more call times are needed to call the procedure rls-rpp-packing(R, n, W, H). So we set kmax, samemax, and imax to the values that decrease with an increase of n, and we decrease the values of kmax, samemax, imax after each iteration of binary search. When the values of kmax, samemax, and imax are large, we note that the results are better, but a longer run time is

needed. To find a good result within an acceptable time, we set the values of kmax, samemax, and imax as above by experimentation. From the description of BSHA, we know the performance of BSHA depends on the filling rate of rls-rpp-packing(R, n, W , H 5. The higher the filling rate of BSHA is, the better the performance of BSHA is. In particular, if the filling rate is 100% and all the rectangles are packed, then BSHA is successfully stopped.

5.

Experimental Results

We implement the algorithm BSHA using C++ programming language. To compare the relative performance of BSHA with other published heuristic algorithms, we used six classes of test problems from the literature. Perhaps the most well-known problem class is the 21-rectangle packing instances proposed by Hopper and Turton (2001). Ramesh Babu and Ramesh Babu (1999) used a test instance to compare their GA with other GAs. Burke et al. (2004) randomly generated 13 problem instances. To extensively test the performance of BSHA for large instances, the extra-large instances proposed by Pinto and Oliviera (2005) are included. The size of the problem in these instances ranges from 50 to 15,000 rectangles. In most of the real-world problems, the optimal solutions involve some wasted areas, so it is very interesting and useful to test BSHA on these types of instances for verifying the performance of algorithms. Therefore, the non-zero-waste instances which make some parts of the sheet unused for the optimal packing are selected. Valenzuela and Wang (2001) provided floating-point data sets of both similarly dimensional rectangles (named “nice” data) and vastly differing dimensions (named “path” data). Each category has data with problem size ranging from 25 to 1,000 rectangles, where we transform these data into integer data by multiplying the original data by 10 and rounding to the nearest integer, so these data belong to non-zero-waste instances because of rounding. In addition, nine large non-zerowaste instances are generated by combining zerowaste instances with non-zero-waste instances (see the appendix). The optimal solutions of the former five instances are known, while the optimal solutions of the later four instances are unknown. All data sets and software are publicly available and can be downloaded from http://59.77.16.8/Download.aspx#p4 or http://dx.doi.org/10.1287/ijoc.1120.0505. Table 1 gives an overview of all the test data sets used in this paper. Where zero-waste = yes denotes that the corresponding data set belongs to zero-waste instances, zero-waste = no denotes the corresponding data set belongs to non-zero-waste instances. The variable class denotes the type of the data set,

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

338 Table 1

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

Test Data Sets Zero-waste ?

Class

TP

n

W

H∗

Hopper and Turton (2001)

Yes

C

Ramesh Babu and Ramesh Babu (1999) Burke et al. (2004) Pinto and Oliviera (2005) Valenzuela and Wang (2001)

Yes Yes Yes No

New instances

No

Babu N CX Nice Path ZDF

C11,C12,C13 C21,C22,C23 C31,C32,C33 C41,C42,C43 C51,C52,C53 C61,C62,C63 C71,C72,C73 Babu N1∼N13 50cx∼15,000cx Nice1∼Nice6 Path1∼Path6 zdf1∼zdf9

16,17 25 28,29 49 73 97 196,197 50 10∼3,152 50∼15,000 25∼1,000 25∼1,000 580∼5,032

20 40 60 60 60 80 160 11000 30∼640 400 100 100 1,003,000

20 15 30 60 90 120 240 375 40∼960 600 100 100 someknown

Data source

and T P stands for the test problem instances. The number of rectangles is denoted by n; H ∗ is the optimal height, and H ∗ = someknown denotes the optimal solutions of some instances in the corresponding data set which are known. In the following tables, h denotes the height found by different algorithms during one run, meanh and besth denote the average height and the best height, respectively, found by different algorithms during 10 runs, and meant denotes the average running time during 10 runs. The time unit is in seconds. The variable relategap denotes 100×((h or meanh or besth) − LB)/LB, where LB denotes the lower bound, and LB = H ∗ when the optimal solution is known. The variable meangap denotes the average relativegap for the considered instances. In the next section, the computational results of BSHA for problem types RF (see previous definition) and OF (the orientation of the rectangles is fixed) are reported. For all instances, the best meanh is shown in bold and the best besth is shown in bold italic. 5.1. Results for Problem Type RF We compare our algorithm with BF, BF + SA, BF + TS, BF + GA, and SPGAL. BF (Burke et al. 2004) is a new placement heuristic algorithm based on the bestfit strategy; BF + TS, BF + SA, and BF + GA (Burke et al. 2009) are the metaheuristic enhancements of BF heuristic; HRP (Huang et al. 2007) is an effective heuristic algorithm; HRBB (Cui et al. 2008) is a recursive branch-and-bound algorithm; and SPGAL is a genetic algorithm (Bortfeldt 2006). BF was performed on a PC with an 850 MHz CPU and 128 MB RAM; BF + TS, BF + SA, and BF + GA were conducted on a 2 GHz Pentium 4 computer with 256 MB RAM; HRP was run on an IBM notebook PC with 2.0 GHz processor and 256 MB memory; SPGAL was carried out on a Pentium PC with a core frequency of 2 GHz; and HRBB was run on a Pentium 4 CPU 2.80 GHz and main memory 512 MB. Our experiments were run on a Dell GX270 with 2.60 GHz CPU and 512 MB memory.

The computational results of class C are shown in Tables 2–4. Table 2 shows the solutions and running time of the 21 instances. BF + metaheuristic is allowed 60 seconds duration per run and the best solution (besth) is shown during 10 runs. We can observe that BSHA finds better meanh for 18 instances while BF + SA (the best BF + metaheuristic) fails to find a better besth. In particular, BSHA finds the optimal besth for all the instances. Tables 3 and 4 show the comparisons among HRBB, SPGAL, HRP and BSHA, where the best results of SPGAL during 10 runs are reported (Bortfeldt 2006). The computational results of HRBB and HRP are taken from Huang et al. (2007) and Cui et al. (2008). Table 3 shows the comparisons on relativegap. Table 4 shows the relative comparison of the running time of different algorithms. The meant of BSHA is less than 17.47 seconds, so BSHA is faster than most algorithms. In addition, the meangap obtained by BSHA is smaller than that obtained by all other algorithms mentioned. Table 5 shows the computational results of class Babu and N. BSHA is able to find the optimal solution to the instance Babu in a very short time. For the 13 instances of class N, BSHA finds better meanh for 11 instances and optimal besth for 12 instances in a short time, while BF + SA finds the optimal solutions of only two instances. Table 6 reports the computational results of BSHA on class CX. BSHA can find the optimal solutions of most instances except 50cx and 100cx, and it outperforms BL and GBMLA. It can be shown that BSHA is very effective for large zero-waste problems. Table 7 shows the computational results of class Nice and Path. Nice and Path belong to the non-zero-waste instance because they are transformed into integer data by multiplying by 10, and their optimal solutions are hard to obtain, so the running time of BSHA is long for most instances. However, we can observe that BSHA finds better solutions than BF and BF + metaheurisitc except Path3. For class Nice, we can also see that the solutions of BSHA are closer to the optimal solutions as the number of rectangles increases.

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

339

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

Table 2

Computational Results of Class C Instance ∗

BF

BF + TS

BF + SA

BF + GA

BSHA

h

Besth

Besth

Besth

Meanh

Besth

TP

W

n

H

C11 C12 C13

20 20 20

16 17 16

20 20 20

21 22 24

20 21 20

20 20 20

20 21 20

20 20 20

20 20 20

0003 0003 0001

C21 C22 C23

40 40 40

25 25 25

15 15 15

16 16 16

16 16 16

16 16 16

16 16 16

15 15 15

15 15 15

0013 0003 0012

C31 C32 C33

60 60 60

28 29 28

30 30 30

32 34 33

31 32 31

31 31 31

31 32 31

30 30 30

30 30 30

0025 1065 1059

C41 C42 C43

60 60 60

49 49 49

60 60 60

63 62 62

62 62 61

61 61 61

62 62 62

60 60 60

60 60 60

1091 3005 2079

C51 C52 C53 C61 C62 C63 C71 C72 C73

60 60 60 80 80 80 160 160 160

73 73 73 97 97 97 196 197 196

90 90 90 120 120 120 240 240 240

93 92 93 133 122 124 247 244 245

92 92 92 122 121 122 245 244 245

91 91 92 122 121 122 244 244 245

92 92 92 122 121 122 245 244 245

90 90 90 120 120 120 24008 240 24008

90 90 90 120 120 120 240 240 240

8093 0051 3003 12063 1028 24014 128026 4201 134048

Table 3

Meant

Comparisons of Relativegap on Class C C11∼13 C21∼23 C31∼33 C41∼43 C51∼53 C61∼63 C71∼73 Meangap

HRBB SPGAL HRP BSHA

Table 4

000 009 0 0

Babu N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13

202 104 0 0

109 000 0 0

104 007 0083 0

103 005 0083 0022

104 100 0024 0003

C11∼13

C21∼23

C31∼33

C41∼43

C51∼53

C61∼63

C71∼73

Meant

00266 — 0047 0002

00328 — 0015 0006

0088 — 3009 1031

20187 — 166044 1094

20833 — 45025 11017

20239 — 873062 7070

40261 — 41276086 282030

1086 139 773013 17047

Computational Results of Class Babu and N Instance

TP

101 202 0 0

Comparisons of Running Time on Class C

HRBB SPGAL HRP BSHA

Table 5

107 107 0 0

W

n

H



BF

BF + TS

BF + SA

BF + GA

BSHA

h

Besth

Besth

Besth

Meanh

Besth

Meant

11000

50

375

400

400

400

400

375

375

1098

40 30 30 80 100 50 80 100 50 70 70 100 640

10 20 30 40 50 60 70 80 100 200 300 500 31152

40 50 50 80 100 100 100 80 150 150 150 300 960

45 53 52 83 105 103 107 84 152 152 152 306 964

40 50 51 83 103 102 105 82 152 152 153 306 964

40 50 51 82 103 102 104 82 152 152 153 306 964

40 50 52 83 104 102 104 82 152 152 153 306 964

40 50 50 8006 101 100 101 80 150 150 150 30006 960

40 50 50 80 100 100 101 80 150 150 150 300 960

0000 0031 0041 22001 52085 3056 66018 5012 1016 0038 0067 20023 9064

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

340

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

Table 6

Computational Results of Class CX Instance

TP 50cx 100cx 500cx 1,000cx 5,000cx 10,000cx 15,000cx

BL

GBMLA

h

h

Meanh

Besth

Meant

674 679 692 690 687 681 660

673 668 677 663 647 637 634

60108 61002 600 600 600 600 600

601 610 600 600 600 600 600

112048 11329012 12068 0033 3052 12011 26051



W

n

H

400 400 400 400 400 400 400

50 100 500 11000 51000 101000 151000

600 600 600 600 600 600 600

Figure 6 shows the packing results of instances C72, Nice6, N13, and 10,000cx for problem type RF. For instances C72, N13, and 10,000cx, BSHA finds their optimal solutions in which the sheet usage is 100%. 5.2. Results for Problem Type OF The above computational results showed that BSHA outperforms the current best algorithms for RF-type problems. In this section, we consider BSHA for problem type OF. To extend BSHA to solve OF-type problems, we replace “sort the rectangles in descending order of their area in R”, with “sort the rectangles in descending order of their width in R”, in procedures rls-rpp-packing(R, n, W, H, kmax, samemax, imax) and bsh-rspp-packing(R, n, W, H). In addition, we cancel the step “if wi < hi , then swap(wi 1 hi 5”, in procedure bsh-rspp-packing(R, n, W, H). To verify the performance of BSHA, we compare BSHA with GRASP. GRASP (Alvarez-Valdes et al. 2008) is one of the current excellent algorithms that outperforms most of the former algorithms. Alvarez-Valdes et al. (2008) reports the computational results of GRASP for problem type OF. GRASP was coded in C++ and run on a Pentium 4 Mobile at 2 GHz and was allowed 60 seconds duration per run, and the average solutions and the best solutions during 10 runs are shown. We test BSHA on class C, Babu, N, Nice and Path. The computational results of GRASP for all the instances are taken from Alvarez-Valdes et al. (2008). Table 7

Table 8 shows the computational results of BSHA on class C. From Table 8, we can observe that BSHA can find better meanh than GRASP for eight instances and better besth than GRASP for five instances while GRASP fails to find the better solution. Table 9 shows the computational results of BSHA on instances Babu and N. From Table 9, we can observe that BSHA can find better meanh for eight instances while GRASP is superior for one instance. BSHA can find better besth for eight instances, while GRASP cannot find the better besth. It is noted that besth of BSHA for class N is better than that of GRASP. Table 10 reports the computational results of BSHA for extra-large instances. From Table 10, we can observe that BSHA outperforms GRASP for most instances (except 100cx). It is shown that BSHA is very efficient and effective for extra-large zerowaste instances. Table 11 shows the computational results of BSHA on non-zero-waste instances Nice and Path. From Table 11, we can observe that BSHA can find better meanh and besth for eight instances while GRASP is superior for three instances. Table 12 tabulates the computational results of BSHA for nine large non-zero-waste instances. From Table 12, we can observe that BSHA can find the better meanh for eight instances while GRASP is superior for only one instance. BSHA can find the optimal besth for five instances within a short time while GRASP cannot

Computational Results of Class Nice and Path Instance

TP

BSHA



BF

BF + TS

BF + SA

BF + GA

BSHA

h

Besth

Besth

Besth

Meanh

Besth

Meant

W

n

H

Nice1 Nice2 Nice3 Nice4 Nice5 Nice6

100 100 100 100 100 100

25 50 100 200 500 11000

100 100 100 100 100 100

10704 10805 10700 10503 10305 10307

106093 106064 105023 104021 103018 103080

104002 104041 105004 104074 103051 103076

108042 106087 105094 104089 103048 103080

102018 102028 101084 101012 100044 100018

100 01 102 01 10107 101 100 04 100 01

54055 252015 1117309 942035 886081 419049

Path1 Path2 Path3 Path4 Path5 Path6

100 100 100 100 100 100

25 50 100 200 500 11000

100 100 100 100 100 100

11001 11308 10703 10401 10307 10208

105082 103066 104073 103053 103015 102080

103009 10304 103004 103042 103048 102087

108017 103066 104037 103085 103041 102090

10005 101084 105037 102076 102018 101024

100 01 100 08 10501 102 04 102 01 10101

8084 252021 2127407 3162502 2186501 2113105

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

341

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

C72, H* = 240, h = 240

N13, H * = 960, h = 960 Figure 6

Nice6, H * = 100, h = 100.2

10,000cx, H * = 600, h = 600

Packing Results of Some Instances (RF)

find any optimal solution. It is shown that BSHA is very effective for large non-zero-waste instances. Figure 7 shows the packing results of instances C72, Nice6, N13, and 10,000cx for problem type OF. The experimental test can be summarized as follows: (1) The benchmark data for the experimental test include different types of data from the literature— for example, integer data and floating-point data, zero-waste data and non-zero-waste data, and small instances and large instances. Most instances mentioned above can be downloaded from Beasley (1990). (2) For RF-type problems, the running time of BSHA is longer than BF + metaheurisitc for several

instances, but BSHA is faster than BF + metaheurisitc for most instances. Moreover, BSHA outperforms the current best algorithms in terms of the quality of the solutions. (3) For OF-type problems, BSHA performs better than GRASP for zero-waste instances. For considered non-zero-waste instances, BSHA consumes a longer time than GRASP, but BSHA can a find better solution than GRASP. BSHA is not specially designed to solve OF-type problems, but it still performs better in an acceptable time than GRASP for most instances (class C, N, CX, zdf1∼zdf8), in particular, for large instances. (4) Please note that BSHA is different from other iterative improvement algorithms insofar as it may

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

342

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

Table 8

Computational Results of Class C Instance

TP

n

H

C11 C12 C13

16 17 16

C21 C22 C23

Table 11

GRASP ∗

BSHA

Instance

Meanh

Besth

Meanh

Besth

20 20 20

20 20 20

20 20 20

20 20 20

20 20 20

0 0031 0002

25 25 25

15 15 15

15 15 15

15 15 15

15 15 15

15 15 15

0008 0009 0001

C31 C32 C33

28 29 28

30 30 30

30 31 30

30 31 30

30 31 30

30 31 30

0018 15054 001

C41 C42 C43

49 49 49

60 60 60

61 61 61

61 61 61

61 61 6008

61 61 60

40044 48035 37071

C51 C52 C53

73 73 73

90 90 90

91 91 91

91 91 91

91 91 9008

91 91 90

88045 75013 88053

C61 C62 C63

97 97 97

120 120 120

12109 12109 12109

121 121 121

121 12102 121

121 121 121

221067 181056 170078

C71 C72 C73

196 197 196

240 240 240

244 24209 243

244 242 243

241 24108 241

241 241 241

434016 254062 468082

Table 9

TP Babu N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13

Table 10

n

H

GRASP ∗

Besth

Meanh

Besth

50cx 100cx 500cx 1,000cx 5,000cx 10,000cx 15,000cx

Meant

50

375

375

375

375

375

5008

10 20 30 40 50 60 70 80 100 200 300 500 31152

40 50 50 80 100 100 100 80 150 150 150 300 960

40 50 51 81 102 101 101 81 151 151 151 30302 963

40 50 51 81 102 101 101 81 151 151 151 303 963

40 50 51 80 100 100 100 81 150 15104 150 301 96006

40 50 51 80 100 100 100 81 150 151 150 301 960

0 0002 11042 2027 27099 1018 8076 97085 8066 163016 15086 97051 163003

Computational Results of Class CX GRASP ∗

W

n

H

400 400 400 400 400 400 400

50 100 500 11000 51000 101000 151000

600 600 600 600 600 600 600

BSHA

Meanh Besth Meanh Besth 617 61707 60503 60209 600 600 600

TP

n

H

Nice1 Nice2 Nice3 Nice4 Nice5 Nice6

25 50 100 200 500 11000

Path1 Path2 Path3 Path4 Path5 Path6

25 50 100 200 500 11000

Table 12

GRASP ∗

Meanh

Besth

Meanh

Besth

Meant

100 100 100 100 100 100

10309 10407 10405 10308 10204 10203

10307 10406 104 10306 10202 10202

104064 103004 103004 101088 101 100045

10404 102 08 102 08 10106 100 09 100 04

78034 470056 41358008 31163013 31795022 2114504

100 100 100 100 100 100

10402 10109 10207 10203 10302 10207

10402 10108 10206 102 10301 10205

10402 100095 10403 105015 102095 102005

10402 100 08 104 10501 102 09 10105

21048 15301 41276012 8191008 161883091 81945066

Computational Results of Class ZDF Problem size

TP zdf1 zdf2 zdf3 zdf4 zdf5 zdf6 zdf7 zdf8 zdf9

BSHA

GRASP

BSHA

W

n

LB

Meanh

Besth

Meanh

Besth

Meant

100 100 100 100 100 31000 31000 31000 31000

580 660 740 820 900 11532 21432 21532 51032

330 357 384 407 434 41872 41852 51172 51172

333 360 387 410 437 51300 5119705 5155401 51476

333 360 387 410 437 51300 51163 51544 51476

33002 35706 38404 40704 434 51175 5118108 5152208 51566

330 357 384 407 434 51147 51172 51467 51566

7065 9072 6086 9004 5073 11302098 31152035 31000056 41609027

BSHA

Meanh

Instance TP

Meant

Computational Results of Class Babu and N Instance

Computational Results of Class Nice and Path

617 617 605 602 600 600 600

61208 62702 60002 600 600 600 600

608 611 600 600 600 600 600

Meant 13407 11280067 324004 86049 1008 79043 11166097

fail to find a solution for certain instances, given a time limit. For this reason we only report average running times for BSHA.

6.

Conclusions

Inspired by the experience of daily life, we have presented a least-waste-first strategy and a minimuminflexion-first strategy to find feasible positions for unpacked rectangles for a rectangular strip-packing problem. Based on the two strategies, a randomized local search heuristic algorithm is presented to efficiently solve the RPP. By using the idea of transforming the RSPP into the RPP, we can efficiently solve the RSPP. Then we developed a binary search heuristic algorithm based on randomized local search for the RSPP. From the computational results on a number of instances, we can see that BSHA is very effective and outperforms the current published best algorithms when BSHA is used to solve zero-waste problems. The preliminary computational experiments have shown that BSHA is not so effective for some non-zero-waste instances of small scale, so future work will focus on trying to improve its performance on these instances, as well as generally speeding up the algorithm for all non-zero-waste instances. In addition, we plan to perform a sensitivity analysis on solution quality versus computation time.

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

343

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

C72, H * = 240, h = 241

Nice6, H * = 100, h = 100.6

N13, H * = 960, h = 961 Figure 7

10,000cx, H* = 600, h = 600

Packing Results of Some Zero-Waste and Non-Zero-Waste Instances (OF)

Electronic Companion An electronic companion to this paper is available as part of the online version at http://dx.doi.org/10.1287/ ijoc.1120.0505.

Acknowledgments The authors thank the anonymous referees for their helpful comments and suggestions which contributed to the improvement of the presentation and the contents of this paper. Thanks to Prof. Ramon Alvarez-Valdes who helped

provide extra-large instances and the GRASP executable program. In particular, thanks to Prof. Sam Aceil who helped improve the language of the paper. This work is supported by the National Nature Science Foundation of China [Grant 60773126], the Province Nature Science Foundation of Fujian [Grant 2007J0037], the Academician Start-Up Fund [Grant X01109], and the 985 Information Technology Fund [Grant 0000–X07204] at Xiamen University. Readers should address correspondence to Liju Wei at [email protected].

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem

344

beng5

beng5

25

N12

N12

300

N12

beng5

beng5

beng4

beng4

25

300

N12

beng4

beng4

beng3

beng3

beng3

beng3

beng2 300

25

300

N12

100

100

100

100

100

zdf1: n = 580, W = 100, H * = 330

zdf2: n = 660, W = 100, H * = 357

zdf3: n = 580, W = 100, H * = 384

zdf4: n = 820, W = 100, H * = 407

zdf5: n = 900, W = 100, H * = 434

100

3,000

zdf6: n = 1,532, W = 3,000, LB = 4,872 Figure 8

100

gcut13

gcut13

zdf7: n = 2,432, W = 3,000, LB = 4,852

600

3,000

zdf8: n = 2,532, W = 3,000, LB = 5,172

600

1,000cx

1,000cx

1,000cx

1,000cx

400

500cx

500cx

500cx

500cx

500cx

400

N8

3,000

1,000cx

5 1,000cx

5 500cx N8



N8



N8

30 N8 80

30 N5 N5

gcut13

N5

gcut13

N5

N5

100

beng2

25

300

25

beng2

beng2

beng1

beng1

beng1

beng1

INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

3,000

zdf9: n = 5,032, W = 3,000, LB = 5,172

ZDF Instances

Appendix The instances from zdf1 to zdf9 are obtained by combining zero-waste and non-zero-waste instances (Figure 8). Where beng1∼beng5 and gcut13 belong to the non-zerowaste instance (Bengtsson 1982, Beasley 1985), N5, N8, and N12 belong to class N; 500cx, and 1,000cx belong to class CX. For example, zdf6 consists of 30 N5 and one gcut13, n = 30 × 50 + 32 = 1532; the width of N5 and gcut13 is 100 and 3,000 respectively, so W = 3000 = 30 × 100. The lower bound of gcut13 is 4,772, and the optimal height of N5 is 100, so LB = 100 + 4772 = 4872.

References Alvarez-Valdes R, Parreño F, Tamarit JM (2008) Reactive GRASP for the strip-packing problem. Comput. Oper. Res. 35:1065–1083. Baker BS, Coffman EG Jr, Rivest RL (1980) Orthogonal packing in two dimensions. SIAM J. Comput. 9(4):846–855. Beasley JE (1985) Algorithms for unconstrained two-dimensional guillotine cutting. J. Oper. Res. Soc. 36:297–306. Beasley JE (1990) OR-Library. http://people.brunel.ac.uk/~mastjjb/ jeb/info.html. Bengtsson BE (1982) Packing rectangular pieces—A heuristic approach. Comput. J. 25:353–357. Bortfeldt A (2006) A genetic algorithm for the two-dimensional strip-packing problem with rectangular pieces. Eur. J. Oper. Res. 172(3):814–837. Burke EK, Kendall G, Whitwell G (2004) A new placement heuristic for the orthogonal stock-cutting problem. Oper. Res. 52(4):655–671. Burke EK, Kendall G, Whitwell G (2009) A simulated annealing enhancement of the best-fit heuristic for the orthogonal stockcutting problem. INFORMS J. Comput. 21(3):505–516.

Chazelle B (1983) The bottom-left bin packing heuristic: An efficient implementation. IEEE Trans. Comput. 32(8):697–707. Cui Y, Yang Y, Cheng X, Song P (2008) A recursive branch-andbound algorithm for the rectangular guillotine strip-packing problem. Comput. Oper. Res. 35(4):1281–1291. Dagli CH, Poshyanonda P (1997) New approaches to nesting rectangular patterns. J. Intelligent Manufacturing 3(3):177–190. Dowsland KA, Dowsland WB (1992) Packing problems. Eur. J. Oper. Res. 56(1):2–14. Dowsland KA (1993) Some experiments with simulated annealing techniques for packing problems. Eur. J. Oper. Res. 68: 389–399. Dowsland KA, Herbert E, Kendall G, Burke E (2006) Using treesearch bounds to enhance a genetic algorithm approach to two rectangle packing problems. Eur. J. Oper. Res. 168:390–402. Hifi M (1999) The strip cutting/packing problem: Incremental substrip algorithms-based heuristics. Pesquisa Operacional, Special Issue on Cutting and Packing Problems 19(2):169–188. Hifi M, M’Hallah R (2003) A hybrid algorithm for the twodimensional layout problem: The cases of regular and irregular shapes. Internat. Trans. Oper. Res. 10:1–22. Hopper E, Turton BCH (2001) An empirical investigation of metaheuristic and heuristic algorithms for a 2D packing problem. Eur. J. Oper. Res. 128:34–57. Huang W, Chen D, Xu R (2007) A new heuristic algorithm for rectangle packing. Comput. Oper. Res. 34(11):3270–3280. Kröger B (1995) Guillotinable bin packing: A genetic approach. Eur. J. Oper. Res. 84(3):645–661. Liu D, Teng H (1999) An improved BL-algorithm for genetic algorithms of the orthogonal packing of rectangles. Eur. J. Oper. Res. 112(2):413–420. Lodi A, Martello S, Monaci M (2002) Two-dimensional packing problems: A survey. Eur. J. Oper. Res. 141(2):241–252. Lodi A, Martello S, Vigo D (1999) Heuristic and metaheuristic approaches for a class of two-dimensional bin packing problems. INFORMS J. Comput. 11(4):345–357.

Zhang et al.: Randomized Local Search for the Rectangular Strip Packing Problem INFORMS Journal on Computing 25(2), pp. 332–345, © 2013 INFORMS

Martello S, Pisinger D, Vigo D (2000) The three-dimensional bin packing problem. Oper. Res. 48:256–267. Martello S, Monaci M, Vigo D (2003) An exact approach to the strip-packing problem. INFORMS J. Comput. 15(3): 310–319. Oliveira JFC, Ferreira JAS (1993) Algorithms for nesting problems. Vidal RVV ed. Applied Simulated Annealing, LNEMS 396 (Springer) 255–274. Pinto E, Oliveira JF (2005) Algorithm based on graphs for the non-guillotinable two-dimensional packing problem. Second ESICUP Meeting, Southampton. Pisinger D (2002) Heuristics for the container loading problem. Eur. J. Oper. Res. 141(2):382–392. Ramesh Babu A, Ramesh Babu N (1999) Effective nesting of rectangular parts in multiple rectangular sheets using genetic and heuristic algorithms. Internat. J. Productions Res. 37(7):1625–1643.

345

Valenzuela CL, Wang PY (2001) Heuristics for large strip packing problems with guillotine patterns: An empirical study. Proc. 4th Metaheuristics Internat. Conf. 417–421. Wäscher G, Haußner H, Schumann H (2007) An improved typology of cutting and packing problems. Eur. J. Oper. Res. 183:1109–1130. Wu Y, Huang W, Lau S, Wong CK, Young GH (2002) An effective quasi-human based heuristic for solving the rectangle packing problem. Eur. J. Oper. Res. 141(2):341–358. Zhang D, Kang Y, Deng A (2006) A new heuristic recursive algorithm for the strip rectangular packing problem. Comput. Oper. Res. 33(8):2209–2217. Zhang D, Liu Y, Chen S, Xie X (2005) A metaheuristic algorithm for the strip rectangular packing problem. Lecture Notes in Comput. Sci. 3612:1235–1241.