You are on page 1of 11

European Journal of Operational Research 141 (2002) 382–392

Heuristics for the container loading problem

David Pisinger *

Department of Computer Science, University of Copenhagen, Universitetsparken 1, DK-2100 Copenhagen, Denmark


The knapsack container loading problem is the problem of loading a subset of rectangular boxes into a rectangular
container of fixed dimensions such that the volume of the packed boxes is maximized. A new heuristic based on the
wall-building approach is proposed, which decomposes the problem into a number of layers which again are split into a
number of strips. The packing of a strip may be formulated and solved optimally as a Knapsack Problem with capacity
equal to the width or height of the container. The depth of a layer as well as the thickness of each strip is decided
through a branch-and-bound approach where at each node only a subset of branches is explored.
Several ranking rules for the selection of the most promising layer depths and strip widths are presented and the
performance of the corresponding algorithms is experimentally compared for homogeneous and heterogeneous in-
stances. The best ranking rule is then used in a comprehensive computational study involving large-sized instances.
These computational results show that instances with a total box volume up to 90% easily may be solved to optimality,
and that average fillings of the container volume exceeding 95% may be obtained for large-sized instances.  2002
Elsevier Science B.V. All rights reserved.

Keywords: Cutting/packing; Container loading; Knapsack packing; Heuristics

1. Introduction The problem has been studied since the seminal

work of Gilmore and Gomory [13] in the early
The problem addressed in this paper is that of sixties, and numerous papers and algorithms have
orthogonally packing a subset of some given been presented for its solution. There are, how-
rectangular-shaped boxes into a rectangular con- ever, several variants of the container loading
tainer of fixed dimensions. The problem has nu- problem depending on the objective function and
merous applications in the cutting and packing side constraints present.
industry, e.g., when cutting wood or foam rubber Strip packing. In this variant of the problem,
into smaller pieces, loading pallets with goods, or the container has fixed width and height but infi-
filling containers with cargo. An optimal filling of nite depth. The problem is to pack all boxes such
a container reduces the shipping costs as well as that the depth of the container is minimized. The
increasing the stability and support of the load. strip packing problem has applications in multi-
drop situations, where the load should be divided
into distinct sections corresponding to the differ-
Tel.: +45-35-32-14-00; fax: +45-35-32-14-01. ent destinations. Several algorithms for this prob-
E-mail address: (D. Pisinger). lem are compared in Bischoff and Marriott [2].

0377-2217/02/$ - see front matter  2002 Elsevier Science B.V. All rights reserved.
PII: S 0 3 7 7 - 2 2 1 7 ( 0 2 ) 0 0 1 3 2 - 7
D. Pisinger / European Journal of Operational Research 141 (2002) 382–392 383

