an iterated construction approach with dynamic prioritization for solving the container loading...

14
An iterated construction approach with dynamic prioritization for solving the container loading problems Andrew Lim a , Hong Ma b,, Jing Xu c , Xingwen Zhang d a Department of Management Sciences, City University of Hong Kong, Tat Chee Ave., Kowloon Tong, Hong Kong b Department of Management Science and Engineering, School of Management, Zhejiang University, 866 Yuhangtang Road, Hangzhou, China c Department of Industrial Engineering, Tsinghua University, Beijing, China d Graduate School of Business, Stanford University, 518 Memorial Way, Stanford, CA, USA article info Keywords: Container loading problems Dynamic prioritization Iterated construction Warehouse management system abstract This paper addresses the single and multiple container loading problems, which forms the core engine of a warehouse management system we are contracted to implement for a Hong Kong logistics company. We propose to use dynamic prioritization to handle the awkward box types, whereas the box type with a higher priority is packed onto lower surfaces of the container for the single container case, or packed in earlier containers for the multiple container case. The solution found in one iteration of the algorithm is analyzed, and the priorities are updated and used in the next iteration. This approach provides very com- petitive results using standard benchmark data sets as compared with other methods. It helps to reduce the difficulty in system implementation and maintenance, because the algorithm is easy to understand for practitioners in the local industry, and it is applicable for both the single and multiple container load- ing problems at the same time. In addition, we find the existing test data for the multiple container load- ing problem to be deficient and supplement them by generating new test data consisting of 2800 test cases. Last but not least, our algorithm has been packaged into a software component with full graphical user interface and integrated into a warehouse management system for daily operations. Ó 2011 Elsevier Ltd. All rights reserved. 1. Introduction In the container loading problem, a consignment consists of n different types of small three-dimensional rectangular boxes that are required to be loaded into a three-dimensional rectangular container. The boxes must be packed orthogonally into the con- tainer, i.e., the edges of the boxes must be parallel to one edge of the container. Each box must be completely packed in the con- tainer, and cannot overlap with any other box. Boxes with the same dimensions and same characteristics, like weight, Stock Keeping Unit (SKU), are grouped into the same box type. For each box type, a given amount of boxes are available. The boxes are allowed to be stowed in all or some of the six possible orientations. There are two main container loading problems according to Dychhoff (1990). The first problem is to load the entire or part of the consignment into a single container. The objective is to maxi- mize volume utilization or to minimize the unused container vol- ume. The second problem, multiple container loading problem, is to load the entire consignment into one or more identical contain- ers. The objective is to minimize the number of containers used. When the primary objective is space utilization, this problem is essentially the same as the pallet packing problem which requires the boxes to be loaded on pallets instead of containers. The main difference is that a pallet provides no lateral support for the boxes. The container loading problem contains the well-known Knapsack problem which is NP-hard. Therefore, it is also NP-hard. Despite its theoretical hardness, the problem is of great importance in logis- tics as an increase in volume utilization or a reduction in the number of containers used means an immediate savings in trans- portation costs, which is essentially one of the main purposes of our business project with the local logistic company. In Section 2, we review the literature in detail. Our algorithm for the single container loading problem is proposed and explained in Section 3, while Section 4 gives the algorithm for multiple con- tainer loading problems. Experiment setting and results are pre- sented in Section 5. In Section 6, we demonstrates the software component where our algorithm is packaged into. Finally, we con- clude our paper in Section 7. The following notations are adopted for the rest of the paper: the container has length L, width W and height H; the n types of boxes are denoted as Box 1, Box 2, ..., Box n, while each box type i has dimensions l i , w i , h i and the given quantity m i . The bottom- left-back corner of the container is the origin of the coordinate 0957-4174/$ - see front matter Ó 2011 Elsevier Ltd. All rights reserved. doi:10.1016/j.eswa.2011.09.103 Corresponding author. Tel.: +86 571 88206827. E-mail address: [email protected] (H. Ma). Expert Systems with Applications 39 (2012) 4292–4305 Contents lists available at SciVerse ScienceDirect Expert Systems with Applications journal homepage: www.elsevier.com/locate/eswa

Upload: andrew-lim

Post on 07-Sep-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Expert Systems with Applications 39 (2012) 4292–4305

Contents lists available at SciVerse ScienceDirect

Expert Systems with Applications

journal homepage: www.elsevier .com/locate /eswa

An iterated construction approach with dynamic prioritization for solvingthe container loading problems

Andrew Lim a, Hong Ma b,⇑, Jing Xu c, Xingwen Zhang d

a Department of Management Sciences, City University of Hong Kong, Tat Chee Ave., Kowloon Tong, Hong Kongb Department of Management Science and Engineering, School of Management, Zhejiang University, 866 Yuhangtang Road, Hangzhou, Chinac Department of Industrial Engineering, Tsinghua University, Beijing, Chinad Graduate School of Business, Stanford University, 518 Memorial Way, Stanford, CA, USA

a r t i c l e i n f o

Keywords:Container loading problemsDynamic prioritizationIterated constructionWarehouse management system

0957-4174/$ - see front matter � 2011 Elsevier Ltd. Adoi:10.1016/j.eswa.2011.09.103

⇑ Corresponding author. Tel.: +86 571 88206827.E-mail address: [email protected] (H. Ma).

a b s t r a c t

This paper addresses the single and multiple container loading problems, which forms the core engine ofa warehouse management system we are contracted to implement for a Hong Kong logistics company.We propose to use dynamic prioritization to handle the awkward box types, whereas the box type witha higher priority is packed onto lower surfaces of the container for the single container case, or packed inearlier containers for the multiple container case. The solution found in one iteration of the algorithm isanalyzed, and the priorities are updated and used in the next iteration. This approach provides very com-petitive results using standard benchmark data sets as compared with other methods. It helps to reducethe difficulty in system implementation and maintenance, because the algorithm is easy to understandfor practitioners in the local industry, and it is applicable for both the single and multiple container load-ing problems at the same time. In addition, we find the existing test data for the multiple container load-ing problem to be deficient and supplement them by generating new test data consisting of 2800 testcases. Last but not least, our algorithm has been packaged into a software component with full graphicaluser interface and integrated into a warehouse management system for daily operations.

� 2011 Elsevier Ltd. All rights reserved.

1. Introduction

In the container loading problem, a consignment consists of ndifferent types of small three-dimensional rectangular boxes thatare required to be loaded into a three-dimensional rectangularcontainer. The boxes must be packed orthogonally into the con-tainer, i.e., the edges of the boxes must be parallel to one edge ofthe container. Each box must be completely packed in the con-tainer, and cannot overlap with any other box. Boxes with the samedimensions and same characteristics, like weight, Stock KeepingUnit (SKU), are grouped into the same box type. For each box type,a given amount of boxes are available. The boxes are allowed to bestowed in all or some of the six possible orientations.

There are two main container loading problems according toDychhoff (1990). The first problem is to load the entire or part ofthe consignment into a single container. The objective is to maxi-mize volume utilization or to minimize the unused container vol-ume. The second problem, multiple container loading problem, isto load the entire consignment into one or more identical contain-ers. The objective is to minimize the number of containers used.

ll rights reserved.

When the primary objective is space utilization, this problem isessentially the same as the pallet packing problem which requiresthe boxes to be loaded on pallets instead of containers. The maindifference is that a pallet provides no lateral support for the boxes.The container loading problem contains the well-known Knapsackproblem which is NP-hard. Therefore, it is also NP-hard. Despite itstheoretical hardness, the problem is of great importance in logis-tics as an increase in volume utilization or a reduction in thenumber of containers used means an immediate savings in trans-portation costs, which is essentially one of the main purposes ofour business project with the local logistic company.

In Section 2, we review the literature in detail. Our algorithm forthe single container loading problem is proposed and explained inSection 3, while Section 4 gives the algorithm for multiple con-tainer loading problems. Experiment setting and results are pre-sented in Section 5. In Section 6, we demonstrates the softwarecomponent where our algorithm is packaged into. Finally, we con-clude our paper in Section 7.

The following notations are adopted for the rest of the paper:the container has length L, width W and height H; the n types ofboxes are denoted as Box 1, Box 2, . . ., Box n, while each box typei has dimensions li, wi, hi and the given quantity mi. The bottom-left-back corner of the container is the origin of the coordinate

A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305 4293

system; the length, width and height of the container lie on thepositive x, y and z axes.

2. Literature review

Based on the number of different box types, the container load-ing problem can be classified into three categories, namely, thehomogeneous problem with only one type of box, the weakly heter-ogeneous problem with relatively few box types and the stronglyheterogeneous problem with a large number of different boxestypes.

Fig. 1. The G4-structure.

2.1. Container loading problem with homogeneous boxes

