0% found this document useful (0 votes)
127 views15 pages

Pallet Loading

Pallet loading paper
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
127 views15 pages

Pallet Loading

Pallet loading paper
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Abstract

This paper deals with the problem of a logistics company that has to serve its customers
by first putting the products on pallets and then loading the pallets into trucks. Besides
the standard geometric constraints of products not overlapping each other and not
exceeding the dimensions of pallets and trucks, in this real problem, there are many other
constraints, related to the total weight of the load, the maximum weight supported by
each axle, and the distribution of the load inside the truck. Although the problem can be
decomposed into two phases, pallet loading and truck loading, we have taken a combined
approach, building and placing pallets at the same time. For each position in the truck, a
pallet is built and tailored for that position according to the constraints of height and
weight. We have developed a GRASP algorithm, in which the constructive algorithm is
randomized and an improvement phase is added to obtain high-quality solutions. The
algorithm has been tested on two sets of real instances with different characteristics,
involving up to 44 trucks. The results show that solutions with an optimal or near optimal
number of trucks are obtained in very short computing times.

1. Introduction
A distribution company has a main depot and a set of regional depots spread around the
country and every week it has to solve an interdepot transportation problem to fill the
orders that each regional depot sends to the main depot for the days of the next week. The
company has to decide first how to put the products into pallets and then how to
distribute the pallets among trucks in order to deliver the right products to the right place
at the right time, while minimizing the number of trucks used. In this paper, we will take
the characteristics and the data of a large distribution company as a reference, but the
problem is common to many other logistics companies around the world. The companies
require a solution procedure that produces high-quality solutions in short computing
times, to be able to react to last-minute changes. Good solutions, minimizing the number
of trucks, will result in reductions in the transportation costs for the companies as well as
in greenhouse gas emissions.
The loading problem faced by the company consists of two interrelated phases. In the
pallet building phase, all the products have to be put on pallets. In the truck loading
phase, all the pallets have to be placed into trucks. The means of transport, in this case
trucks, introduces some constraints which have to be respected for safety reasons. There
is a maximum weight of the load that cannot be exceeded. There are also limits on the
maximum weight each axle can support. Moreover, the load has to be well distributed in
the truck to prevent movements during the journey. This means that the center of gravity
of the load always has to be placed between the axles and as near as possible to the
geometric center of the truck.
In order to produce fast and high-quality solutions, we have developed a GRASP
algorithm, composed of a constructive algorithm, designed to satisfy all the safety and
logistic constraints of the problem, a randomization procedure to achieve diversity in the
iterative process, and some improvement moves to refine the solutions obtained by the
randomized constructive algorithm. A novel feature of the proposed algorithm is that it
solves the two phases of the problem simultaneously, instead of decomposing it into two
separate subproblems.
Although the algorithm provides solutions for the orders of all the days in the planning
horizon, the company sends the trucks with the products for the first day and adjusts its
data for the next days taking into account last-minute orders or cancelations, solving the
problem again for the remaining days. Nevertheless, solving the whole problem together
is much better than solving each day separately, because if there is some space left in the
trucks carrying the products for the first day, it can be used to load products for the
second day until the trucks are completely filled, because products can be sent before
their delivery date but not later. By solving the whole problem, the trucks are more
efficiently used.
The remainder of the paper is organized as follows. An overview of the related existing
work is presented in Section 2. In Section 3, the problem is formally described and all the
constraints related to the pallet building and the truck loading are discussed. In Section 4,
the different components of the GRASP algorithm are introduced. Section 5 contains the
description of the test instances used, which come from a large distribution company, and
the results obtained by the algorithm. The comparison with simple lower bounds
developed for the problem shows that the proposed procedure obtains high-quality
solutions for medium and large instances, involving up to 44 trucks. Section 6 contains
the conclusions.