The multi-drop problem in general is considered in cargo consists of identical boxes it is denoted ho-
Bischoff and Ratcliff [3]. mogeneous, while it is strongly heterogeneous if
Knapsack loading. In the knapsack loading of a many different types of boxes are present. In the
container each box has an associated profit, and case of a small set of box types in the cargo, the
the problem is to choose a subset of the boxes that problem is denoted weakly heterogeneous. As
fits into a single container so that maximum profit noted by Gehring and Bortfeldt [10] algorithms for
is loaded. If the profit of a box is set to its volume, the container loading problem frequently assume a
this problem corresponds to the minimization of specific distribution of the box types which makes
wasted space. Heuristics for the knapsack loading them perform badly when given an instance with a
problem have been presented in Gehring et al. [11] different distribution of the boxes.
and Scheithauer [21]. The problem considered in this paper is the
Bin-packing. In this problem, all containers have Knapsack Container Loading Problem (KCLP)
fixed dimensions, and all the boxes are to be packed where we assume that the profit of a box equals its
into a minimum number of containers. This prob- volume. The boxes may be rotated in any or-
lem has been considered in Scheithauer [20], Faroe thogonal directions, although it is easy to modify
et al. [9], and Martello et al. [16]. The latter paper the algorithm such that it respects constraints on
considers exact methods for the solution. the orientation. The objective is to fill the con-
Multi-container loading. This problem is similar tainer most possible, without taking the support
to the Bin-packing problem except that the con- of the items into consideration. In principle, the
tainers may have varying dimensions and the ob- empty spaces could be filled out with foam rubber
jective is to choose a subset of the containers which to ensure a proper support of the boxes. As will be
results in the minimum shipping costs. Formula- clear from the computational experiments, very
tions and solution methods are discussed in Chen little empty space is left open thus limiting the need
et al. [5]. for extra support.
For a general classification of packing and We will use the following terminology: the
loading problems, we refer to Dyckhoff [7] and container has width W, height H and depth D. A
Dyckhoff et al. [8]. Several other constraints may set N ¼ f1; . . . ; ng of boxes is given, each box j
be imposed to the above problems: Only specific having width wj , height hj and depth dj . The vol-
rotations (if any) may be allowed, feasible solu- ume of each box is vj ¼ wj hj dj .
tions might be restricted to those which are guil- The organization of this paper is the following:
lotine cuttable, it may be demanded that the Section 2 presents several heuristics for the KCLP
weight of the container is balanced, there may be with special focus on the wall-building approach
restrictions on which or how many boxes may be presented by George and Robinson [12]. In Section
put on top of each other, or it may be necessary to 3, we present an improved algorithm based on
place boxes from one lot next to each other. Also the wall-building approach which incorporates a
the support of the boxes must be taken into con- backtracking step to improve the solution quality.
sideration, as a box cannot be placed at a corner of The layer itself is packed by considering a number
another box only. Bischoff and Ratcliff [3] give an of strips of alternating directions, where each strip
excellent overview of practical requirements which is solved optimally as a Knapsack Problem. Al-
may be imposed to the problem. though both approaches include a backtracking
A related problem is the pallet loading problem. facility the depths of the considered layers and
As pallets unlike containers provide no lateral strips should be chosen with care. Thus Section 3.1
support for the boxes, the stability of the loading proposes 27 ranking functions to select an appro-
arrangement is an important constraint. A heuristic priate subset of promising layer depths and strip
algorithm for the pallet loading problem with non- widths. Computational experiments with homoge-
identical items was presented by Bischoff et al. [1]. neous and heterogeneous instances are reported in
One should also distinguish between homoge- Section 4 where all the different ranking func-
neous and heterogeneous types of cargo. If the tions are considered for the tree-search algorithm.
384 D. Pisinger / European Journal of Operational Research 141 (2002) 382–392

The paper is concluded by some final remarks in ing. Each slicing tree corresponds to a guillotine
Section 5. A first version of this paper appeared in partitioning of the container into smaller parts,
[19]. where the leaf nodes correspond to the boxes. The
cuboid arrangement approach, presented by Bort-
feldt and Gehring [4], recursively fills the container
2. Heuristic algorithms with cuboid arrangements (arrangement of similar
boxes). Cuboid arrangements will always provide
The KCLP is NP-hard in the strong sense and a sufficient support of the boxes. Tabu search can
also in practice very difficult to solve. Only small- be applied to iteratively improve the local ar-
sized instances can be solved to optimality thus rangements.
when dealing with real-life instances of large size The heuristic algorithm presented in this paper
heuristic approaches are applied. The most com- is based on the wall building approach, thus in
mon heuristic approaches can be classified as wall the following we will go into details with previous
building algorithms, stack building algorithms, algorithms based on this approach. George and
guillotine cutting algorithms, and cuboid arrange- Robinson [12] presented the first wall building
ment algorithms. The wall-building approach, in- heuristic for KCLP. Only layer depths d which
troduced by George and Robinson [12], fills the equal some box dimensions were considered (these
container in a number of layers across the depth of are called normalized layer depths), but still the
the container as illustrated in Fig. 1. The wall depth of a layer must be carefully selected to ob-
building approach has been used by e.g., Bischoff tain a good performance. Hence, when opening a
and Marriott [2], Hemminki [14], and Gehring new layer, George and Robinson apply a ranking
et al. [11]. The stack building approach, proposed rule for selecting d: among the remaining boxes
by Gilmore and Gomory [13], packs the boxes into they choose the box ‘ which has largest size of the
suitable stacks which then are arranged at the floor smallest dimension, the rationale being that such a
of the container by solving a two-dimensional box may be difficult to accommodate later in the
packing problem. Using a genetic algorithm for packing procedure. The box is rotated such that its
solving the two-dimensional packing problem, depth d‘ is maximized, and the layer depth d is
Gehring and Bortfeldt [10] presented a heuristic then chosen as d ¼ d‘ .
based on this idea. Morabito and Arenales [17] Having determined the depth of a layer, the
proposed the guillotine cutting approach which is wall is packed in a greedy way as a number of
based on a slicing tree representation of the pack- horizontal strips (see Fig. 2). Every strip is packed

Fig. 1. The wall-building algorithm by George and Robinson.

D. Pisinger / European Journal of Operational Research 141 (2002) 382–392 385

number M2 of different strip widths are considered.