Most researchers have focused on the ‘‘Manufacturer’s PalletPacking Problem’’ (MPPP) in which identical boxes are requiredto be loaded onto a rectangular loading pallet. When there is onlyone type of box, the multiple loading problem is essentially re-duced to the single loading problem. Even though the algorithmsfor packing heterogeneous boxes are applicable to the MPPP, manyspecific algorithms for the MPPP have been developed.

The MPPP can be approached from a three-dimensional point ofview. In George (1992), walls (or layers as the author calls them)are built across the depth dimension. Each layer is constructedby a two-dimensional packing algorithm. The method is enhancedby unpacking and repacking boxes and by rotating the container.George (1992) also developed a set of upper bounds on the optimalsolution by improving the simple volume bound. In Liu and Hsiao(1997), a layer and knapsack approach first determines the maxi-mal number of boxes on a pallet of size L �W, for each of the threepossible types of layers with height h, w and l respectively. Thusthe original three-dimension problem is reduced into a one-dimen-sion knapsack problem, which aims to find the best combination ofthe three types of layers with the total height limitation H to max-imize the total number of boxes.

Although the MPPP can be approached from a three-dimen-sional point of view, in most practical situations, it is reduced tothe two-dimensional ‘‘Pallet Loading Problem’’ (PLP) by assumingthat the boxes are only allowed to be placed upright. Actually,the above three-dimensional approaches also need to solve thePLP instances. In the past decades, the PLP was well studied andnumerous works have been published on exact algorithms, upperbounds and heuristic algorithms. Nelißen (1993) provided anexcellent survey of the PLP. On the complexity of the PLP, (Nelißen,1995) stated that ‘‘the widespread claim that the PLP is NP-com-plete has not been proven and is actually doubtful since the encod-ing of any problem instance, no matter how large, requires onlyfour integers, unlike ‘traditional’ NP-complete problem, where lar-ger instances correspond to a larger number of input ‘items’’’.

In the literature, all known exact algorithms have an exponentialworst-case time complexity. In Dowsland (1987), an exact algo-rithm is developed based on a graph-theoretic model of the prob-lem. The PLP is transformed into ‘‘Independent Set’’ problem. Thecardinality of the vertex set in the corresponding graph was reducedwith the application of ‘‘equivalence classes’’ and ‘‘raster points’’ tothe PLP. Bhattacharya, Roy, and Bhattacharya (1998) presented adepth-first search algorithm with the concept of the MaximalBreadth Filling Sequence, which helps to bring down the size ofthe search tree. The algorithm was further improved by use of lowerbound pruning and state dominance pruning. Some other exact ap-proaches are introduced in Nelißen (1993). The success of exactalgorithms relies on the tightness of the upper and lower boundsdeveloped from mathematical or structural constraints.

Upper bounds for the PLP are used to evaluate the performanceof the heuristics, to prove the optimality of the heuristics, and to

improve the efficiency of the heuristic and exact algorithms. Thecommon upper bounds include the area bound, the Barnes bound(Barnes, 1979), the bound from the linear programming relaxationof the PLP, and the bound based on structural constraints Nelißen(1995). All the bounding techniques are applicable to the equiva-lence class of the instance, which possibly further tightens thebound. Nelißen (1993), Letchford and Amaral (2001) providedexcellent reviews of upper bounds, and the latter paper pointedout that the bound from the linear programming relaxation andNelißen’s bound based on structural constraints dominate all otherknown bounds.

There are many heuristics used to solve the PLP in the literature.In Scheithauer and Terno (1996), a heuristic algorithm based onthe so-called G4-structure of packing patterns solves all instances,up to 50 boxes, optimally. The G4-heuristic is also able to obtainoptimal solutions for some instances with more than 200 packedboxes. To solve even larger instances (e.g., more than 6800 packedboxes), G and Kang (2001) proposed a new heuristic algorithmbased on the 5-block structure. To reduce the computation time,the heuristic is limited to searching only a small subset of the solu-tions with 5-block structures that have high probability of includ-ing the optimal layouts. Arenales and Morabito (1995) presentedan AND/OR graph approach to solve the PLP, considered as a specialcase of two-dimensional non-guillotine cutting problems.

2.1.1. The G4-heuristic for the pallet loading problemOur algorithms for the single and multiple container loading

problems use the more easy-going G4-heuristic as a sub-routineto pack boxes within a single type onto a given surface. Therefore,the G4-heuristic is introduced in greater detail. The following def-initions on the G4-structure are from the work by Scheithauer andTerno (1996), Scheithauer and Sommerweiß (1998).

Definition 1. A packing pattern of a pallet with n pieces is said tobe of guillotine structure (G-structure) if n is not greater than 3 or ifthere exits a partition of the pallet in two rectangles such that anyof the two corresponding patterns is of the G-structure itself.

Definition 2. A homogeneous pattern is said to be a 1-block struc-ture. For k P 2, a packing pattern with n (n P k) pieces is said to bea k-block structure if there exists a partition of I = {1, . . . ,n} in q dis-junctive subsets Ij, j = 1, . . ., q, q 6 k, such that each Ij forms a blockpattern that is of pj-block structure with pj 6 k.

From the recursive definition of the G-structure and the 3-blockstructure, it is clear that a packing pattern has a k-block structurewith k 6 3 if and only if the pattern is of a G-structure.

Definition 3. A packing pattern of a pallet with n pieces is said tobe of G4-structure if the pattern has a k-block structure with ak 6 4.

The G4-structure should be interpreted as a guillotine, 4-blockstructure, or a generalized 4-block structure pattern. Fig. 1 showsthe general form of a G4-structure where each block, Bi (i = 1, 2, 3

Fig. 2. G4 (40, 25, 7, 3).

4294 A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305

and 4), is a G4-structure. Fig. 2 shows an example packing patternwith a G4-structure, G4 (40, 25, 7, 3), which is an optimal solutionfor the PLP (L = 40,W = 25, l = 7,w = 3). The recursive definition ofthe G4-structure allows us to compute the optimal solution with aG4-structure using a recurrence formula and dynamic program-ming. For more details on the implementation of the G4-heuristicand the bounding techniques, we refer the readers to Scheithauerand Terno (1996), Scheithauer and Sommerweiß (1998).

2.2. Heterogeneous container loading problems

For the heterogeneous container loading problem, more than onetype of box are to be loaded in the container. When pallets are usedinstead of containers, it is called the ‘‘Distributor’s Pallet PackingProblem’’. It is also called ‘‘Three-Dimensional Bin-Packing Prob-lem’’(3BP) when there is only one box in each box type to be loadedin multiple containers. Due to the problem’s complexity and hard-ness, most results on this topic are based on heuristics and meta-heuristics. There is considerably less theoretical development ascompared to the PLP.

2.2.1. The single container loading problem with heterogeneous boxesThere are three basic approaches used in the heuristics based on

wall-building, layer-building and AND/OR-graph respectively. Thewall-building approach, first proposed by George and Robinson(1980), constructs vertical walls across the container length orwidth. Different variants of the wall-building approach have beenused by Liu and Chen (1981), Bischoff and Marriott (1990),Gehring, Menscher, and Meyer (1990), Hemminki (1994). Thelayer-building approach (Bischoff, Janetz, & Ratcliff, 1995; Bortfeldt& Gehring, 1997; Loh & Nee, 1992; Portmann, 1990) builds theloading plan layer by layer from the bottom of the containerupwards. Some researchers also build layers by the G4, M4 orM8 heuristics (c.f. Scheithauer & Sommerweiß, 1998; Terno,Scheithauer, Sommerweiß, & Riehme, 2000). Morabito andArenales (1994) proposed the AND/OR-graph approach generalizingthe other two approaches. This approach actually search for all G-structure patterns in the three-dimension container loading.

Based on these approaches, many heuristic frameworks can beused. Most earlier heuristics are greedy based with some refine-ments. In recent years, more methods for optimization problemshave been applied to the container loading problem, including(Terno et al., 2000), Genetic Algorithms (Bortfeldt & Gehring,2001; Gehring & Bortfeldt, 1997), Tabu search (Bortfeldt & Gehring,1997), tree search (Eley, 2002; Pisinger, 2002; Fanslau & Bortfeldt,2010) and maximal-space algorithm (Parreño, Alvarez-Valdes,Oliveira, & Tamarit, 2007, 2010).

Approaches similar to the 4-block and 5-block structure heuris-tics of the two-dimensional pallet loading problem are also pre-sented in the literature. In Lins, Lins, and Morabito (2002), arecursive algorithm partitions the container into specific sub-con-tainers that are either recursively partitioned, or filled with a blockof boxes of the same type and orientation.

In the literature, the most common objective of the containerloading problem is to maximize the volume utilization. In practice,a variety of additional constraints have to be considered. Bischoffand Ratcliff (1995a) provided an excellent overview of the practicalconstraints, including load stability and weight distribution withinthe container.

2.2.2. Multiple container loading problem with heterogeneous boxesCompared to single container loading problem, less attention

