• No results found

3.5 Proposed Solution Approach

3.5.2 The Stacking Problem

The stacking problem in the UKDC occurs when a loader receives both the selec- tion and detailed packing lists from the sales operative. The problem involves the generation of stacks, which are simply pallets placed on top of each other, that are then moved as a unit using forklift trucks to be arranged on the container floor, all while satisfying the different number of stacking-related constraints. To solve the problem manually, the loader typically eyeballs the list of pallets taking note of the numbers of different pallet-bases used and the individual weights for each pallet. He/she then mentally works out the number of stacks that can be produced from the list while considering the related constraints. The different pallet-base sizes come into play because they determine the top and bottom sur- face areas of pallets that are considered in one of the constraints, and the weights are also used when satisfying the weight-related stacking constraints. After stacks are generated, they are then packed onto a container floor.

The proposed solution to the stacking problem is a greedy algorithm that is partly inspired by the approach employed in Gehring and Bortfeldt [1997]. We took insight from their tower-generation process and came up with a procedure to greedily generate stacks subject to the unique combination of constraints faced in the UKDC. The proposed greedy algorithm will separate pallets into ‘stackable’ and ‘non-stackable’ groups based on whether other pallets can be placed on them or not. Both groups will then have their pallets sorted in descending order by weight. At the core of its operation, the greedy algorithm will proceed to generate stacks from both groups by selecting pallets from the stackable group before the non-stackable group as bottom pallets for stacks; and by selecting pallets from the non-stackable group before the stackable group as the top pallets. This way, we ensure that all stackable pallets are considered before non-stackable pallets as bottom pallets in a stack so we do not end up in a situation where a stackable pallet that could have been used as a bottom pallet is wasted as a top pallet. Sorting both groups in descending order by weight ensures that heavier pallets are selected before lighter ones. If we get a situation where a non-stackable pallet

is selected as the bottom pallet of a stack, it would mean there were no more stackable pallets to consider. Once a bottom and top pallet are selected, we have a complete stack. If only a bottom pallet can be selected (i.e. either there are no more pallets to place on it, or the pallet itself is non-stackable and cant have other pallets placed on it), we will pack that single pallet on its own. Stacks (and single pallets) are generated in this manner until pallets from both groups have been exhausted.

During the stacking operation, the greedy algorithm ensures that the required constraints are satisfied. At the point where the top and bottom pallets of a stack have been selected, the algorithm checks to see that (1) the combined weight of both pallets is less than the specified maximum stack weight (this relates to the maximum load a forklift truck can carry), (2) the combined height of the pair is less than the specified maximum stack height (this relates to the stack’s stability when it is being moved using a forklift truck), (3) the weight of the top pallet is less than or equal to that of the bottom pallet, and (4) the bottom surface area of the top pallet is less than or equal to that of the bottom pallet. Outside of these constraints, pallets that have been marked as ‘fragile’ or have customer instructions to not double-stack are both treated as non-stackable pallets.

As an alternative to the greedy approach, we could also have proposed any number of tower building algorithms commonly used in literature. However, due to the constraints we have to deal with, our version of tower building is more simplistic than the problems typically encountered in literature. As we can only stack a single pallet on another pallet and have a maximum of two pallets in a stack, the heuristics often employed in literature, that often attempt to stack multiple boxes on a single box while at the same time building the towers/stacks as high as the container’s height, turn out to be overly complicated solutions for our much simpler problem. Using the greedy approach and making a quick comparison with a simple stacking method that builds up stacks in the order pallets are presented, we can see in Figure 3.7 that the proposed approach produces a better overall solution as it is able to generate stacks greedily in a manner that ensures that the surface area covered by the resulting stack footprint is minimised, hence increasing the chances that the set of stacks produced from the approach would fit completely within a container at a later packing phase.

Stackable pallets are marked with a ‘S’ and non-stackable pallets are marked with a ‘NS’.