Once the layer depth and strip width has been
settled, a single strip may filled optimally by
solving a Knapsack Problem (KP). For every layer
depth d10 ; . . . ; dM0 1 , we choose the layer filling which
has the overall best use of the volume before
Fig. 2. Each layer is filled by a number of horizontal strips. proceeding to the next layer. This leads to the
following algorithm:
by consecutively inserting boxes with the largest For a given subset of boxes N 0 , residual con-
ranking, where the ranking is based on the smallest tainer depth d and previous packing of volume
dimension of a box (the larger it is, the larger V, the recursive procedure choose_depth selects
ranking). In case of ties, the ranking rule depends M1 different layer depths according to the ranking
on the number of remaining boxes of a given type rule to be described in Section 3.1. For each depth
and on the length of the largest dimension. d 0 , it is attempted to pair boxes two by two in
Bischoff and Marriott [2] compare 14 heuristics order to obtain uniform dimensions. This ap-
based on the wall-building approach, where dif- proach will be described in Section 3.3. The layer
ferent ranking functions are applied. Their results of dimensions W  H  d 0 is then filled by calling a
indicate that there is no clear winning strategy thus procedure fill_layer. The chosen boxes L for
they propose a ‘‘hybrid’’ version where all 14 the current layer are removed from the problem,
heuristics are run and the best solution is selected. and choose_depth is called recursively. The al-
A major disadvantage about the proposed wall- gorithm backtracks when there is no more space
building heuristics is that they are greedy, i.e., they for a layer. The procedure makes use of two global
make locally optimal choices which however may variables: X  is the currently best solution (i.e., a
lead to bad final solutions. To obtain a better set of chosen boxes and their positions), and V  is
performance it is necessary to have a kind of the corresponding volume. Initially, one should set
backtracking possibility. Hemminki [14] presented V  ¼ 0 before calling choose_depth ðD; 0; N Þ.
a genetic algorithm for choosing the depths of the Upon completion, X  is the heuristic solution and
layers. Each chromosome consists of a string of V  its volume.
layer depths, and as the generations evolve, proper
combinations of layers will appear.

3. A tree-search heuristic algorithm choose_depthðd; V ; N 0 Þ

if V > V  then Save solution in X  ,
Our algorithm is an extension of the wall- set V  V.
building approach where a tree-search algorithm is if d < minj2N 0 minfwj ; hj ; dj g then return;
used to find the set of layer depths and strip widths Select M1 best ranked layer
which results in the best overall filling. Ideally we depths fd10 ; d20 ; . . . ; dM0 1 g.
would like to consider all normalized layer depths for each depth d 0 2 fd10 ; d20 ; . . . ; dM0 1 g
and strip widths, but this would be computation- begin
ally too expensive. To decrease the complexity an Pair boxes to obtain a depth
m-cut approach [15] is used for the enumeration close to d 0 , and set U  0;
where only a fixed number of sub-nodes are con- Call fill_layerðW ; H ; d 0 ; 0; N 0 Þ;
sidered for every branching node. Let L be the chosen boxes, and
Hence, at each branching node we consider M1 U  their volume.
different layer depths selected according to a spe- Call choose_depthðd d 0 ; V þ U  ;
cific ranking rule. Each layer is then filled as a N 0 n LÞ;
number of strips, where the strips may be oriented end;
horizontally or vertically. Again, only a limited
386 D. Pisinger / European Journal of Operational Research 141 (2002) 382–392

The recursive procedure fill_layer packs a ub ¼ U þ w  h  d 0 :