were given to the multiple container loading problem, and amongthem most focused on the specific 3BP problem. For the 3BP prob-lem, Corcoran and Wainwright (1992) first proposed a genericalgorithm and Mohanty, Mathur, and Ivancic (1994) presented aheuristic approach based on an Integer Programming formulation.Later, Martello, Pisinger, and Vigo (2000) developed both exact andheuristic algorithms using branch and bound. Faroe, Pisinger, andZachariasen (2003) gave a guided local search heuristic based oniterative solution of constraint satisfaction problems. And thereare also heuristic algorithms based on Tabu search frameworksLodi, Martello, and Vigo (2002) for the 3BP problem.

Though the multiple container loading problem can be solved asan 3BP problem by differentiating the boxes of the same type, it isnot an efficient approach. Therefore, researchers modified and ex-tended the algorithms for the single container loading problem toaddress multiple containers (c.f.Bischoff & Ratcliff, 1995b; Ternoet al., 2000; Eley, 2002). The sequential approach and the simulta-neous approach are most commonly used to convert them to han-dle multiple container problems.

The sequential approach, which we adopts in this work, fills thecontainers one after another (Martello et al., 2000). First usingalgorithms for the single container problem, it attempts to fill asingle container with the highest volume utilization. Then, thoseboxes already packed in the container are removed from the con-signment. The algorithm goes on with the reduced consignmentand a new empty container until the whole consignment is loaded.Recently, Takahara (2006, 2008) further applies meta-heuristic ap-proaches such as local search with multiple starts and simulatedannealing with the sequential approach based on a greedy ‘‘first-fit’’ concept.

In the simultaneous approach, a given number of k containers arefilled simultaneously or in parallel. By applying different algo-rithms to the single container case, the corresponding simulta-neous approaches vary. The most straightforward way is topartition the whole consignment into k sub-consignments, andthen one of the single container algorithms is applied to each ofthe k sub-consignments. In the algorithms developed by Bischoffand Ratcliff (1995b), Eley (2002), they exam all possible combina-tions of boxes and determine the most profitable combination,which minimizes the unusable space or maximizes the area utiliza-tion. The boxes are then packed into their corresponding contain-ers. The sequential approach and the simultaneous approach canalso be combined to form a new approach, namely the semi-simul-taneous approach (Terno et al., 2000).

3. Iterated construction algorithm for the single containerloading problem

In previous approaches for single container loading problems,the existence of the ‘‘trouble-making’’ box types is widely

A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305 4295

observed. They refer to the box types that are large as comparedwith the dimensions of the container and therefore awkward topack. In most of the previous approaches, ranking rules are appliedto accommodate boxes of large sizes in early stages. For example,in the approach developed by George and Robinson (1980), thebox type with larger size in its smallest dimension is given a higherranking. In the work by Eley (2002), the boxes are sorted by vol-ume with larger boxes being chosen first. The ranking rules are al-ways predefined and applied to all problem instances throughoutthe approaches, which is not flexible and probably inaccurate forall instances as we have observed.

The existence of ‘‘trouble-making’’ elements suggests that theuse of dynamic prioritization in the algorithm can possibly im-prove the solution quality, as indicated by the development ofmodern heuristics such as the greedy randomized adaptive searchprocedures (GRASP) (Feo & Resende, 1995) and the squeakywheel optimization (SWO) (Joslin & Clements, 1998, 1999). Inour algorithm for single container loading problems, each boxtype is given a priority factor. The priority factor, also known asblame, of each box type is initially assigned to one and dynami-cally updated from iteration to iteration during the execution ofthe algorithm.

During an iteration, a greedy heuristic integrated with a tree-search procedure is applied to load the container. The best solutionfound by the greedy heuristic is analyzed, and the priority factorsare updated with knowledge learned from the analysis. Box typesconsidered as ‘‘trouble-makers’’ are assigned with a larger quantityof blame, i.e. their priority factors are increased. Then, the proce-dure repeats and the greedy heuristic is applied again. ThisConstruct/Analyze/Prioritize (Joslin & Clements, 1998) cycle con-tinues until the maximal number of iterations is reached or thetime limit is exceeded. In the greedy heuristic, box types with high-er priority factors is handled in the early stages of the heuristic,which means that they are more likely to be packed onto lowersurfaces. In accordance to the priority factor concept proposed byBischoff and Ratcliff (1995b), the analysis of solutions constructedby the greedy heuristic and the prioritization guided by the analy-sis enable the algorithm to learn from previous iterations to updatethe priority factors, and the newly updated priority factors in turndetermine the next execution of the greedy heuristic. The evalua-tion value of a complete or partial solution is set as the sum ofthe evaluation values of each packed box. The evaluation value ofeach packed box is set as its volume for the single container load-ing problem. Therefore, for single container loading problems, theevaluation value is the same as the volume utilization in ouralgorithm.

3.1. The greedy heuristic

The greedy algorithm constructs the loading plan of a singlecontainer layer by layer from the bottom up. The horizontal planebetween layers are called surfaces. At the initial stage, the list ofavailable surfaces contains only the initial surface of size L �Wwith its initial position at height 0. At each step, the algorithmpicks the lowest usable surface and then selects the best layer tobe packed onto the surface. Each candidate layer is consist of boxesof the same type. The procedure select_layer determines the boxtype, the number of the boxes and the rectangle area the boxesto be packed onto, and then selects the layer with the highest eval-uation value as the best layer. After packing the specified numberof boxes onto the surface, the surface is divided into up to threesub-surfaces by the procedure divide_surfaces. Then, the originalsurface is deleted from the list of available surfaces and the newlygenerated sub-surfaces are inserted into the list. Then, the algo-rithm selects the new lowest usable surface and repeats the above

procedures until no surface is available or all the boxes have beenpacked into the container. The algorithm follows a similar basicframework as the one discussed by Bischoff et al. (1995). The pseu-do-code of the greedy algorithm is given by the greedy_heuristicprocedure. In the code, ‘‘depth’’ is the depth value of the treesearch, which will be described in Section 3.1.1, the Procedure ofselect_layer.

procedure greedy_heuristic ()list of surfaces :¼ initial surface of L �W at height 0list of box types :¼ all box typeswhile (there exist usable surfaces) and (not all boxes arepacked) do

select the lowest usable surface as current surfaceset depth :¼ 0set best_layer :¼ select_layer(list of surfaces, list of box

types, depth)pack best_layer on current surfacereduce the number of the packed box type by the packed

amountset a list of new surfaces :¼ divide_surfaces(current

surface, best_layer, list of box types)delete current surface from the list of surfacesinsert each surface in list of new surfaces into list of

surfacesend while

3.1.1. The procedure to select the best layer for the current surfaceThe procedure to select the layer with the highest evaluation

value for the current surface essentially uses the same algorithmas the greedy heuristic. Given a partial solution represented bythe list of available surfaces, the list of box types with their remain-ing amounts, and the initial depth value, 0, the procedure contin-ues to fill the container layer-wise from the bottom upwardsuntil no surface is available or all the boxes have been packed.The depth value grows accordingly with the number of newlypacked layers by the procedure.

In order to improve the solution quality, i.e., to achieve a high-er evaluation value, a tree search-like heuristic is employed. Ateach depth level, after the procedure picks the lowest usable sur-face, instead of selecting one layer as done in the greedy heuris-tic, the procedure selects b (b P 1, its value depends on thecurrent depth level) layers by the subroutine select_layer_locally.With these b layers, the procedure carries on the search in bbranches to compute the evaluation value of these b brancheswith their depth values increased by one. The evaluation valuesof these branches are then computed by the same procedure withnon-increasing breadth values as determined by the new depthvalue.

More specifically, we have a non-increasing array (b0,b1, . . . ,bp),to refer to the maximal breadth at each of the k = 0, 1, . . ., p depthlevels. After the pth depth level, the maximal breadth allowed is al-ways one. When computing the evaluation value for each of the b0

branches of the initial node, the procedure expands b1 nodes. Foreach of these b1 nodes, b2 children are expanded. The procedurekeeps on expanding the nodes until no further expansion is possi-ble, i.e., no surface is available or all the boxes have been packedinto the container. For efficient use of the memory space, theprocedure follows the depth-first search strategy. Among the b0

branches of the initial node, the procedure selects the one withthe most promising evaluation value, and returns the correspond-ing layer as the best choice to the calling greedy_heuristicprocedure.

4296 A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305

procedure select_layer (list of surfaces, list of box types,depth)if (no usable surface exists) or (all boxes are packed) then

return the empty layer with an evaluation value ofcurrent solutionend ifif (depth > p) then

set breadth :¼ 1else

set breadth :¼ bdepth

end ifselect the lowest usable surface as the current surfaceset the list of layers :¼ select_layer_locally(current surface,list of box types, breadth)delete current surface from list of surfacesset best_layer :¼ empty layer with evaluation value of 0for all current_layer in list of layers do

pack current_layer on current surfacereduce the amount of the packed box type by the packed