2. Literature Review
There are not many papers addressing the issues studied here, considering pallet and
truck loading together and multiple trucks. Morabito et al. [1] deal with the same problem
but in two dimensions, because the products cannot be stacked. Both problems, pallet and
truck loading, are solved by using the 5-block algorithm proposed by Morabito and
Morales [2]. Takahara [3] deals with the problem of loading a set of items on a set of
containers and pallets. The sequences for loading the items and for selecting the bins are
controlled by heuristic procedures. Haessler and Talbot [4] propose a heuristic for
developing load patterns for trucks and rail shipments. The products have low density and
the approach is based on loading by volume rather than by weight. To deal with axle
weight constraints, stacks are sequenced by alternating the heaviest and lightest stacks.
Moura and Bortfeldt [5] deal with the same problem in two steps. In the first step, boxes
are packed onto pallets, while in the second step these pallets are loaded into trucks. For
packing boxes onto pallets, Moura and Bortfeldt use the algorithm proposed by Moura
and Oliveira [6] and they deal with the problem of loading pallets into trucks as a one-
dimensional bin packing problem, which is solved by a tree search procedure.
Zachariadis et al. [7] address a vehicle routing problem in which the products are first
packed onto pallets and then loaded into the vehicles and propose local search
metaheuristic strategies. Alonso et al. [8] consider a simplified version of the problem
studied here and develop integer linear models, starting from a basic loading model and
progressively adding more realistic conditions and objectives, such as the use of one or
two pallets per position, the position of the center of gravity, and the minimization of the
number of pallets.
The Single Container Loading Problem (SCLP), in contrast, is a well-studied problem
and in recent years there has been an increasing number of papers introducing real
constraints (see the survey by Bortfeldt and Wäscher [9]). Gehring and Bortfeldt [10],
Bortfeldt et al. [11], Terno et al. [12], and Egeblad et al. [13] are some of the authors who
include weight limit constraints in their studies. In fact, when the cargo is heavy, weight
becomes a very restrictive constraint, more than the volume or the space occupied.
Weight distribution constraints require the weight of the cargo to be distributed across the
container floor to balance the load. To achieve a good weight distribution, the center of
gravity of the load should be at the geometrical midpoint of the container floor, as in
Bischoff and Marriott [14], or at a point not exceeding a certain distance from it, as in
Bortfeldt and Gehring [15] and Gehring and Bortfeldt [10].
Axle weight is a constraint imposed by the means of transport and it has not been widely
studied. Lim et al. [16] deal with a particular SCLP with axle weight constraints. They
first apply a customized wall-building heuristic based on the GRASP by Moura and
Oliveira [6], including special considerations for box weight and density. They then use
an integrated approach to handle the weight requirements. If the container load limit is
exceeded, they unload the necessary number of boxes by iteratively solving an ILP model
to meet the requirement. If the axle weight limit is exceeded, they take two steps
iteratively until the limit is satisfied: the first step consists in reversing the positions of
the walls created by the customized heuristic, whereas the second step involves solving
an ILP model to unload boxes and applying the first step once more to improve the
balance of the container as well as to force a feasible weight distribution.
Stackability or load-bearing constraints are introduced to avoid damaging the items at the
bottom of the stacks. They can be measured by the number of boxes a box can bear above
it (Bischoff and Ratcliff [17]) or by prohibiting a particular type of box being placed on
top of another type (Terno et al. [18]) or by the maximum weight that can be applied to a
box per unit area (Junqueira et al. [19], Alonso et al. [20]).
Other constraints are related to the stability of the load. Vertical or static stability
prevents items from falling when the vehicle is not moving (Ramos et al. [21]). A box
must be supported from below at a given percentage of the surface of its base. If this
percentage is 100%, we speak of full support (De Araújo and Armentano [22], Fanslau
and Bortfeldt [23]). In the case of lower percentages, we speak of partial support
(Junqueira et al. [19]). Horizontal or dynamic stability assures that items do not move
while the container is being moved. This constraint deals with the capacity of the items to
support the inertia of their bodies (Ramos et al. [24]).
Weight constraints, cargo stability, and other practical constraints also appear in recent
studies combining loading and routing, such as Iori et al. [25], Bortfeldt [26], Junqueira et
al. [27], Ceschia et al. [28], Tao and Wang [29], and Junqueira and Morabito [30].
Doerner et al. [31] deal with a particular vehicle routing problem in which the items are
placed on pallets and stacked one on top of the other, producing piles. They propose two
metaheuristic algorithms, a Tabu Search and an ACO algorithm. Pollaris et al. [32]
combine a capacitated vehicle routing problem with the loading of homogeneous pallets
inside the vehicle. They consider sequence-based pallet loading and axle weight
constraints and propose a mixed ILP formulation for the problem. Their model tries to
minimize the transportation cost, respecting the axle weight constraint along the delivery
route. Recent surveys on loading and routing problems have been presented by Iori and
Martello [33, 34] and Pollaris et al. [35].