layer of dimensions w  h  d 0 with a subset of the
items N 00 . The volume of already placed boxes in If the bound shows that it will not be possible to
this layer is given by the parameter U. The layer is reach a better solution than the current incumbent
filled by a number of strips which may be ei- solution U  , a backtracking step is performed. A
ther vertical or horizontal. Before filling a strip, similar approach is used for the choose_depth
some preprocessing of the items in N 00 is made, algorithm.
such that they are rotated to occupy least possi- The fill_layer algorithm may have exces-
ble height (or width). This is further described sive computational times if all the boxes are very
in Section 3.2. The procedure makes use of the small and thus the search tree gets very deep. To
global variables L and U  , holding the current best get around this problem an upper limit R1 is im-
filling of the layer and the corresponding objective posed on the depth of the search tree. For nodes
value. with a larger depth in the tree than R1 the number
of considered widths or heights is set to M2 ¼ 1.
An additional bound R2 is assigned to the number
of branching nodes considered in fill_layer.
algorithm fill_layer ðw; h; d 0 ; U ; N 00 Þ Having reached this number the algorithm imme-
if U > U  then Save solution in L, diately terminates, returning the incumbent solu-
set U  U; tion.
‘ minj2N 00 minfwj ; hj ; dj g;
if ðw < ‘Þ or ðh < ‘Þ then return;
3.1. Ranking of depths and widths
comment: pack vertical strip:
Select M2 best ranked widths
At each branching node we consider the M1 best
fw01 ; w02 ; . . . ; w0M2 g.
ranked depths of a layer, or the M2 best ranked
for each width w0 2 fw01 ; w02 ; . . . ; w0M2 g
widths/heights of a strip. Computational experi-
ments showed that the performance of the algo-
Rotate the boxes and solve a KP
rithm strictly depends on the ranking of these
with capacity h. Let K be the
dimensions, thus several ranking functions were
set of chosen boxes.
Call fill_layerðw w0 ; h; U þ
P 00
All the ranking functions are based on some
j2K vj ; N n KÞ; statistics on the dimensions of the remaining
boxes. Thus let a and b be the smallest, respec-
comment: pack horizontal strip:
tively, largest dimension of the boxes, taking into
select M2 best ranked heights
account that the resulting layer or strip should fit
fh01 ; h02 ; . . . ; h0M2 g.
within the container at the present stage of the al-
for each height h0 2 fh01 ; h02 ; . . . ; h0M2 g
gorithm. We consider three different frequency
Rotate the boxes and solve a KP
with capacity w. Let K be the
• For a given value of k the frequency func-
set of chosen boxes.
tion f 1 returns the number of occurrences of
P fill_layerðw; h h0 ; U þ
00 this dimension among the remaining boxes,
j2K vj ; N n KÞ; considering all dimensions wi ; hi ; di of the boxes:
fk1 ¼ 1ðwi ¼k_hi ¼k_di ¼kÞ for k ¼ a; . . . ; b:
In order to speed up the fill_layer algorithm
an upper bound is derived at each recursive call as • The second frequency function f 2 returns the
follows: number of occurrences of dimension k among
D. Pisinger / European Journal of Operational Research 141 (2002) 382–392 387

the remaining boxes, considering only the larg- situations where M is large. This should make
est dimension of each box: it easier to select the proper number of dimen-
fk2 ¼ 1ðmaxfwi ;hi ;di g¼kÞ for k ¼ a; . . . ; b: (e) Choose the most frequent dimensions, i.e., the
M dimensions k with largest values of fk .
• Finally, the frequency function f 3 returns the (f) This priority rule is equivalent to rule (b) but if
number of occurrences of dimension k among less than M dimensions are selected, priority
the remaining boxes, considering only the rule (a) is applied for the remaining dimensions
smallest dimension of each box: to be chosen.
n (g) This priority rule is equivalent to (c), using
fk3 ¼ 1ðminfwi ;hi ;di g¼kÞ for k ¼ a; . . . ; b: rule (a) if less than M dimensions are selected.
(h) This priority rule is equivalent to (c), using
All the above frequency functions only consider wi rule (e) for the remaining dimensions.
and hi of a box i for the case when M2 best ranked (i) This priority rule is equivalent to (d), with rule
widths/heights of a strip are selected. This is due to (e) for the remaining dimensions.
the fact, that the depth of the layer already has
been fixed and the boxes have been rotated such In certain situations, it may not be possible to find
that di fits the layer depth. all the wanted M dimensions. In such a case, the
Based on the three frequency functions, we may algorithm simply considers this smaller set.
define a number of priority rules. The motivation Notice the generality of the above frequency
of all the rules is either to choose the largest di- functions and priority rules. E.g., the priority
mensions first (in order to get rid of the difficult function of George and Robinson – selecting
boxes) or to choose the most frequent dimensions the layer depth according to the largest value of
(to obtain a homogeneous layer or strip with a the smallest dimension of a box – can be achieved
good filling). Several of the priority rules express a by using frequency function f 3 with priority rule
tradeoff between these two goals. (a).