amountset list of new surfaces :¼ divide_surfaces(current surface,

current_layer, list of box types)insert each surface in list of new surfaces into list of

surfacesset temp_layer :¼ select_layer(list of surfaces, list of box

types, depth + 1)if (temp_layer with higher evaluation value than

best_layer) thenset best_layer :¼ current_layer with evaluation value of

temp_layerend ifunpack current_layer from current surfaceincrease the amount of unpacked box type by the

unpacked amountremove each surface in list of new surfaces from list of

surfacesend forinsert current surface into list of surfacesreturn best_layer with its evaluation value

Following the procedure, let (4, 2, 1, 1, . . .) be the given maximalbreadth array. A possible expanding graph for the initial node isshown in Fig. 3. Suppose that the leftmost branch generates themost promising evaluation value. The procedure will return thecorresponding first layer back to the greedy_heuristic.

The approach presented above is different from the tree searchapproaches presented in Eley (2002), Pisinger (2002) in which the

Fig. 3. The expanding graph.

breadth at each level is predetermined and fixed thoughout thealgorithm. In our approach, depending on the different depth levelof the current step, the breadth is different. The breadth is non-increasing with regard to the depth level. A rule of thumb is to halfbreadth as the depth is increased by one until the breadth reachesone. The idea to limit the breadths of different depth levels is in-spired and motivated by the Chained Lin-Kernighan algorithm forlarge-scale traveling salesman problems (Applegate, Cook, & Rohe,2003). The advantage is that the number of nodes expanded ispolynomial to the maximal depth of the problem, instead of expo-nentially growing with regard to the problem size.

3.1.2. The procedure select_layer_locallyThe procedure select_layer_locally generates a list of up to a gi-

ven number of layers to be used in the procedure select_layer,according to a set of predefined ranking rules. The ranking rulesconsider factors including the box type, the box amount packed,the area covered by the arrangement and the area utilization.

For each permitted orientation of each box type, only one of thelayers constructed by the G4-heuristic for the two-dimensional PLPis chosen to be a candidate layer. The reason for choosing only onelayer is to introduce more diversification into the search, by allow-ing other orientations or other box types to have a higher chance ofbeing selected. The candidate layer is chosen to be the layer withthe maximal product of the number of boxes packed and the areautilization of the packing rectangle to which the G4-heuristic is ap-plied. The purpose is to balance between the number of boxespacked and the area utilization of the packing rectangle, so as toavoid arrangements with the maximal number of boxes but poorarea utilization or arrangements with 100% area utilization buttoo few boxes.

The candidate layers are ranked according to the product of thepriority factor of the box type and the area utilization of the sur-face. The ranking rule allows the box types with larger priority fac-tors to be packed on lower surfaces, while maintaining high areautilization. The required number of candidate layers with the high-est priorities are finally selected to be used in the procedureselect_layer.

3.1.3. The procedure to divide the loading surface into sub-surfacesGiven a layer of boxes of the same type arranged by the G4-heu-

ristic, the layer is always packed in the bottom-left corner of theloading surface. As illustrated in Fig. 4, up to three sub-surfacesare to be created from the original loading surface by the proce-dure divide_surfaces, including the top surface, which is above thelayer just packed, and the possible spaces that might be left atthe sides. If l = L or w = W, the original surface is simply dividedinto one or two sub-surfaces, the top surface and a possible sidesurface. Otherwise, two possible division variants exist, i.e., to di-vide into the top surface, the surface (B,C,E,F) and the surface

lL

w

W

H I

G F E

D

CBA

Fig. 4. Division of the loading surface.

A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305 4297

(F,G,H, I), or to divide into the top surface, the surface (B,C,D, I) andthe surface (D,E,G,H). The divisions are done according to the fol-lowing criteria, which are similar to those in Bischoff et al. (1995),Bortfeldt and Gehring (1997).

The primary criterion is to minimize the total unusable area ofthe division variant. If none of the remaining boxes can be packedonto a sub-surface, the area of the sub-surface is unusable. The sec-ondary criterion is to avoid the creation of long narrow strips. ‘‘Theunderlying rationale is that narrow areas might be difficult to fillsubsequently’’. More specifically, if L � l P W � w, the loading sur-face is divided into the top surface, the surface (B,C,E,F) and thesurface (F,G,H, I). Otherwise, it is divided into the top surface, thesurface (B,C,D, I) and the surface (D,E,G,H).

3.2. The analyzer and prioritizer

In the analyze/prioritize step, those box types that are consid-ered as ‘‘awkward’’ are assigned more blame, which causes theirpriority factors to increase more. The priority factors will then beused to guide the greedy heuristic in the construction step.

A number of possible ways exist to analyze the solution and up-date the priority factors. For example, a possible way is to increasethe priority factor of each box type by the amount proportional tothe number of boxes that are not loaded. In view of the situationthat the portion of consignment that is not loaded is relativelysmall for single container loading problems, in order to reducethe parameter tuning effort and to provide a common analyzerand prioritizer for both single and multiple container loading prob-lems, the unloaded part of the consignment is considered to beloaded in an assumptive second container, and the priority factorof each box type is increased by an amount that is equal to (1 –the average volume utilization of the box type). The volume utiliza-tion for each single box is defined to be the volume utilization ofthe container in which it is packed, while the volume utilizationof a container is the ratio of the sum of the volume of the packedboxes to the total container volume. The average utilization vol-ume for each box type is the sum of the volume utilization of eachbox of the box type divided by the total number of the box type.The underlying rationale for the prioritization scheme is that theunpacked boxes should be handled in earlier stages of the con-struction heuristic, that is, they should be packed onto lower sur-faces of the container.

4. Iterated construction algorithm for multiple containerloading problems

The iterated construction for single container loading problemscan be modified and extended to address the multiple containerloading problem by using the sequential approach. That is, the con-tainers are filled one after another. The approach attempts to fill asingle container with the highest evaluation value by the greedyheuristic for single container loading problems. Then, those boxesalready packed in the container are removed from the consignment.The construction heuristic goes on with the reduced consignmentand a new empty container until the whole consignment is loaded.

The reasons for using the sequential approach, instead of thesimultaneous one, include the use of prioritization, the superiorityof the sequential approach over the simultaneous approach forlayer-building algorithms (Bischoff & Ratcliff, 1995b) and the easeof implementation.

Similar to the situation in single container loading problems,the existence of ‘‘trouble-making’’ box types is also observed inmultiple container loading problems. The existence of troublespots means that the idea of prioritization for the single containerloading problem would possibly be useful for the multiple

container loading problems. In the original sequential approach,as the containers are packed one after another, a possible drawbackis that boxes used up during the packing of early containers mightbe better used to pack later containers. On the other hand, boxesthat should be packed in earlier containers are left to later contain-ers, which causes the later containers to have poor volume utiliza-tions. This drawback can be overcome by the prioritization, at leastpartially. With the prioritization, when the containers are packedsequentially, the boxes with high priorities are handled in earlierstages, i.e., they are packed in the earlier containers. Those boxeswith low priorities will be left over to later stages, i.e., they arepacked in the later containers. As those boxes with lower prioritiesare more easily packed, the volume utilizations of the later con-tainers will increase. Thus, the approach would possibly reducethe number of containers used. The excellent integration of the pri-oritization with the sequential approach is also verified by goodexperimental results in the following section.

When the greedy heuristic is applied to pack a single containerin multiple container loading problems, the evaluation value of acomplete or partial packing plan for a container is the sum of theevaluation values of each packed box. The evaluation value of eachpacked box is its volume multiplied by the priority factor of thebox type. Therefore, for multiple container loading problems, theevaluation value is not the same as the volume utilization, suchthat the effect of prioritization is not compromised. During an iter-ation of the algorithm for multiple container loading problems, thegreedy construction heuristic loads the whole consignment into anumber of containers sequentially. The solution found by the gree-dy heuristic is analyzed and the priority factors are updated by thesame analyzer and prioritizer used in the single container loadingproblem. Then, the greedy heuristic is applied again with new pri-ority factors and the above procedures are repeated. This cycle con-tinues until the maximal number of iterations is reached or thetime limit is exceeded.

5. Experimental results

The algorithms for container loading problems, includinghomogeneous cases, single heterogeneous cases and multiple het-erogeneous cases, were implemented in Java. The experimentswere carried out on a 2.40 GHz Pentium 4 PC with 512 MB memorylimit. Our algorithm is referred to as the IC (Iterated Construction)algorithm in the following sections.

5.1. Experimental results for homogenous container loading problems

In Lins et al. (2002), a test set of 14 randomly generated exam-ples was presented. For each example, dimensions of the containerare 50, 50 and 50 respectively, and the box dimensions (l,w,h)were sampled from a uniform distribution in the interval [5,25].The experimental results, together with those from Lins et al.(2002), are given in Table 1.