3. Description of the Problem


The problem begins when a depot sends a set of orders for the upcoming days . For each
day , the order consists of a list of products , , with their required number of items for this
day, . The products have to be served that day, or before, but not later. Each product is
defined by its dimensions , its weight , and its possible rotations , where if the
dimension of the product can be upward.
All the products have a predefined placement in layers. A layer is an arrangement of
items of the same product in rows and columns, forming a rectangle defined by its
dimensions , its weight , and the number of items in the layer . The composition of the
layers is previously determined by the company. For each type of product, the company
has defined the items by row and by column, their orientation, and their placement. A
layer covers the pallet base in horizontal directions, guaranteeing sufficient support for
other layers that can be placed on top of it to make up the pallet.
The quantity of layers per product and day is , whereas the total quantity of layers of a
product is . The demand for each type of product is a number of layers. If there are some
remaining items of a product not included in a layer, these items will form a special
pallet.
The loading problem consists of two interrelated phases:(i)Pallet Building Phase. All
layers have to be placed on pallets.(ii)Truck Loading Phase. All pallets have to placed in
one of the trucks.
3.1. Pallet Building
In this phase, we have to place the layers on pallets. A pallet has a base, made of wood,
metal, or plastic, with dimensions and weight , and it can be rotated horizontally. A
pallet provides a loading space above its base. Typically, the space in horizontal
directions is limited by the horizontal dimensions of the pallet, though some overhang in
both directions can be allowed. In the vertical direction, the height of the loaded pallet is
limited to half the height of the truck, so that two pallets can be placed one on top of the
other.
A pallet is thus composed of a flat base and a set of layers placed one on top of the other.
Two types of pallets can be built, stock pallets, where all the layers are of the same
product, and case pallets, formed by layers of different products. The company wants to
make as many stock pallets as possible. Only when not all the layers of a product fit onto
stock pallets are the remaining layers used to form case pallets. A third type of pallet,
the rest pallet, appears when the demand for some product, , is not a multiple of and
there are some remaining items not included in any layer. All these remaining items are
put together on one or more rest pallets.
Apart from pallet composition, other constraints should be considered in this phase.
(i) Orientation Constraint. Layers can be rotated, but all placements must be parallel to
the sides of the pallet.
(ii) Support Constraint. A certain minimum percentage of a layer, 75% to be precise,
must be supported by the pallet base or by the layer on which it rests.
(iii) Priority Constraint. A pallet can contain only items of orders for the same day.
(iv) Stackability Constraint. The number of layers that can be stacked is limited to avoid
product damage. It depends on their weight, with lighter layers being placed on top of
heavier ones, and on the fragility of the products. For each type of product, the maximum
number of layers that can be stacked, , is defined by the company, and the stock pallets
are composed of this number of layers. However, when we build case pallets, with
different types of layers in the same pallet, we have to take their stackability into account.
Each product belongs to a stackability group which is identified by a value , linked to the
density of the product, with the densest products having an identification of 1 and the
least dense having the maximum value . One layer can be placed on top of another if the
product in the layer below has a stackability identification smaller than or equal to that of
the product in the layer above.
3.2. Truck Loading
Once the pallets are prepared, they have to be placed in the trucks. We have a set of
trucks , all of the same type, with two axles and with unlimited availability. More
precisely, for each truck, we know its dimensions and the maximum weight, or weight
capacity , that it is allowed to load. Moreover, there are restrictions on the maximum
weights the axles can support. The truck has two axles which carry the load, with the
front axle at position and the rear axle at position , where and are measured from the
front of the loading space of the truck. Figure 1 shows a truck with its dimensions and
axle distances.
Figure 1: A truck with the positions of the axles.
For security reasons, the load has to be well spread out over the truck and must be
distributed between the two axles, not exceeding the maximum weight they can bear.
If is the -coordinate of the center of gravity of the load, , where is the position of a pallet
and is its weight and is the total weight of the load; the weights supported by the front
axle () and the rear axle () are determined by
Each axle can bear a maximum weight, denoted by and . Usually, . Therefore, we impose
the conditions and , as well as , ensuring that the center of gravity is always between the
axles.
The expressions of the weight supported by the axles, provided by the company, are
based on the total weight being put on the truck and the center of gravity of the load.
Although they are nonlinear, they can be easily computed in the constructive process
developed in this study. An alternative linear formulation, based on the contribution of
each item to the weight supported by the axles, has been used in [8], with the information
contained in [36].
In this phase of truck loading, some other constraints related to how to place the pallets
should be considered.
(i) Priority Constraint. The delivery days of the orders must be respected, meaning that
each day the trucks being sent to the depot must contain all the products required for that
day, although some of them may have been sent before. Each day , only trucks containing
products for that day are sent. Trucks in the solution that are completely filled with
products for days , are not sent on day . However, if the items for day do not completely
fill a truck, the items for day can be used to fill up the truck. If after adding these items
the truck is not still completely filled, then items for day can be used and so on, until the
truck is filled or there are no items left.
This strategy could result in some products being sent several days before their due date
in some cases. However, no constraints or penalties are considered to limit this situation.
On the one hand, in practice, it affects very few products for more than one day or two.
On the other hand, the company gives higher priority to minimizing the number of trucks.
(ii) Stability Constraint. For stability reasons, the pallets have to be placed touching at
least one side of the truck.
(iii) Stackability Constraint. The pallet height is limited to half the truck height.
Therefore, at most two pallets can be placed in each stack. However, one cannot place
any two pallets in the same stack; it depends on their weight, with lighter pallets being
placed on top of heavier pallets. Each pallet belongs to a stackability group identified by
a value . The stackability identification of a pallet is the minimum stackability
identification of the products that compose the pallet. One pallet can be placed on top of
another if the pallet below has a stackability identification smaller than or equal to that of
the pallet above.
3.3. Objective
When preparing the transportation plan for the next few days, the available data are
usually not complete, except for the next day: orders may be canceled or, more probably,
increased with new products for the upcoming days. Consequently, the distribution
company will not ship the goods for all the days, but only the first trucks, containing the
next day’s orders and possibly some orders for the following day(s).
Nevertheless, the company wants the problem solved for all the orders of all the days in
the planning horizon, because the orders for the later days might influence the choices
made for the first days. For this reason, our main objective is to minimize the total
number of trucks needed for all the orders, and for solutions with the same number of
trucks, one is better than the other if the last truck is less full, leaving more room for new
orders. The inclusion of this secondary objective of leaving the last truck as empty as
possible for future use makes the problem similar to cutting stock problems with usable
leftovers, which have been extensively studied in one and two dimensions due to their
many practical applications (Arenales et al. [37], Andrade et al. [38]).
We are tackling a problem with two parts to be solved simultaneously: putting products
onto pallets and pallets into trucks, but they have similar characteristics. The type of
assignment is input minimization, whereby a set of small items is to be assigned to a set
of large objects whose quantity is large enough to accommodate all the small items. The
assortment of the small items is weakly heterogeneous; the small items can be grouped in
relatively few classes compared with the total number of items. The assortment of the
large objects is that there is only one large object type with fixed dimensions, pallet and
truck, and the shape of the small items is regular. According to the typology for cutting
and packing problems introduced by Wäscher et al. [39], the truck loading part can be
classified as a Three-Dimensional Single Stock Size Cutting Stock Problem (3D-
SSSCSP), while the pallet building part is one-dimensional (1D-SSSCSP), except for the
rest pallet problem, which is three-dimensional.