(a) Choose the largest dimensions, i.e., choose the 3.2. Filling a single strip
M largest dimensions k with fk > 0.
(b) Choose the largest dimensions with increasing Strips may be filled horizontally or vertically.
frequency, i.e., first choose the largest dimen- Since the cases are symmetrical, we will consider a
sion k with fk P 1. Then choose the largest di- vertical filling in the following. The filling of a
mension k 0 with fk0 > fk . Repeat this process single strip of width w0 and depth d 0 may be for-
until up to M dimensions have been selected. mulated as a Knapsack Problem. First, each box j
(c) Choose the largest dimensions with pseudo- is rotated in one of six directions such that wj 6 w0 ,
increasing frequency (first version), i.e., first dj 6 d 0 and hj is minimized. If it is not possible to
choose the largest dimension k with fk P 1. fit the box j within w0  d 0 then add it to the set of
Then choose the largest dimension k 0 with discarded boxes D. Otherwise set
fk0 P 2. The ith chosen value should have fre- aj ¼ hj ; cj ¼ vj ¼ wj hj dj
quency fk P i.
(d) Choose the largest dimensions with pseudo in- for each feasible box j 2 N n D. Then the strip
creasing frequency (second version), i.e., first packing problem becomes
choose the largest dimension k with fk P 1. maximize cj xj
The ith chosen value should have frequency j2N nD
fk P 4i=M, where M is the number of dimen- X
sions to be selected. The motivation for prior- subject to aj xj 6 b;
j2N nD
ity rule (d) in comparison to (c) is to have a
slower increase in the frequency demands for xj 2 f0; 1g; j 2 N n D;
388 D. Pisinger / European Journal of Operational Research 141 (2002) 382–392

where N n D is the set of feasible boxes, and b is the since this gave a good trade-off between solution
strip height h from algorithm fill_layer. The quality and computational time. The maximum
resulting problem is a Knapsack Problem (KP) depth of the search tree in fill_layer was set to
which may be solved in OðjN n DjbÞ time through R1 ¼ 6, and the maximum nodes considered in a
dynamic programming. single call to fill_layer was set to R2 ¼ 10 000.
In the computational experiments we used the Finally a time limit of 120 seconds was assigned to
very effective minknap algorithm from Pisinger each instance. The code is available for academic
[18] for solving the strip problem. Since about half use at
a million of knapsack problems are solved during Data instances were randomly generated using
a typical filling of a single container, the majority the scheme of Hemminki [14] which reflects typical
of the computational time is spent for solving this properties of industrial loading problems. The
problem. container has dimensions W ¼ H ¼ 230 and D ¼
590, corresponding to the size of a standard 20 ft
3.3. Pairing of boxes container (measured in cm). Twenty different box
types are generated with wj ; hj and dj randomly
The solution found by the KP may be improved distributed in the interval ½25; 115. Then the
by pairing boxes two by two whenever possible. cargo is generated by randomly choosing box i as
Since the complexity of this algorithm is Oðn2 Þ it is one of the 20 box types. New boxes are generated
only executed once for each layer having depth d 0 . until the overall volume of the boxes exceeds
Thus assume that a box j has been rotated such Tc ¼ 90% of the containers volume WHD. In this
that its depth dj is largest possible satisfying way, each instance consists of about 50–150 boxes.
dj 6 d 0 . A measure of how well it fills the depth is We will denote these instances weakly heteroge-
aðjÞ ¼ vj =ðwj hj d 0 Þ ¼ dj =d 0 . We aim at improving neous.
this filling by pairing box j with another box i. Table 1 shows a typical weakly heterogeneous
Thus for each box i 6¼ j all different rotations instance. The box types are given by their width
of i and j are considered where di þ dj 6 d 0 each wj , height hj and depth dj and the last row shows
time deriving the filling ratio bði; jÞ ¼ ðvi þ vj Þ= how many boxes were generated of the given type.
ðd 0 maxfwi ; wj g maxfhi ; hj gÞ. If bði; jÞ 6 aðjÞ for all Fig. 3 shows a packing chart of the instance where
boxes i and all rotations, then the box j remains it was possible to fit all boxes into the container.
alone. Otherwise, the box i (and corresponding To get a more balanced picture of the algo-
rotation) leading to the largest value of bði; jÞ is rithm, we also considered homogeneous problems
chosen and a new box k is constructed with di- where only one box type is present, and strongly
mensions heterogeneous problems where all boxes may have
different dimensions. The strongly heterogeneous
wk ¼ maxfwi ; wj g; hk ¼ maxfhi ; hj g; dk ¼ d 0 : problems involve 70–100 boxes, while the homo-
ð1Þ geneous problems involve 20–700 boxes. Due to
the diversity in the number of boxes in a homo-
The original boxes i and j are temporarily removed
geneous problem, the algorithm is tested in quite
from the problem, to avoid that they are selected
extreme situations.
twice in the layer filling.
In order to determine the best ranking function
from Section 3.1 a series of 100 problems was run
for each ranking function. The three frequency
4. Computational experiments functions and nine ranking rules could be com-
bined into 27 ranking functions. The outcome of
The above algorithm was implemented in C and this test is shown in Table 2 where the first two
tests were run on a AMD Athlon 1.1 GHz pro- columns define the priority rule, and the following
cessor. Appropriate values of M1 and M2 were three columns give the average percentage of the
experimentally found to be 4 and 8, respectively, volume which was filled, the average number of
D. Pisinger / European Journal of Operational Research 141 (2002) 382–392 389