Column vub gives the volume upper bound given from the inte-ger part of the ratio of the container volume to the box volume.Column 2-D gives the number of boxes packed in the best 2-D solu-tion. In the 2-D approach, the vertical dimension of the box is fixedto be h. The approach leads to the pallet loading problem PLP(50,50, l,w), in which the maximal number of rectangles of size(l,w) are packed in a layer with the bottom surface of 50 � 50and height h. Then b50/hc such layers are stacked in the containerto give the best solution. Column lk gives the number of boxespacked in the best layer-knapsack solution. The layer-knapsack ap-proach divides the container into layers where each layer is a two-dimensional pattern made of box types that have a constant thirddimension. All the layers have the same bottom surface of size

Table 1Results for test cases LLM01–LLM14.

Problem l � w � h = vol vub 2-D lk gui L/L/M IC Time (s)

01 13 � 14 � 23 = 4186 29 18 24 22 26 24 5.6902 17 � 20 � 12 = 4080 28 16 22 22 26 24 4.2003 11 � 22 � 15 = 3630 30 24 27 27 29 28 9.1104 17 � 21 � 6 = 2142 58 32 47 46 54 48 21.5305 22 � 8 � 11 = 1936 60 48 54 54 58 55 36.3306 18 � 21 � 5 = 1890 65 40 54 54 57 54 27.8007 9 � 11 � 19 = 1881 66 48 60 57 62 60 59.1308 13 � 8 � 18 = 1872 66 48 64 60 64 64 42.3809 9 � 16 � 11 = 1584 78 64 74 72 75 74 119.2710 13 � 15 � 7 = 1365 91 63 79 79 84 80 117.6611 7 � 9 � 18 = 1134 110 78 102 100 106 102 93.2012 7 � 6 � 18 = 756 165 118 158 156 161 159 285.8813 7 � 9 � 11 = 693 180 156 176 170 176 176 376.5014 9 � 7 � 5 = 315 396 390 394 394 396 394 485.47

4298 A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305

50 � 50 and possibly a different height (l, w or h). The layer-knap-sack approach leads to a set of three two-dimensional pallet load-ing problems and one corresponding knapsack problem to find thenumber of layers of each type. Column gui gives the number ofboxes packed in the best guillotine solution. The column L/L/Mgives the number of boxes packed by the approach of Lins et al.(2002). The column IC gives the number of boxes packed by apply-ing our single container loading algorithm to these homogeneousinstances, while the column time gives the running times inseconds.

The experiments showed that our approach produced satisfac-tory results and compared well with other approaches to solvehomogeneous container loading problems although it was de-signed mainly for heterogeneous cases (the idea of prioritizationhas no effect in homogeneous cases since there exists only onetype of box in the consignment). In Table 1 for all the 14 test cases,our approach generated solutions better than or equal to the 2-D,gui and lk approaches. Only the L/L/M approach achieved better re-sults. Compared to the L/L/M approach, which recursively parti-tions the container into sub-containers, our approach provides ahigher degree of stability by building the loading plan layer bylayer from the floor of the container up. Meanwhile, the runningtime of our approach is reasonably short. The average running timefor the 14 cases is 120.29 s, while the maximum time is 485.47 s.

5.2. Experimental results for single heterogeneous container loadingproblems

Our approach for single heterogeneous container loading prob-lems was tested on standard benchmark instances from the litera-ture, including the 15 instances of Loh and Nee (1992) and the 700instances of Bischoff and Ratcliff (1995a). These benchmark in-stances are available online in the OR-Library (Beasley, 2010).

The 15 Loh/Nee test cases are denoted by LN01–LN15, wherethe number of different box types is between 6 and 10 and theaverage number of boxes for each box type is 22.2. Box orientationconstraints are included in the test cases. The 700 Bischoff/Ratclifftest cases are divided into seven test classes, namely BR1–BR7,where each test class consists of 100 test cases. For all the testcases, the container dimensions are L = 587, W = 233 and H = 220.The numbers of box types for BR1 to BR7 are 3, 5, 8, 10, 12, 15and 20 respectively. For each box type, the three dimensions weregenerated randomly from independent uniform distributions onthe intervals [30,120], [25,100] and [20,80] respectively. Thequantities were generated by adding a box to a randomly chosenbox type in each iteration, until the target Tc = L �W � H for the to-tal volume was reached. Box orientations that are consideredunstable are not allowed.

Our approach was compared with the approaches of Loh andNee (1992) (denoted by L/N), of Ngoi, Tay, and Chua (1994) (N/T/C), of Bischoff et al. (1995) (B/J/R), of Bischoff and Ratcliff (1995a)(B/R), of Gehring and Bortfeldt (1997) (G/B), of Bortfeldt and Geh-ring (1998) (B/G1), of Davies and Bischoff (1999) (D/B), of Ternoet al. (2000) (T/S/S/R), of Bortfeldt and Gehring (2001) (B/G2),and of Eley, 2002 (E). Additionally, B/R-comb combines the maxi-mal value of B/J/R and B/R for any test case.

5.2.1. Results for test cases LN01–LN15The experimental results for the 15 Loh/Nee test cases, together

with those in the literature, are given in Table 2. For each approachexcept L/N, the achieved volume utilization is given. The packingdensity given in L/N is an overestimation of the volume utilizationaccording to Bischoff and Ratcliff (1995a). Finally, the average vol-ume utilization and the number of optimal solutions in which allboxes are packed are given for each approach.

Among all the approaches, our algorithm achieved the secondhighest average volume utilization for the 15 test cases, only0.3% less than B/G1. The average running time for the 15 test casesis just 39.88 s, while the maximum time is 430.36 s.

5.2.2. Results for test classes BR1–BR7The experimental results for the 700 Bischoff/Ratcliff test cases

are summarized in Table 3. The minimal, average and maximal vol-ume utilizations of 100 test instances for each test class are pre-sented, together with the standard deviations of the instances.The average volume utilization increases as the number of boxtypes increases until it reaches 10. Then, the average volume utili-zation gradually decreases as the number of box types increases.But, for all test classes, the average volume utilization remainsabove 91%.

In Table 4, the overall average volume utilization for the 700test cases is given and compared with the utilizations achievedby other methods. The volume utilizations of other methods are ta-ken from the literature and updated with the most recent publica-tions. M/B/G, M/O, P1, P2 and F/B stand for the approaches fromMack, Bortfeldt, and Gehring (2004), Moura and Oliveira (2005),Parreño et al. (2007), Parreño, Alvarez-Valdes, Oliveira, and Tama-rit (2010), Fanslau and Bortfeldt (2010), respectively. The averagerunning time for the 700 test cases is 706.59 s, while the minimaland maximal times are 0.89 s and 4664.30 s respectively. Fig. 5shows the loading example for the test instance BR1-65 generatedin 15.81 s. The approach loaded 462 boxes of three different boxtypes in the container and achieved 97.06% volume utilization,the highest among all the 700 test cases.

The experiment demonstrates that our approach is among themost competitive ones in terms of volume utilization. It is worth

Table 2Results for the single container cases LN01–LN15.

Problem L/N 1992 N/T/C 1994 B/J/R 1995 B/R 1995a G/B 1997 B/G1 1998 T/S/S/R 2000 B/G2 2001 E 2002 IC –

01 78.1 62.5 62.5 62.5 62.5 62.5 62.5 62.5 62.5 62.502 76.8 80.7 89.7 90.0 90.7 96.7 93.9 89.8 90.8 96.403 69.5 53.4 53.4 53.4 53.4 53.4 53.4 53.4 53.4 53.404 59.2 55.0 55.0 55.0 55.0 55.0 55.0 55.0 55.0 55.005 85.8 77.2 77.2 77.2 77.2 77.2 77.2 77.2 77.2 77.206 88.6 88.7 89.5 83.1 91.1 96.3 91.6 92.4 87.9 93.507 78.2 81.8 83.9 78.7 82.7 84.7 84.7 84.7 84.7 84.708 67.6 59.4 59.4 59.4 59.4 59.4 59.4 59.4 59.4 59.409 84.2 61.9 61.9 61.9 61.9 61.9 61.9 61.9 61.9 61.910 70.1 67.3 67.3 67.3 67.3 67.3 67.3 67.3 67.3 67.311 63.8 62.2 62.2 62.2 62.2 62.2 62.2 62.2 62.2 62.212 79.3 78.5 78.5 76.5 78.5 78.5 78.5 78.5 78.5 78.513 77.0 84.1 82.3 78.1 85.6 85.6 85.1 85.6 85.6 84.914 69.1 62.8 62.8 62.8 62.8 62.8 62.8 62.8 62.8 62.815 65.6 59.5 59.5 59.5 59.5 59.5 59.5 59.5 59.5 59.5Average 74.2 69.0 69.5 68.6 70.0 70.9 70.3 70.1 69.9 70.6Optimal 11 11 10 11 12 13 12 13 13 12

Table 3Volume utilization (%) for the single container cases BR1–BR7.

Problem Minimum Average Maximum SD