4. Approach to the Problem


We can consider the problem as two subproblems. The first subproblem is building the
pallets, where the input is the list of all the orders for all the days in the planning horizon
and the output is a pallet list with all the products to send. The second problem is how to
load the pallets onto the trucks, where the input is the list of pallets provided by the first
subproblem and the output is the number of trucks needed to load the whole list of pallets
from the first subproblem.
The disadvantage of this approach is that the two subproblems are independent and one
does not take into account the features and constraints of the other. In particular, in the
first subproblem, the pallets are built without any information about the trucks.
Therefore, a good solution for the pallet loading phase is not necessarily a good starting
point for the truck loading phase.
Our proposal is to keep a constant flow of information between the two subproblems,
taking into account the constraints and the features of both. In the truck loading phase, we
gather information about the features of the pallet, whereas, in the pallet building phase,
we collect information about the placement of the pallet in the truck. With both sets of
information, we build the best pallet for a specific position in the truck using the
remaining products.
To solve this problem, we propose a GRASP algorithm with a constructive phase in
which a solution is built by adding a pallet at each step according to the information
collected from the truck, a randomization strategy to obtain diverse solutions in an
iterative process, and an improvement phase. In the following sections, the elements of
the algorithm are described in detail.
4.1. Constructive Phase
The constructive algorithm builds a solution by means of an iterative process in two
steps, the first of which consists of finding a space in the truck to place the pallet and the
second consists of building the pallet and placing it into the truck.
Step 1 (selecting a place). The first step is to select a position in the truck to place the
next pallet. If there were no oversize layers forming oversize pallets, each pallet would
have a predefined position in the truck because all the pallets would have the same
dimensions. But if there are some oversize pallets in which some layers are larger than
the base, the position of the pallet cannot be predefined, because it depends on the pallet
dimensions. That is why we have to select a place to put the pallet at each step.
Other constraints that have to be taken into account when selecting the place are the
center of gravity and the weight on each axle, because the position of the pallet affects
the weight that each axle will bear and may move the center of gravity away from the
geometric center of the truck.
Since the weight has to be balanced between the two axles, we have decided to divide the
truck into two parts, front and rear, starting from the center. By placing pallets alternately
in each part, we can control the balance of the weight and keep the center of gravity
approximately in the center of the truck.
The center of gravity and the weight each axle will bear are calculated by the expressions
described in Section 3.2. If the weight that axle 1 can still bear, , is greater than that of
axle 2, , the next space is selected at the front; otherwise, it is chosen at the back.
Starting at the center of the truck and going in the chosen direction, towards the front or
the back, we look for a space big enough to place a pallet. We search the floor of the
truck first and if there is no space left, we look at the top of the pallets already loaded.
When the space is found, its features are extracted: its dimensions , the maximum weight
that can be put into this position , and the stackability identification of the lower pallet, ,
if the space is above another pallet.
Having determined these features of the chosen space, we move on to the next step.
Step 2 (building a pallet for the selected space). In this step, we build a pallet that is
tailored to the selected space. When building a pallet, we always use the predefined
layers, except for the special case of rest pallets.
The layers are ordered by day, first days first, and by density, the denser ones first. We
take the first layer on the list and check whether there are enough layers of this product to
build a stock pallet. If this is the case, we build it. Otherwise, these layers are added to the
pallet and we continue searching for layers that cannot form a stock pallet by themselves
and add them to the pallet, building a case pallet with layers of different products.
A layer is selected if it satisfies several conditions. First, it fits into the selected space and
is supported in at least 75% of its area by the layer below it. Second, the weight of the
pallet, including this layer, does not exceed the maximum weight allowed for this space
and keeps the center of gravity between the axles. Third, the height of the pallet does not
exceed half the height of the truck if it is placed on the floor. If it is placed above another
pallet, the sum of the pallets heights cannot exceed the truck height.
The pallet built in this way is defined by its dimension, , the number of layers , the total
weight , and the stackability identification, which is the maximum identification of all the
layers making up the pallet.
The pallet is placed in the selected space, touching the nearest wall of the truck, in such a
way that the gap, if any, is left in the middle of the truck, where it can be used by pallets
on the other side and also by pallets on top, always satisfying a 75% area of support, as
can be seen in Figures 2 and 3.
When the pallet is inserted into the solution, a new cycle begins, calculating the new
center of gravity, the load supported by the axles, and the direction to be chosen and
updating the list of layers.
When the first level on the floor of the truck is complete, all the pallets are pushed to the
front of the truck. The placement of the pallets, starting from the center, may leave two
gaps, one at the front and another at the back of the truck, as can be seen in Figure 2. By
pushing the pallets to the front of the truck, we merge the gaps at the end, with the
possibility of placing another pallet in that gap. This process is performed before starting
the placement on the second level, but it takes place only if the modified location of the
pallets is feasible. If it is not, the containers are kept where they are and we go to the
second level. In the many instances studied, this movement of the pallets on the first level
has nearly always been possible. In the very few cases in which it was not, it was due to
the presence of very heavy pallets, almost reaching the total weight limit or the limits on
the axles. In these cases, moving the existing pallets would not have allowed the
placement of another pallet.
The constructive phase continues until all the layers have been placed or until no more
pallets can be placed in the truck because one of the constraints, limiting the volume, the
weight, or the number of pallets, has been reached. If there are still pallets to be sent, a
new truck is opened and the process continues.
Figure 2: Arrangement of the first level.
Figure 3: Pallets arranged on the second level.
4.2. Randomized Constructive Algorithm
In the construction phase, the solution is built step by step by adding one element to a
partial solution. In order to select the element to add, a greedy randomized
strategy, Sample plus Construction, is used to add diversity to the process. When the
space is selected, we consider all the layers that satisfy all the conditions for being placed
in that position and take a random sample of these layers. The number of layers on the list
is controlled by a parameter (), as proposed by Resende and Werneck [40]. Each layer in
the sample is evaluated and the densest layer is chosen. Then, we follow the process
explained previously to complete the pallet. The diversity of the process is managed by
the value of parameter . If is equal to 1, all the layers are selected for the sample and the
densest of all the layers is always chosen, making the selection deterministic. If, on the
contrary, is near 0, the number of selected candidates is smaller, the densest layers have
less probability of being selected, and another less good candidate could be chosen,
making the selection more random.
It is difficult to determine the value of , the fraction of elements composing the list, that
gives the best overall results. We follow a reactive greedy adaptive search procedure,
proposed by Prais and Ribeiro [41], in which the value of the parameter is self-tuned
according to the quality of the results. The parameter is initially taken at random from a
set of discrete values , and at each iteration, takes a random value from this set. After a
certain number of iterations, 500 in the current implementation, the relative quality of the
solutions obtained with each value of is evaluated. The probability of the selection of
each value is recalculated according to the quality of the solutions, increasing the
probability of the values producing better solutions and decreasing the others. In this
way, the randomization procedure of GRASP reacts to the results obtained in the iterative
process, tuning the parameter to the most suitable values for each instance.
4.3. Improvement Phase
A solution of the randomized constructive phase consists of a list of pallets packed on
each truck, with their contents and positions, and some characteristics of each truck, in
particular the weight on each axle. There are two reasons for closing a truck; one is that
the maximum weight an axle can support is reached, because the pallets are heavy, and
the other is because all the positions are occupied. One solution can combine trucks
closed by weight and others closed by positions.
In order to improve the solutions, three movements have been developed, taking into
account the reasons for closing a truck, and they are applied according to the features of
the solution, trying to improve it. In the next subsections, the movements are described.
Nevertheless, not all the solutions go into the improvement phase. We only consider
promising ones, that is, those which are below a certain threshold. At the beginning, the
threshold takes the value of the first solution of the constructive algorithm. Then, if at an
iteration the solution value is lower than the threshold, we update this threshold and go to
the improvement phase. If the solution value is greater than the threshold, the solution is
rejected and the reject counter is increased. When the number of rejected solutions is
greater than a value , the threshold is increased according to the expression: threshold =
threshold + (1 + threshold), where is set at and , as in Marti and Moreno-Vega [42].
4.3.1. Improvement 1: Filling a Percentage of the Trucks
The first improvement move consists of eliminating a percentage of the last trucks in the
solution and refilling these trucks using another strategy.
In our implementation, a percentage of the trucks, selected at random from the interval ,
is eliminated. The partial solution is then completed using three different strategies:
(i) Deterministic by Volume. The list of the remaining layers is ordered by day and by
volume, and the deterministic constructive algorithm is applied.
(ii) Randomized by Volume. The randomized constructive algorithm, described in
Section 4.2, is applied to fill the truck again, but ordering the products first by day and
then by volume, instead of ordering them by density.
(iii) Deterministic by Weight. The list of the remaining layers is ordered by day and by
weight, and the deterministic constructive algorithm is applied.
The best solution for the next truck provided by the three strategies is added to the
solution and the process continues with the next truck, until all the products are packed.
At the end of this process, if the solution obtained is better than the initial one, we keep it.
Otherwise, we keep the initial solution. This move is applied to all trucks, regardless of
the closing condition.
4.3.2. Improvement 2: Swapping and Insertion
This improvement move is only for those trucks that have been closed because an axle
has reached its maximum weight; we try to obtain better results by swapping pallets
between consecutive trucks. The idea is to move heavy pallets from the first truck A to
the next truck B so that the axles of truck A carry less weight, allowing us to load more
pallets. In this way, we try to put as many pallets as possible in the first trucks, extracting
them from the following ones. Consequently, if we are able to empty the final truck, we
save a truck in the complete solution.
This swapping movement must be followed by an insertion in order to increase the
number of pallets in truck A. First, each pallet in truck A and all the pallets in truck B are
examined in order to find candidates for swapping. Two pallets are swapped if the pallet
in truck B can fit into the place of the pallet in truck A and it is lighter. Then, we try to
take advantage of the difference in weight by loading more pallets. If we find candidates
for swapping, we evaluate the remaining pallets in truck B to check whether one of them
can be inserted into a gap in truck A. We only consider this improvement if we find
successful candidates for both movements, swapping and insertion.
As a consequence of this movement, some empty spaces can appear inside truck B,
because two pallets are moved from B to A and only one pallet is moved from A to B.
The next movement in B consists of inserting pallets from the next truck C, refilling the
empty spaces. The algorithm looks for candidates among the pallets of C that can fit into
this gap in B in such a way that when the weight of the candidate is added to the weight
in B, the total weight does not exceed the weight capacity of the truck and the maximum
weight that can be supported by the axles. Once these previous restrictions are satisfied,
the candidate can be placed into the empty space in truck B. If this empty space is on the
second level of the truck, the pallet is put there if its stackability identification is larger
than or equal to that of the pallet below. Otherwise, the new pallet is put on the first level
and the other pallet is put on top of it.
The idea is to try to move pallets from the later trucks to the previous ones, in order to
reduce the number of pallets in the last truck as much as possible, even reducing the
solution by one truck, if all the pallets in the last truck are moved to other trucks.
A pseudocode of the complete algorithm appears in Algorithm 1. Since two objectives
are considered, the value of solution is the total volume used, + volume of the pallets in
the last truck.
Algorithm 1: ReactiveGRASP.