Table 1
Dimensions of boxes for instance number 76 with Tc ¼ 90%
Box type 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Width wj 85 36 68 71 28 109 94 32 52 29 42 97 106 105 107 39 29 31 39 101
Height hj 60 69 26 100 31 29 52 106 115 68 41 59 53 68 43 62 56 47 41 38
Depth dj 26 28 46 100 42 51 43 113 45 44 115 48 40 32 110 80 73 42 114 40
Number 5 7 6 5 6 8 9 6 13 9 12 8 5 3 3 6 7 10 8 10
of boxes
In total 146 boxes were generated with a total volume of 91.8% of the container volume.

Fig. 3. Optimal solution of instance 76 with Tc ¼ 90%. All boxes are packed into the container. The values d state the depth of each
layer. Dotted boxes are placed behind the full-drawn boxes, forming a ‘‘pair’’.

boxes which could not be packed, and finally the The results in Table 2 show a satisfactory
average solution time. The first three columns behavior of the algorithm. The best results are
correspond to the weakly heterogeneous problems, obtained for the heterogeneous problems as the
the next columns are for the strongly heteroge- variance in dimensions apparently makes it easier
neous problems, and finally the last columns cor- to combine the boxes into appropriate strips and
respond to the homogeneous problems. layers. The filling rate achieved for these problems
Since the algorithm terminates when an optimal is close to 91%, meaning that nearly all the boxes
filling has been found, the solution times strictly could be packed. The algorithm also performs
depend on the number of optimal fillings. The quite well for the homogeneous problems where
table clearly demonstrates that frequency function the average filling rate becomes around 84%. One
f 1 is superior to the two other frequency functions should not expect as good solution values for the
f 2 and f 3 . The best values of the objective function homogeneous problems as it is almost impossible
(pct. vol. filled) was obtained for ranking functions to obtain a good filling rate when the dimensions
(h), although function (g) and (i) in general also of the box type are huge.
performed well. Thus ranking rule (h) was selected For the weakly heterogeneous problems,
for the following tests. Hemminki [14] obtained a filling ratio of 84.5%
390 D. Pisinger / European Journal of Operational Research 141 (2002) 382–392

Table 2
Comparison of the 27 different ranking functions for Tc ¼ 90%. Average values of 100 instances
Frequency Priority Weakly heterogeneous Strongly heterogeneous Homogeneous
function rule
pct. vol. Boxes Time pct. vol. Boxes Time pct. vol. Boxes Time
filled not (seconds) filled not (seconds) filled not (seconds)
packed packed packed
f1 (a) 90.44 0.6 13.25 89.44 2.3 14.18 83.79 5.9 35.38
(b) 90.10 1.1 0.76 90.34 1.5 0.68 79.17 9.5 1.57
(c) 90.70 0.3 1.27 90.58 1.2 0.91 83.79 5.9 35.37
(d) 90.73 0.2 4.81 90.87 0.5 2.48 83.79 5.9 35.56
(e) 90.73 0.2 13.39 90.51 1.0 88.07 83.74 6.1 35.95
(f) 90.68 0.3 6.10 90.87 0.6 8.25 83.79 5.9 35.41
(g) 90.77 0.1 4.69 90.88 0.5 6.67 83.79 5.9 35.39
(h) 90.79 0.0 9.33 90.98 0.3 24.86 83.79 5.9 35.41
(i) 90.76 0.1 9.46 90.97 0.3 23.86 83.79 5.9 35.61
f2 (a) 90.11 1.0 13.34 89.42 2.5 13.81 78.89 10.7 0.26
(b) 88.75 2.8 0.46 88.50 4.0 0.10 78.89 10.7 0.26
(c) 90.11 1.3 1.51 89.17 3.5 0.28 78.89 10.7 0.26
(d) 90.36 0.8 2.95 89.79 2.5 0.82 78.89 10.7 0.26
(e) 90.54 0.6 7.36 90.77 0.8 39.79 78.89 10.7 0.26
(f) 90.36 0.9 9.61 90.18 1.8 11.86 78.89 10.7 0.26
(g) 90.42 0.7 8.31 90.34 1.8 11.58 78.89 10.7 0.26
(h) 90.52 0.5 7.57 90.86 0.6 29.03 78.89 10.7 0.26
(i) 90.51 0.6 9.08 90.82 0.7 26.41 78.89 10.7 0.26
f3 (a) 89.86 1.4 81.60 90.55 1.0 77.44 75.66 17.6 0.16
(b) 89.00 2.5 18.60 89.17 3.0 2.34 75.66 17.6 0.16
(c) 89.83 1.4 40.04 89.34 2.7 3.36 75.66 17.6 0.16
(d) 90.04 1.1 53.96 89.93 1.8 11.23 75.66 17.6 0.16
(e) 88.86 1.8 102.33 83.72 3.3 119.43 75.66 17.6 0.16
(f) 89.91 1.3 80.16 90.51 1.1 86.27 75.66 17.6 0.16
(g) 89.95 1.1 73.95 90.46 1.2 88.28 75.66 17.6 0.16
(h) 89.99 1.2 76.90 90.11 1.4 105.06 75.66 17.6 0.16
(i) 89.99 1.1 79.31 90.19 1.5 102.93 75.66 17.6 0.16