BR1(3) 79.18 91.60 97.06 2.87BR2(5) 86.61 91.99 96.26 1.93BR3(8) 87.84 92.30 94.67 1.19BR4(10) 89.70 92.36 94.79 1.05BR5(12) 88.88 91.90 94.33 0.93BR6(15) 89.18 91.51 93.76 0.86BR7(20) 88.85 91.01 93.11 0.90

Table 4Average volume utilization for the single container cases BR1–BR7.

Approach Volume utilization (%)

B/J/R (Bischoff et al., 1995) 81.97B/R (Bischoff & Ratcliff, 1995a) 83.45B/R-comb (Bischoff et al., 1995) 84.94G/B (Gehring & Bortfeldt, 1997) 88.30B/G1 (Bortfeldt & Gehring, 1998) 91.26D/B (Davies & Bischoff, 1999) 84.19T/S/S/R (Terno et al., 2000) 88.51B/G2 (Bortfeldt & Gehring, 2001) 90.06E (Eley, 2002) 88.75M/B/G (Mack et al., 2004) 92.86M/O (Moura & Oliveira, 2005) 89.73P1 (Parreño et al., 2007) 93.82P2 (Parreño et al., 2010) 94.53F/B (Fanslau & Bortfeldt, 2010) 95.02IC 91.81

Fig. 5. Loading example for the test case BR1-65.

A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305 4299

noting that the purpose of the proposed iterated construction ap-proach is not intended for an algorithmic race with all the emerg-ing stat-of-the-art methods on the single container loading testcases. (Approaches from Parreño et al. (2007), Parreño et al.(2010), Fanslau & Bortfeldt (2010) were not available in literatureat the time when the project began.) A more practical goal is tomake our method simple enough to be implemented by softwaredevelopers with limited coaching in algorithmic development forboth the single and multiple container loading problems, so itcan become beneficial in the long term for system maintenanceby engineers with some basic knowledge in greedy methods.

5.3. Experimental results for multiple heterogeneous container loadingproblems

Our approach for multiple heterogeneous container loadingproblems was tested on standard benchmark instances from

Ivancic, Mathur, and Mohanty (1989) and a new set of test classesthat extend the BR set of test classes, BR1–BR7, for multiple con-tainer cases. In Ivancic et al. (1989), 47 test cases, denoted asIMM01–IMM47, were used for multiple container loading prob-lems. These benchmark instances are also available online fromthe OR-Library (Beasley, 2010). For the IMM test class, our ap-proach was compared with the approach developed by Ivancicet al. (1989) (I/M/M), the sequential approach by Bischoff and Rat-cliff (1995a, 1995b) (B/R), the sequential approach by Eley (2002)(E-seq), the simultaneous approach by Eley (2002) (E-sim), the bot-tleneck assignment approach by Eley (2003) (E-bot), the localsearch approach with annealing by Takahara (2006) (T-ls) andthe multi-start local search approach by Takahara (2008) (T-ms).

For the completeness of the experiment as well as a requestfrom a manager who strongly felt the 47 multiple container testcases were not sufficient, a new set of test classes were generatedfrom BR1–BR7. The generator uses a framework similar to the onedescribed in Bischoff and Ratcliff (1995b). The only input parame-ter of the generator is the target ratio, R, which is defined as the de-sired sum of the volume of the boxes in the cargo divided by thevolume of a single container. Given the target ratio, R, the 700 test

4300 A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305

cases, divided into seven test classes (BR-R-1–BR-R-7), are ran-domly generated with the random seed number given by Bischoffand Ratcliff (1995a). For each test case, the dimensions of the con-tainer, the number of box types, the dimensions of each box typeand the permitted orientations of each box type are all taken fromthe corresponding test case in the BR set. The quantities are gener-ated by adding a box to a randomly chosen box type in each itera-

Fig. 6. The key portion of the generator in Java.

Table 5Results for the multiple container cases IMM01–IMM47.

Problem Type Box vlb I/M/M 1989 B/R 1995a B/R 1995b

01 2 70 19 26 27 2702 2 70 7 11 11 1103 4 180 19 20 21 2604 4 180 26 27 29 2705 4 180 46 65 61 5906 3 103 10 10 10 1007 3 103 16 16 16 1608 3 103 4 5 4 409 2 110 16 19 19 1910 2 110 37 55 55 5511 2 110 14 18 19 2512 3 95 45 55 55 5513 3 95 20 27 25 2714 3 95 27 28 27 2815 3 95 11 11 11 1516 3 95 21 34 28 2917 3 95 7 8 8 1018 3 47 2 3 3 219 3 47 3 3 3 320 3 47 4 5 5 521 5 95 17 24 24 2622 5 95 8 10 11 1123 5 95 17 21 22 2224 4 72 5 6 6 725 4 72 4 6 5 526 4 72 3 3 3 427 3 95 4 5 5 528 3 95 9 10 11 1229 4 118 15 18 17 2330 4 118 18 24 24 2631 4 118 11 13 13 1432 3 90 4 5 4 433 3 90 4 5 5 534 3 90 7 9 9 835 2 84 2 3 3 336 2 84 10 18 19 1437 3 102 12 26 27 2338 3 102 25 50 56 4539 3 102 12 16 16 1840 4 85 7 9 10 1141 4 85 14 16 16 1742 3 90 4 4 5 543 3 90 3 3 3 344 3 90 3 4 4 445 4 99 2 3 3 346 4 99 2 2 2 247 4 99 3 4 3 4Total 579 763 763 777

tion, until the target Tc = R � L �W � H for the total volume isreached. Therefore, the total volume of the consignment will belarger than or equal to Tc and less than (Tc + the volume of the larg-est box), which is a reasonable setting based on our observation aswell as discussions with the company. Due to the non-disclosureagreement with the company, we only present the following snip-pet of Java code in Fig. 6 which is key to the generator.

E-seq 2002 E-sim 2002 E-bot 2003 T-ls 2007 T-ms 2008 IC –

27 26 25 25 25 2511 10 10 10 10 1021 22 20 20 20 1929 30 26 26 26 2655 51 51 51 51 5110 10 10 10 10 1016 16 16 16 16 16

4 4 4 4 4 419 19 19 19 19 1955 55 55 55 55 5517 18 17 16 16 1653 53 53 53 53 5325 25 25 25 25 2527 27 27 27 27 2712 12 11 11 11 1128 26 26 26 26 26

8 7 7 7 7 72 2 2 2 2 23 3 3 3 3 35 5 5 5 5 5

24 26 20 20 20 209 9 8 9 9 9

21 21 20 20 20 206 6 6 5 5 56 5 5 5 5 53 3 3 3 3 35 5 5 5 5 5

11 10 10 10 10 918 18 17 17 17 1722 23 22 22 22 2213 14 13 13 13 12

4 4 4 4 4 45 5 5 5 5 48 9 8 8 8 82 2 2 2 2 2

18 14 14 14 14 1426 23 23 23 23 2346 45 45 45 45 4515 15 15 15 15 15

9 9 8 9 9 916 15 15 15 15 15

4 4 4 4 4 43 3 3 3 3 34 4 4 3 3 33 3 3 3 3 32 2 2 2 2 23 3 3 3 3 3

733 721 699 698 698 694

Table 6Results for test classes BR-R-1–BR-R-7.

Problem Value of target ratio R

5.00 5.25 5.50 5.75

BR-R-1(3) 601 605 629 691BR-R-2(5) 600 600 612 689BR-R-3(8) 600 600 600 692BR-R-4(10) 600 600 600 690BR-R-5(12) 600 600 600 692BR-R-6(15) 600 600 600 696BR-R-7(20) 600 600 600 700

Table 7Average volume utilization for sequential containers.

Problem Container no.

1 2 3 4 5 6 7 8

BR-5.00-1(3) 95.11 94.13 92.57 90.60 88.13 39.44 51.19BR-5.00-2(5) 96.26 95.21 93.77 91.67 88.01 35.58BR-5.00-3(8) 97.01 96.02 95.00 93.13 89.46 29.94BR-5.00-4(10) 97.12 96.36 95.42 93.60 89.38 28.69BR-5.00-5(12) 97.27 96.53 95.54 94.17 90.38 26.66BR-5.00-6(15) 97.30 96.66 95.80 94.45 91.04 25.29BR-5.00-7(20) 96.65 95.85 95.35 94.30 91.18 27.16

BR-5.25-1(3) 94.99 94.24 92.88 91.07 89.19 61.33 41.28 9.06BR-5.25-2(5) 96.10 95.17 94.01 92.38 89.65 58.20BR-5.25-3(8) 97.03 96.17 95.09 93.50 90.82 52.85BR-5.25-4(10) 97.20 96.45 95.52 93.80 91.20 51.36BR-5.25-5(12) 97.35 96.52 95.75 94.35 91.65 49.89BR-5.25-6(15) 97.36 96.66 95.96 94.75 92.22 48.63BR-5.25-7(20) 96.65 95.87 95.57 94.78 92.59 50.23

BR-5.50-1(3) 94.91 94.24 93.06 91.55 90.03 79.46 24.63 30.91BR-5.50-2(5) 95.65 95.06 94.41 93.12 91.28 78.43 20.95BR-5.50-3(8) 96.53 95.97 95.30 94.35 92.56 75.81BR-5.50-4(10) 96.95 96.29 95.59 94.36 92.57 74.84BR-5.50-5(12) 97.26 96.48 95.83 94.74 93.01 73.28BR-5.50-6(15) 97.35 96.69 96.05 95.11 93.31 71.94BR-5.50-7(20) 96.62 95.95 95.65 94.66 93.18 74.50

BR-5.75-1(3) 95.15 94.32 93.08 91.50 89.86 86.85 26.85 50.79BR-5.75-2(5) 96.28 95.43 94.30 92.82 90.27 86.33 22.65BR-5.75-3(8) 97.03 96.31 95.34 94.02 91.89 87.12 15.03BR-5.75-4(10) 97.15 96.54 95.78 94.66 92.66 87.09 12.94BR-5.75-5(12) 97.36 96.66 95.96 95.01 93.06 87.92 10.48BR-5.75-6(15) 97.43 96.89 96.29 95.41 93.56 88.49 7.81BR-5.75-7(20) 96.76 95.98 95.67 94.85 93.70 88.36 10.20

Fig. 7. An example: packing of a pallet.

A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305 4301

4302 A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305

The values of the target ratio, R, are chosen to be 5.00, 5.25, 5.50and 5.75, which leads to four sets of test classes (BR-5.00-1–BR-5.00-7, BR-5.25-1–BR-5.25-7, BR-5.50-1–BR-5.50-7, and BR-5.75-1–BR-5.75-7). Therefore, altogether 4 � 700 = 2800 test cases aregenerated and experimented with. With these target ratios, as inBischoff and Ratcliff (1995b), at least six containers are needed toload the whole consignment. The reason for using the above fourvalues for the target ratio, R, instead of using only 5.00 as in Eley(2002), is to provide more challenging and representative test in-stances. When R = 5.00, experiments have shown that six contain-ers are enough to load the whole consignment for most of the testcases. From the point of view of volume utilization, loading a con-signment with the total volume just over five times the containervolume in six containers results in an average volume utilizationof 83.3%, which is relatively undemanding.

5.3.1. Results for test cases IMM01–IMM47The experimental results for the 47 IMM test cases, together

with those in the literature, are given in Table 5. For each instance,the column type gives the number of box types, the column boxgives the total number of boxes, and the column vlb gives the min-imal number of required containers calculated from the ratio of thetotal volume of all boxes to the volume of a single container.

Among all the approaches, the iterated construction achieved thebest overall result. The total number of containers required is re-duced to 694. Meanwhile, 21 of the 47 test cases are solved optimallyby our approach. Detailed comparisons of different results for eachtest case shows that our approach dominates other approaches, asit generated at least an equivalent solution for every test case, ifnot better. In Table 5, we can see that the iterated construction

Fig. 8. Rotate and display

generated four new best known solutions for IMM03, IMM28,IMM31 and IMM33. The average running time for the 47 test casesis as small as 6.43 s, while the maximal time is 107.70 s.

5.3.2. Results for test classes BR-R-1–BR-R-7The experimental results for the 2800 newly generated bench-

mark test cases are summarized in Table 6. For each test class,BR-R-K (R = 5.00–5.75, K = 1–7), which consists of 100 test cases,the total number of containers required is given. As discussed, atleast six containers are required to load the whole consignmentfor each test case, so the lower bound of the total number of con-tainers required for each test class is 600. Table 6 shows that formost test cases of the test classes with R = 5.00, 5.25 and 5.50,our approach is able to load the whole consignment using onlysix containers. For the test class with R = 5.75, when most of thetest cases require seven containers, 7.29% (51 out of 700) requireonly six containers. The results are satisfactory, as loading a con-signment with a total volume over 5.75 times the container vol-ume in six containers results in an average volume utilization ofmore than 95.83%. Among all 2800 test cases, only three requireeight containers and none requires more than eight.

The number of containers used generally decreases with an in-crease in problem heterogeneity. This possibly reflects the fact thatthe increase of box types provides more flexibility for the ap-proach, as the approach has more opportunities to choose boxtypes to build layers. For R = 5.75, the trend is not observed, possi-bly due to the large total consignment volume. Meanwhile, thenumber of containers required increases as the target ratio, R, in-creases. The increase is more pronounced when R grows from

step 5 of the packing.

A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305 4303

5.50 to 5.75. For example, the number grows rapidly from 600 forBR-5.50-3 to 692 for BR-5.75-3.

Eley (2002) applied his sequential and simultaneous ap-proaches on a set of test cases randomly generated by a similarprocedure with the target ratio R = 5.0. Out of 100 test cases withthree or five types of boxes, eight of them require an additionalseventh container with his approach. With our approach, out of

Fig. 9. Printout of step by s

200 test cases with three or five types of boxes, only one of themrequires an additional seventh container while others are all solvedusing six containers. In the work by Bischoff and Ratcliff (1995b),sequential and simultaneous approaches are applied to a set ofmulti-pallet loading problems with the target ratio R = 5.0. Theaverage number of pallets required was 6.119 for the sequentialapproach and 6.441 for the simultaneous approach while with

tep packing sequence.

4304 A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305

our approach, the average number of containers required for the700 test cases with R = 5.0 is just 6.001, a value very close to theoptimal value of 6. When the target ratio is R = 5.5, the averagenumber of pallets required by the sequential and simultaneous ap-proaches by Bischoff and Ratcliff (1995b) was 6.975 and 7.109while the corresponding figure is 6.059 with our approach.Although in their setting, boxes are to be loaded onto pallets thathave different dimensions from the containers used in our exam-ples, the strength of iterated construction is still well demonstratedby the comparisons.

In Table 7, the average volume utilizations of containers in thepacking sequence are given. Within an individual test class (inrow-wise order in Table 7), the average volume utilization de-creases as the container number increases. This results from thefact that our approach follows the sequential strategy. When com-paring results for the first five containers (in column-wise order inTable 7), the average volume utilization increases as the number ofbox types increases until it reaches 15. Then, the average volumeutilization decreases as the number of box types increases to 20.This trend is more obvious from the average volume utilizationof the last containers, which are not completely filled due to insuf-ficient total volume of the remaining consignment. A similar trendwas observed for the single container loading problem. This possi-bly reflects the characteristics of our approach, which uses thelayer-building greedy heuristic as the underlining constructionalgorithm (Bischoff & Ratcliff, 1995b). When comparing resultsfor the sixth containers, the average volume utilization for differ-ent R values increases in steps of 20–25%. The increase in volumeutilization of the sixth containers implies that the problem diffi-culty increases with the value of R. This justifies the previous claimthat test instances only with R = 5.00 are not challenging and rep-resentative enough. Meanwhile, this validates the necessity of thedifferent values of R in our experiments. The average running timefor the 2800 test cases is 779.49 s, while the minimal and maximaltimes are 0.08 s and 5950.17 s, respectively.

6. Algorithm as a software component

The algorithm devised is packaged into a software componentwith full graphical user interface manipulations that include que-rying of pallets and boxes, rotating and translation, layer by layerpacking sequence. This component has been integrated into thewarehouse management systems we developed for a Hong Konglogistics company. Figs. 7–9 provide a few screen shots of the sys-tems when packing and loading operations are simulated on acomputer screen.

7. Conclusion

In the work, an iterated construction approach for the single con-tainer loading problem is developed, which uses dynamic prioritiza-tion to handle the ‘‘trouble-making’’ box types. The box type with ahigher priority would be packed onto lower surfaces of the containerby the tree-search integrated construction heuristic. The solutionfound by the construction heuristic is analyzed and the prioritiesare updated and used in the next execution of the construction heu-ristic. The algorithm achieved very competitive experimental resultson standard benchmark data sets from the literature.

The approach is then modified and extended to address multi-ple container loading problems by using a sequential approach.With dynamic prioritization and the sequential approach, the‘‘trouble-making’’ box types with high priorities are packed inthe earlier containers. The experimental results have shown thesuperiority of our algorithm over other algorithms when appliedto standard benchmark data sets from the literature as well as to

a newly generated data set that consists of 2800 test cases. Mean-while, our approach is easy to understand and implement by soft-ware developers with limited training in advanced algorithms. Ithas been packaged into a software component and integrated intoa warehouse management system that is currently used in the lo-cal industry.

In this paper, the primary objective was to maximize the vol-ume utilization or minimize the number of containers required.In practice, a variety of additional constraints have to be consid-ered, including load stability, weight distribution within the con-tainer, and the load bearing strength of items. The investigationon how to handle these additional constraints is one of the possibledirections for future research.

Acknowledgments

The authors are grateful to Mr. Tommy Lui for the extensive dis-cussions regarding the box sizing and container loading problemsat IDS International, Li & Fung Group. This research is supportedin part by the Fundamental Research Funds for the Central Univer-sities and the National Natural Science Foundation of China (Grantno. 71072118).

References

Applegate, D., Cook, W., & Rohe, A. (2003). Chained lin-kernighan for large travelingsalesman problems. Journal on Computing, 15, 82–92.

Arenales, M., & Morabito, R. (1995). An and/or-graph approach to the solution oftwo-dimensional non-guillotine cutting problems. European Journal ofOperational Research, 84, 599–617.

Barnes, F. W. (1979). Packing the maximum number of m � n tiles in a p � qrectangle. Discrete Mathematics, 26, 93–100.

Beasley, J. E. (2010). OR-Library. <Http://people.brunel.ac.uk/mastjjb/jeb/info.html>.

Bhattacharya, S., Roy, R., & Bhattacharya, S. (1998). An exact depth-first algorithmfor the pallet loading problem. European Journal of Operational Research, 110,610–625.

Bischoff, E. E., Janetz, F., & Ratcliff, M. S. W. (1995). Loading pallets with non-identical items. European Journal of Operational Research, 84, 681–692.

Bischoff, E. E., & Marriott, M. D. (1990). A comparative evaluation of heuristics forcontainer loading. European Journal of Operational Research, 44, 267–276.

Bischoff, E. E., & Ratcliff, M. S. W. (1995a). Issues in the development of approachesto container loading. Omega International Journal of Management Science, 23,377–390.

Bischoff, E. E., & Ratcliff, M. S. W. (1995b). Loading multiple pallets. Journal of theOperational Research Society, 46, 1322–1336.

Bortfeldt, A., & Gehring, H. (1997). Applying tabu search to container loadingproblems. In Operations Research Proceedings (pp. 533–538). Berlin: Springer.

Bortfeldt, A., & Gehring, H. (1998). Ein tabu search-verfahren furcontainerbeladeprobleme mit schwach heterogenem kistenvorrat. OperationalResearch Spektrum, 20, 237–250.

Bortfeldt, A., & Gehring, H. (2001). A hybrid genetic algorithm for the containerloading problem. European Journal of Operational Research, 131, 143–161.

Corcoran, A. L., & Wainwright, R. L. (1992). A genetic algorithm for packing in threedimensions. In Symposium on applied computing (pp. 1021–1030).

Davies, A. P., & Bischoff, E. E. (1999). Weight distribution considerations in containerloading. European Journal of Operational Research, 114, 509–527.

Dowsland, K. A. (1987). An exact algorithm for the pallet loading problem. EuropeanJournal of Operational Research, 31, 78–84.

Dychhoff, H. (1990). A typology of cutting and packing problems. European Journalof Operational Research, 44, 145–159.

Eley, M. (2002). Solving container loading problems by block arrangement.European Journal of Operational Research, 141, 393–409.

Eley, M. (2003). A bottleneck assignment approach to the multiple containerloading problem. OR Spectrum, 25, 45–60.

Fanslau, T., & Bortfeldt, A. (2010). A tree search algorithm for solving the containerloading problem. INFORMS Journal on Computing, 22, 222.

Faroe, O., Pisinger, D., & Zachariasen, M. (2003). Guided local search for the three-dimensional bin-packing problem. INFORMS Journal on Computing, 15, 267–283.

Feo, T. A., & Resende, M. G. (1995). Greedy randomized adaptive search procedures.Journal of Global Optimization, 6, 109–133.

G, Y. G., & Kang, M. K. (2001). A fast algorithm for two dimensional pallet loadingproblems of large size. European Journal of Operational Research, 134, 193–202.

Gehring, H., & Bortfeldt, A. (1997). A genetic algorithm for solving the containerloading problem. International Transactions of Operational Research, 4, 401–418.

Gehring, H., Menscher, K., & Meyer, M. (1990). A computer-based heuristic forpacking pooled shipment containers. European Journal of Operational Research,44, 277–288.

A. Lim et al. / Expert Systems with Applications 39 (2012) 4292–4305 4305

George, J. A. (1992). A method for solving container packing for a single size of box.Journal of the Operational Research Society, 43, 307–312.

George, J. A., & Robinson, D. F. (1980). A heuristic for packing boxes into a container.Computer and Operations Research, 7, 147–156.

Hemminki, J. (1994). Container loading with variable strategies in each layer.Presented at ESI-X, EURO Summer Institute, Jouy-en-Josas France.

Ivancic, N., Mathur, K., & Mohanty, B. B. (1989). An integer programming basedheuristic approach to the three-dimensional packing problem. Journal ofManufacturing and Operations Management, 2, 268–298.

Joslin, D. E., & Clements, D. P. (1998). ‘‘squeaky wheel’’ optimization. In Proceedingsof AAAI-98 (pp. 340–346).

Joslin, D. E., & Clements, D. P. (1999). ‘‘squeaky wheel’’ optimization. Journal ofArtificial Intelligence Research, 10, 353–373.

Letchford, A. N., & Amaral, A. (2001). Analysis of upper bounds for the pallet loadingproblem. European Journal of Operational Research, 132, 582–593.

Lins, L., Lins, S., & Morabito, R. (2002). An n-tet graph approach for non-guillotinepackings of n-dimensional boxes into an n-container. European Journal ofOperational Research, 141, 421–439.

Liu, F. H. F., & Hsiao, C. J. (1997). A three-dimensional pallet loading method forsingle-size boxes. Journal of the Operational Research Society, 48, 726–735.

Liu, N. C., & Chen, L. C. (1981). A new algorithm for container loading. In Compsac 81-5th international computer software and application conference proceedings(pp. 292–299). IEEE Press.

Lodi, A., Martello, S., & Vigo, D. (2002). Heuristic algorithms for the three-dimensional bin packing problem. European Jorunal of Operational Research,141, 410–420.

Loh, H. T., & Nee, A. Y. C. (1992). A packing algorithm for hexahedral boxes. InProceedings of the industrial Automation’92 conference (pp. 115–126). Singapore.

Mack, D., Bortfeldt, A., & Gehring, H. (2004). A parallel hybrid local search algorithmfor the container loading problem. International Transactions in OperationalResearch, 11, 511–533.

Martello, S., Pisinger, D., & Vigo, D. (2000). The three-dimensional bin packingproblem. Operations Research, 48, 256–267.

Mohanty, B. B., Mathur, K., & Ivancic, N. (1994). Value considerations in three-dimensional packing a heuristic procedure using the fractional knapsackproblem. European Journal of Operational Research, 74, 143–151.

Morabito, R., & Arenales, M. (1994). An and/or-graph approach to the containerloading problem. International Transactions of Operational Research, 1, 59–73.

Moura, A., & Oliveira, J. (2005). A GRASP approach to the container-loading problem.Intelligent Systems, IEEE, 20, 50–57.

Nelißen, J. (1993). New approaches to the pallet loading problem. Schriften zurInformatik und Angewandten Mathematik, 155.

Nelißen, J. (1995). How to use structural constraints to compute an upper bound forthe pallet loading problem. European Journal of Operational Research, 84,662–680.

Ngoi, B. K. A., Tay, M. L., & Chua, E. S. (1994). Applying spatial representationtechniques to the container loading problem. International Journal of ProductionResearch, 32, 111–123.

Parreño, F., Alvarez-Valdes, R., Oliveira, J., & Tamarit, J. (2007). A maximal-spacealgorithm for the container loading problem. INFORMS Journal on Computing.

Parreño, F., Alvarez-Valdes, R., Oliveira, J., & Tamarit, J. (2010). Neighborhoodstructures for the container loading problem: a VNS implementation. Journal ofHeuristics, 16, 1–22.

Pisinger, D. (2002). Heuristics for the container loading problem. European Journal ofOperational Research, 141, 382–392.

Portmann, M. C. (1990). An efficient algorithm for container loading. Methods ofOperations Research, 64, 563–572.

Scheithauer, G., & Sommerweiß, U. (1998). 4-block heuristic for the rectanglepacking problem. European Journal of Operational Research, 108, 509–526.

Scheithauer, G., & Terno, J. (1996). The g4-heuristic for the pallet loading problem.Journal of the Operational Research Society, 47, 511–522.

Takahara, S. (2006). A simple meta-heuristic approach for the multiple containerloading problem. In IEEE international conference on systems, man andcybernetics, 2006 (SMC’06) (pp. 2328–2333). IEEE. Vol. 3.

Takahara, S. (2008). A multi-start local search approach to the multiple containerloading problem. In Advances in greedy algorithms (pp. 55–68).

Terno, J., Scheithauer, G., Sommerweiß, U., & Riehme, J. (2000). An efficientapproach for the multi-pallet loading problem. European Journal of OperationalResearch, 123, 372–381.