5. Computational Results
The algorithm was coded in C++ and run on an Intel Core i7-4790, 3.60 GHz with 16 GB
of RAM. In this section, we describe first the instances used, then the lower bounds
developed to assess the performance of the algorithm, and finally the results obtained.
5.1. Description of the Datasets
We have two sets of test instances, with different characteristics. They are real instances
derived from the everyday transportation activity of a large distribution company. The
instances have been provided to us by ORTEC [43], a company that develops planning
and optimization solutions and services for logistics companies.
(i) Set I, Comprising 77 Instances. The orders correspond to three upcoming days. Only
stock pallets and case pallets are considered, because the demand for the products is
always given as an integer number of layers. Each product has a stackability
identification, ranging from 1 to 4. All the instances use one type of pallet, the ISO pallet
(1016 mm, 1209 mm), and one type of truck, with two axles.
(ii) Set II, Comprising 111 Instances. The orders correspond to only one day. Only case
pallets are considered. There are no stackability identifications and therefore any pallet
(layer) can be put on top of any other pallet (layer). The dimensions of the pallets and
trucks vary among the instances, but each instance uses one type of pallet and one type of
truck, with two axles.
5.2. Lower Bound
We can calculate some simple lower bounds on the number of trucks required for each
instance, according to the weight, the volume, and the number of positions in a truck. The
bound based on the weight is the sum of the weights of all the required products divided
by the weight capacity of the truck. The bound based on the volume is calculated in the
same way, using the volume of the products. If we define the maximum number of
positions in a truck, , that is, the maximum number of pallets that can be put along the
length of the truck multiplied by 4 (two rows, two levels), then the bound based on the
number of positions is calculated by dividing the sum of the heights of the layers by the
truck height and by the number of positions in a truck. The maximum of these three
bounds, , given by (2), is a valid lower bound on the number of trucks required for each
instance:
5.3. Computational Results
Table 1 shows the results of the constructive deterministic algorithm. For each set of
instances, the table contains the sum of the lower bounds on the required trucks, the total
number of trucks used, the total number of pallets built, and the average running time per
instance in seconds. The sum of the lower bounds for the instances in Set I is 511 and for
the instances in Set II it is 1113. Therefore, the sum of the solutions exceeds the sum of
the lower bounds by 70 trucks for Set I and by 81 trucks for Set II, less than one truck per
instance on average. Table 2 shows the distribution of the distance from the solution to
the lower bound for each instance.
Table 1: Results of the deterministic constructive algorithm.
Table 2: Distance to the bound of the solutions of the deterministic constructive
algorithm.
The distances observed in Table 2 are due to two factors. On the one hand, the lower
bound does not take into account some of the characteristics of the problem, such as the
structure of the demand by days, the stackability conditions, and the limits on the weight
supported by the axles. On the other hand, the constructive algorithm uses a simple
criterion, based on the product density, to select the layers composing the pallets. For
instances with heavy products, this criterion may produce a solution in which the first
truck is closed because some limit on the weight is reached, but there is plenty of unused
space, while in other later trucks the weight limits are not reached but the trucks are
closed because all the positions are used. The randomization of the constructive
algorithm and the improvement moves have been designed to correct these undesirable
situations.
In Table 3, we can see the results of the randomized constructive algorithm, with a
stopping criterion of 1500 iterations. The algorithm has also been run for larger numbers
of iterations (3000, 5000), but the improvements are small and they are not worth the
increase in running times.
Table 3: Results of the randomized constructive algorithm.
For Set I, we observe an overall reduction of 19 trucks. The reduction is smaller for Set
II, only 8 trucks. Table 4 completes the comparison between the deterministic and the
randomized versions of the constructive algorithm. As well as the distances to the bounds
for the two algorithms, the last column shows the number of pallets in the last truck for
the instances in which both algorithms obtain the same number of trucks. As stated in
Section 3.3, for solutions with the same number of trucks, a solution with fewer pallets in
the last truck is preferable, because it has more empty space for accommodating last-
minute orders. If the number of pallets in the last truck is very low, the planner may
decide to use a smaller vehicle or even not to send it and wait for future orders to fill the
truck. Table 4 shows that the overall reduction is 259 pallets for the instances in Set I and
209 pallets for the instances in Set II.
Table 4: Distance to the bound of the solutions of the randomized constructive algorithm.
The results obtained by the GRASP algorithm, when the improvement phase described in
Section 4.3 is added to the randomized constructive algorithm, are shown in Table 5. It
can be observed that the improvement moves are not able to reduce the number of trucks
required. Nevertheless, there is a reduction in the number of pallets in the last truck,
much more significant in Set I (257 pallets) than in Set II (10 pallets). As
Table 4 showed, the numbers of trucks obtained by the randomized constructive
algorithm are close to the values of the lower bounds, leaving little room for
improvement, but reducing the number of pallets in the last truck is also of interest in the
daily operation of the company.
Table 5: Results of the GRASP algorithm.