using 12 different ranking strategies in the George– filling ratio of around 95% for problems similar to
Robinson algorithm and choosing the best solu- the weakly heterogeneous problems where an un-
tion obtained this way. Using genetic algorithms to limited number of each box type is available. The
choose the depths of the layers Hemminki obtained latter assumption, however, makes it considerably
an average filling ratio of 87.0%. Bischoff and easier to achieve good packings.
Ratcliff [3] report a filling ratio of around 83.0% for To see how the tree-search algorithm behaved
problems similar to the weakly heterogeneous when the total volume of the boxes was increased, a
problems (i.e., 20 box types), although the box di- series of tests were run where boxes were generated
mensions are slightly different. It should be em- until the overall volume of the boxes exceeded
phasized that Bischoff and Ratcliff only consider Tc ¼ 80%; 85%; 90%; . . . ; 200% of the container
solutions where the boxes are properly supported. volume. The outcome of these experiments is
Bortfeldt and Gehring [4] obtained filling ratios of summarized in Table 3. For instances with Tc up to
around 83.9% for the same instances, providing full 90%, all the boxes are easily packed into the con-
support of all boxes. Gehring and Bortfeldt [10] tainer. When Tc is increased, it is possible to obtain
obtained a filling ratio of around 87.7% for weakly an even better filling rate. This is due to the fact
heterogeneous instances similar to those of Bischoff that additional boxes give more freedom to the
and Ratcliff. Morabito and Arenales [17] obtain a algorithm when solving the strip problems. The
D. Pisinger / European Journal of Operational Research 141 (2002) 382–392 391

Table 3
Performance of the best algorithm, using frequency function f 1 and priority rule (h) as ranking rule, for instances with varying total
volume of the boxes
Min. volume Weakly heterogeneous Strongly heterogeneous
of boxes Tc
Total no. pct. vol. Boxes not Time Total no. pct. vol. Boxes not Time
of boxes filled packed (seconds) of boxes filled packed (seconds)
80 75.5 80.79 0.0 0.45 73.4 80.70 0.0 0.46
85 80.2 85.75 0.0 0.76 77.8 85.88 0.0 0.59
90 84.7 90.79 0.0 9.34 82.5 90.98 0.3 24.88
95 89.3 92.95 4.2 84.97 86.8 92.71 4.7 101.72
100 94.1 93.47 8.8 87.47 91.3 93.40 9.3 107.81
110 103.3 94.16 17.2 89.48 100.2 94.20 18.5 115.42
120 113.0 94.44 27.7 89.90 109.5 94.73 28.2 118.80
130 122.6 94.64 36.6 88.64 118.4 95.15 36.8 118.38
140 131.7 94.82 45.5 82.36 127.4 95.46 45.6 117.92
150 140.7 94.92 53.9 74.19 136.8 95.71 54.8 117.37
160 149.8 95.03 63.0 64.56 145.9 95.93 64.4 117.56
170 159.0 95.08 72.0 58.24 155.3 96.13 73.2 118.57
180 168.3 95.23 81.8 51.14 164.5 96.31 82.0 117.59
190 177.6 95.25 90.3 48.05 173.7 96.43 91.1 116.88
200 186.8 95.30 99.4 44.75 182.8 96.57 100.9 115.22
Average values of 100 instances solved.

filling rate exceeds 95% of the container volume The algorithm differs from previous wall-
for large-sized instances. The solution times are building algorithms for the KCLP in several re-
very reasonable, not exceeding one minute on av- spects: by using the m-cut enumeration scheme for
erage for the weakly heterogeneous problems and choosing depths and widths/heights, the algorithm
two minutes for the strongly heterogeneous prob- has a possibility of backtracking in order to reach
lems. depth and width/height combinations that fit well
As noted by Gehring and Bortfeldt [10] and together. Each strip filling problem is solved to
Davies and Bischoff [6] the wall building approach optimality by use of an efficient knapsack algo-
makes it easier to obtain a good weight distribu- rithm, and pairings of boxes are allowed to form
tion by repeatedly swapping the walls and inter- layers of uniform depth. Finally, the alternating
changing walls with their mirror image. As the directions of strips (and thus varying lengths of
here generated walls consist of separate strips, the strips) allow us to place small series of similar
strips may also be interchanged and the ordering boxes next to each other.
of the boxes within a strip can be changed. It is a Several ranking rules for the selection of layer
topic of future research to develop a postprocess- depths and strip widths have been investigated,
ing algorithm which will be able to balance the pointing out that a compromise between the larg-
cargo and to improve the support of the boxes. est and most frequent dimensions leads to the best
solution quality.
5. Conclusion
A heuristic algorithm for the Knapsack Con-
tainer Loading Problem has been presented [1] E.E. Bischoff, F. Janetz, M.S.W. Ratcliff, Loading pallets
with non-identical items, European Journal of Operational
which is able to fill more than 95% of the total
Research 84 (1995) 681–692.
volume for large-sized instances. This is a consid- [2] E.E. Bischoff, M.D. Marriott, A comparative evaluation
erable improvement compared to previous ap- of heuristics for container loading, European Journal of
proaches. Operational Research 44 (1990) 267–276.
392 D. Pisinger / European Journal of Operational Research 141 (2002) 382–392

[3] E.E. Bischoff, M.S.W. Ratcliff, Loading multiple pallets, [12] J.A. George, D.F. Robinson, A heuristic for packing boxes
Journal of the Operational Research Society 46 (1995) into a container, Computers and Operations Research 7
1322–1336. (1980) 147–156.
[4] A. Bortfeldt, H. Gehring, Applying tabu search to [13] P.C. Gilmore, R.E. Gomory, Multistage cutting stock
container loading problems, in: Operations Research problems of two and more dimensions, Operations Re-
Proceedings 1997, Springer, Berlin, 1998, pp. 533–538. search 13 (1965) 94–120.
[5] C.S. Chen, S.M. Lee, Q.S. Shen, An analytical model [14] J. Hemminki, Container loading with variable strategies in
for the container loading problem, European Journal each layer, presented at ESI-X, EURO Summer Institute,
of Operational Research 80 (1995) 68–76. Jouy-en-Josas, France, 2–15 July 1994.
[6] A.P. Davies, E.E. Bischoff, Weight distribution consider- [15] T. Ibaraki, Enumerative Approaches to Combinatorial
ations in container loading, European Journal of Opera- Optimization – Part 2, Annals of Operations Research 11
tional Research 114 (1999) 509–527. (1987), Baltzer, Basel.
[7] H. Dyckhoff, A typology of cutting and packing problems, [16] S. Martello, D. Pisinger, D. Vigo, The three-dimensional
European Journal of Operational Research 44 (1990) 145– bin packing problem, Operations Research 48 (2000) 256–
159. 267.
[8] H. Dyckhoff, G. Scheithauer, J. Terno, Cutting and [17] R. Morabito, M. Arenales, An AND/OR graph approach
Packing, in: M. Dell’Amico, F. Maffioli, S. Martello to the container loading problem, International Transac-
(Eds.), Annotated Bibliographies in Combinatorial Opti- tions in Operational Research 1 (1994) 59–73.
mization, Wiley, Chichester, 1997. [18] D. Pisinger, A minimal algorithm for the 0–1 Knapsack
[9] O. Faroe, D. Pisinger, M. Zachariasen, Guided local Problem, Operations Research 45 (1997) 758–767.
search for the three-dimensional bin packing problem, [19] D. Pisinger, A tree-search heuristic for the container
INFORMS Journal on Computing, 2000, forthcoming. loading problem, Ricerca Operativa 28 (1999) 31–48.
[10] H. Gehring, A. Bortfeldt, A genetic algorithm for solving [20] G. Scheithauer, A three-dimensional bin packing algo-
the container loading problem, International Transactions rithm, Journal of Information Processing and Cybernetics
in Operational Research 4 (1997) 401–418. 27 (1991) 263–271.
[11] M. Gehring, K. Menscher, M. Meyer, A computer-based [21] G. Scheithauer, Algorithms for the container loading
heuristic for packing pooled shipment containers, Euro- problem, in: Operations Research Proceedings 1991,
pean Journal of Operational Research 44 (1990) 277–288. Springer, Berlin, 1992, pp. 445–452.