6. Conclusions
The combined problem of putting products onto pallets and loading the pallets into trucks
has received less attention in the literature than the standard Container Loading Problem,
but it is a real problem faced by many distribution companies in their daily operations. In
this study, we have taken the characteristics of the problem of a large logistics company
as a reference, but it is common to many other companies. All the constraints defining the
problem, especially those related to weight limits and weight distribution inside the
trucks, have been considered.
Our approach has been to tackle the problem as a whole, without decomposing it into two
different phases for pallet building and truck loading. The pallets are built taking into
account the characteristics of the positions in which they will be loaded in the truck:
horizontal dimensions, height, and weight, looking for maximum utilization of the trucks.
As the problem has many specific constraints, we have developed a constructive
algorithm tailored to the problem which provides quite good solutions in very short
computing times. Nevertheless, as a simple constructive procedure is unable to obtain
high-quality solutions for all the instances, we have developed a complete GRASP
algorithm, including a randomization strategy for the constructive process and some
improvement moves.
The results obtained by the GRASP algorithm have been compared with those obtained
by some simple lower bounds on two sets of real instances involving up to 44 trucks. For
more than 90% of the instances, the number of trucks obtained by the GRASP algorithm
was the same as or included just one more truck than the lower bound. This indicates that
the GRASP algorithm produces solutions that are optimal or very near to optimality for
most of the instances considered in the study, with different characteristics.
In our future work, we plan to extend this study to other distribution companies, to assess
the suitability of the proposed algorithm for other related problems, possibly with some
other specific constraints. Another interesting line of research would be to extend our
algorithm to problems involving pallets and trucks of different types.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy