You are currently viewing a new version of our website. To view the old version click .
Mathematics
  • Feature Paper
  • Article
  • Open Access

19 May 2025

Decision Support System to Solve Single-Container Loading Problem Considering Practical Constraints

,
,
and
1
Department of Industrial Engineering, Universidad de los Andes, Bogotá 111711, Colombia
2
Department of Accounting and Finance, Universidad del Valle, Cali 760032, Colombia
*
Author to whom correspondence should be addressed.
This article belongs to the Section D2: Operations Research and Fuzzy Decision Making

Abstract

The container loading problem (CLP) has a broad spectrum of applications in industry and has been studied for over 60 years due to its high complexity. This paper addresses a realistic single-container loading scenario with practical constraints, including orientation limitations, maximum stacking weight, static stability, overall container weight limit, and fractional loading for multiple drop-off points (multidrop). We propose an open-source decision support system (DSS) implemented on a widely used platform (MS Excel®), which employs a heuristic algorithm to find efficient loading solutions under these constraints. The DSS uses a multi-start randomized constructive algorithm based on a maximal residual space representation. The constructive phase builds the loading pattern in vertical layers (columns or walls), while respecting all practical constraints. The performance of the proposed heuristic is validated through extensive computational experiments on classical benchmark instances, comparing its results against the recent state-of-the-art methods. We also analyze the impact of multi-drop constraints on utilization metrics. The DSS features an interactive interface for creating/loading instances, visualizing step-by-step packing patterns, and displaying key statistics, thus providing a user-friendly decision tool for practitioners.

1. Introduction

In 2020 and 2021, the COVID-19 pandemic posed great challenges for logistics operators worldwide due to the surge in online retail, home deliveries, and the global distribution of vaccines. Many companies in the logistics and delivery sector were pushed to their limits [1]. According to the Pitney Bowes Parcel Shipping Index (2022), global parcel volume in 2021 increased by 21% compared to the previous year, reaching 159 billion parcels—about 5000 parcels every second (or 436 million per day) [2]. This rapid growth is projected to continue, with annual parcel shipments possibly reaching 200–250 billion by the mid-2020s. Such trends underscore the importance of optimizing loading processes; efficiently utilizing container space and adhering to safe loading practices can help logistics providers handle more goods while controlling costs and maintaining service quality.
Within this context, the efficient loading of shipping containers (or truck trailers) has gained renewed attention. The three-dimensional container loading problem (CLP) involves packing a set of rectangular boxes into a container of fixed dimensions such that a given objective (typically maximizing volume utilization) is achieved without violating packing constraints. CLP is an NP-hard issue, and it becomes even more challenging when practical constraints are considered [3]. In real-world applications, boxes must not only fit geometrically but also satisfy constraints related to cargo orientation, stacking strength, stability, weight distribution, and delivery routes. Failing to consider these can lead to unsafe or impractical load plans. For example, boxes have limited allowed orientations (often only orthogonal rotations) and load-bearing limits (a box can support only a certain weight on top of it). The load must remain statically stable; each box should be supported by the container floor or other boxes underneath to prevent collapse. The total weight in the container cannot exceed its capacity, and the weight might need to be balanced to prevent axle overloads. Moreover, in multi-drop scenarios where a container carries orders for multiple destinations, the packing must be organized such that items for the first drop are accessible without unloading the items for later drops [4].
According to [5], the CLP is classified depending on the assortment of items to be placed. If the assortment is strongly heterogeneous, this problem is called the three-dimensional single-knapsack problem (3DSKP). If the assortment is highly homogeneous, this problem is classified as the three-dimensional single-large-object placement problem (3DSLOPP). In this work, the CLP—regardless of the assortment of items—is solved.
Commercial products, such as EasyCargo®, CubeMaster®, SIC [6], and Esko®, among other software, offer a solution for efficiently planning cargo within a container or truck. However, the use of these products requires considerable monetary investment. This paper proposes an open-source and free access decision support system (DSS) as a Microsoft Excel® spreadsheet with Visual Basic for Applications (VBA). This tool is expected to allow logistics operators from small- and medium-sized companies to better distribute their shipments and make their operations more efficient. Additionally, it will allow future researchers to compare their results and improve the proposed algorithms.
The proposed DSS solves the CLP regardless of the assortment of items (3DSKP and 3DSLOPP), considering the geometric containment constraints, item overlap, practical box constraints—such as the allowable orientation and static stability—maximum weight limitations related to box stacking and container, and loads to be delivered at different destinations (multi-drop).
Based on the motivations outlined above, this study is structured to resolve the following two primary research questions:
  • RQ1: How can a decision support system (DSS) be designed to efficiently assist in packing problems with practical delivery constraints, ensuring both operational feasibility and high container space utilization?
  • RQ2: How can the strict multi-drop constraint be relaxed through penalty mechanisms to balance container space optimization with practical unloading requirements, and how can this trade-off be made transparent to the end-user?
This paper is organized as follows: In Section 2, the CLP constraints are stated, and the multi-drop constraints and some smoothing variations of these constraints are explained. Section 3 explains the proposed solution methodology, and the steps of the implemented algorithm are also presented. In Section 4, the results are discussed, and comparisons with the previous work and smoothed models are described. Finally, Section 5 presents some conclusions and the recommendations for future research.

3. Proposed Methodology

Given the complexity of the problem, we design a heuristic that builds solutions incrementally and uses randomization to explore different packing solutions. The core of our approach is a Multi-Start Randomized Constructive Algorithm (MSRCA). Each iteration of MSRCA attempts to pack the container from scratch, and after many iterations, we keep the best solution found. Because the heuristic is relatively fast per iteration, we can afford a large number of restarts, which improves the chances of finding a high-quality packing solution (in terms of volume usage) that also satisfies all constraints and can be easily embedded in a decision support system coded in Visual Basic for Applications (VBA).

3.1. Decision Support System (DSS)

The proposed DSS incorporates static stability, six allowed orthogonal orientations, stacking limits, container weight limits, and multi-drop constraints (virtual walls, where δ = 0 ). To enable those functionalities, the user must enter the information related with the items. Once all the information is available, the optimization algorithm carries out an iterative process of randomized construction. In each iteration, the algorithm considers all customers and their items/sets of boxes, an iteration will be terminated if no spaces are available in the container. The algorithm will terminate early if all the boxes are successfully loaded, regardless of the iteration.
Figure 2 shows the home screen of the DSS, in which the parameters relevant to the container, boxes, and customers are entered. In Figure 3, the results are visualized. This figure shows relevant indicators, such as the percentage of the volume occupied, container weight, number of boxes placed, the order and rotation of these boxes, and the corresponding customer information.
Figure 2. Home screen with input of container and box parameters.
Figure 3. Results screen, relevant indicators, and location of boxes.

3.2. Optimization Algorithm

The proposed heuristic uses the representation of maximum residual spaces—MSRCA. Each time a box is placed, six maximum spaces are created. In addition, the boxes are placed as layers of boxes; if there is more than one box with the same dimensions and characteristics, a column or wall is created, combining the Y- and Z-axes.
Figure 4 shows an example of the layer construction when attempting to position ten identical boxes. The aim is to place as many boxes as possible along the first axis. Once the first row of boxes has been placed, the same row is repeatedly moved along the second axis, always maintaining the rectangular shape. This algorithm terminates when either all the boxes are positioned or there is no more space inside the container.
Figure 4. Combinations of axes for the formation of layers of boxes.
The MSRCA consists of the following five main steps:
Step 0: Initialization
The B o x L i s t is a list with all the boxes entered by the user, representing the boxes that should be placed in the container. Each time a box is placed, it is removed from the list, thereby maintaining an updated list. The C u s t o m e r B o x L i s t is a new list associated with the items that belong exclusively to each customer. The L o c a t i o n L i s t is an updated list with all the boxes in the container. The list is initially empty and subsequently updated as the boxes are placed. The S p a c e L i s t is an updated list with all the spaces available in the container. This list is initialized as a single-container-sized space and is updated each time a box or layer of boxes is placed.
Step 1: Space Selection
One of the spaces in the S p a c e L i s t must be selected to place a box. The most suitable space is the one farthest from the entrance of the container. The space with the smallest coordinate on the X-axis is chosen in our case. In the event of a tie, the space with the smallest coordinate on the X-axis and the largest coordinate on the Z-axis is chosen, and the aim is always to stack boxes, or layers of boxes, as effectively as possible.
Step 2: Box Selection
Once a space S is chosen in Step 1, each remaining box belonging to the current customer (from the C u s t o m e r B o x L i s t ) must be evaluated for possible placement. When more than one box has the same dimensions, a layer of boxes must be created as a column or a wall. Two criteria are considered to choose the best box or layer of boxes to be placed in the maximum space previously chosen. The first would be a larger volume, as we seek to place the box or layer of boxes that occupy a larger volume in the space S; for all rotations, the volume will be the same. The second consideration would be best fit; we seek to place the box or layer of boxes with the best fit within the maximum space S, that is, the layer of boxes with the smallest combined distance between the sides of the layer and the sides of the space where it is to be positioned. In this case, the fit is calculated for each rotation of the box.
For the formation of the layers, the maximum load force constraints implemented by [40] are also considered because not all box configurations are feasible given this constraint. Furthermore, since the algorithm seeks to guarantee a restricted multi-drop model, it will never be possible to create layers of identical boxes that belong to different customers.
Once the box or box layer is placed, it is removed from the B o x L i s t and the C u s t o m e r B o x L i s t , and added to the L o c a t i o n L i s t .
Step 3: Space List Update for Current Customer
Every time a box or layer of boxes is placed in a space S, the spaces in the S p a c e L i s t intersected by this box or layer will be removed, and a maximum of six new spaces will be produced. However, not all of these new spaces will be feasible with the constraints of this problem. Once the six new spaces are created, each one is evaluated under the problem’s constraints, and only those that comply with the constraints will be added to the S p a c e L i s t . The spaces created must comply with the following constraints: (1) The volume available in the space must be sufficient to place at least one of the current customer’s boxes in any of its orientations. (2) The maximum load force constraints are met for the boxes on the floor of the new space. In this way, in the S p a c e L i s t , only the feasible spaces will be added based on these constraints, and those that are not feasible are excluded from the list. If boxes from the same customer still need to be placed, we return to Step 1. If all the boxes for the current customer have been placed, we proceed to Step 4. The algorithm terminates if the S p a c e L i s t is empty or there are no more boxes to place.
Step 4: Space List Update for Next Customer
Once all the boxes for a customer/destination are placed in the container, the S p a c e L i s t is updated before placing the boxes for the next customer/destination. A virtual wall ( x w a l l ) separating different customer boxes will be generated from the point of the maximum value of x 2 , i.e., the corner of the box that is closest to the door when the customer is changed. Next, the entire S p a c e L i s t is evaluated, and all the existing spaces that have a coordinate x 2 are eliminated if they are not greater than or equal to x w a l l .
For any remaining spaces where x 1 < x w a l l , the space must be modified to respect the newly created virtual wall. Specifically, the space is truncated by shifting its lower boundary along the X-axis; the original x 1 coordinate is updated and set equal to x w a l l . This adjustment ensures that the usable portion of the space lies entirely in front of the virtual wall, preventing any future placement of boxes in the areas reserved for the previous customers. The algorithm iteration is terminated if the S p a c e L i s t is empty upon removing the spaces.
Randomness
Each time a space S is selected, the box or layer of boxes to be placed within it is determined using one of the two previously described criteria. The choice between these two criteria is made randomly, with each criterion having an equal probability of being selected (50%).
After selecting one criterion, an attempt is made to identify the “best” box (or layer of boxes) according to the chosen criterion. To achieve this, an ordered candidate list C a n d i d a t e s is created based on the indicator values for each box (or layer). Subsequently, a selection probability for each candidate is assigned according to its ranking/quality, following the harmonic series-based formula (see Equation (6)). Finally, one candidate is randomly selected based on the following probability distribution ( ρ i ) :
ρ i = 1 / ( i · j C a n d i d a t e s 1 / j ) , i C a n d i d a t e s
The optimization algorithm generates as output a packing pattern, which consists of a list of coordinates and orientations for each placed box. This packing pattern serves as the basis for visualization within the decision support system (DSS), where users can inspect the final layout or view a step-by-step animation of the loading sequence. Through this animation, users can observe the order in which boxes were placed and how container sections were progressively allocated to each delivery destination, providing valuable insights into the overall loading plan. Such transparency is crucial for fostering user trust in the DSS, as planners can easily verify, for instance, that all boxes corresponding to a given customer are positioned correctly and remain accessible.
The detailed procedure followed by the optimization algorithm is summarized in Algorithm 1, which outlines the multi-start randomized constructive method used to generate feasible packing solutions under practical constraints.
Algorithm 1 Multi-start randomized constructive algorithm for container loading.
  • Inputs:  B o x L i s t : List of boxes of each customer, R e v e r s e O r d e r : List of costumers in reverse delivery order, D i m e n s i o n s : Original container dimensions;
  • Parameters:  T o t a l T i m e : CPU time limit;
  • Output:  I n c u m b e n t : Best packing pattern.
   1:
I n c u m b e n t
   2:
while  T o t a l T i m e is not consumed do
   3:
     L o c a t i o n L i s t
   4:
     S p a c e L i s t CreateEmptySpace( D i m e n s i o n s )
   5:
    for each customer c R e v e r s e O r d e r  do
   6:
         C u s t o m e r B o x L i s t B o x L i s t [ c ]
   7:
        while  C u s t o m e r B o x L i s t  and  S p a c e L i s t  do
   8:
           S← SelectEmptySpace( S p a c e L i s t )
   9:
           if Rand() > 0.5 then
 10:
                L a y e r ← SelectLayerRandomlyBestFit( S , C u s t o m e r B o x L i s t )
 11:
           else
 12:
                L a y e r ← SelectLayerRandomlyMaxVolume( S , C u s t o m e r B o x L i s t )
 13:
           end if
 14:
            L o c a t i o n L i s t ← Pack( L a y e r , S, L o c a t i o n L i s t )
 15:
            S p a c e L i s t ← UpdateEmptySpaces( L a y e r , S p a c e L i s t )
 16:
            C u s t o m e r B o x L i s t [ c ] ← RemoveBoxes( L a y e r , C u s t o m e r B o x L i s t )
 17:
        end while
 18:
         x wall CreateVirtualWall( P a c k e d B o x e s , c )
 19:
        for each space S S p a c e L i s t  do
 20:
           if  S . x 2 < x wall  then
 21:
                S p a c e L i s t RemoveSpace( S , S p a c e L i s t )
 22:
           else if  S . x 1 < x wall  then
 23:
                S . x 1 x wall
 24:
           end if
 25:
        end for
 26:
    end for
 27:
    if  L o c a t i o n L i s t . v o l u m e > I n c u m b e n t . v o l u m e  then
 28:
         I n c u m b e n t L o c a t i o n L i s t
 29:
    end if
 30:
end while
 31:
return  I n c u m b e n t

3.3. Complexity Analysis of Multi-Start Randomized Constructive Algorithm

The algorithm constructs multiple packing solutions within a time limit parameter T o t a l T i m e . We denote n as the total number of boxes across all the customers and m as the number of destinations (customers). Each complete packing construction involves the following key steps:
  • Initialization: Initializing the set of packed boxes and creating the initial empty space representing the container are considered constant-time operations ( O ( 1 ) ).
  • Loop over customers: The algorithm processes each customer sequentially, implying O ( m ) iterations at this level.
  • Loop over boxes and spaces: For each customer, the algorithm iterates while there are remaining boxes and available spaces.
    • Selecting a space: Scanning or selecting a feasible space requires O ( | S p a c e L i s t | ) time, where | S p a c e L i s t | is the number of current empty spaces.
    • Layer selection: Building and randomly selecting a packing layer may involve checking all remaining boxes of the customer, costing O ( n log n ) operations.
    • Packing and updating spaces: Each packing operation removes a space and may create up to three new spaces. Hence, the number of spaces grows linearly with the number of boxes, leading to | S p a c e L i s t | = O ( n ) in the worst case.
    • Updating box lists: Removing packed boxes is O ( 1 ) per box.
    Consequently, each box incurs a cost of O ( | S p a c e L i s t | + n log n ) = O ( n log n ) , and processing all n boxes gives a total cost of O ( n 2 log n ) for this stage.
  • Virtual wall insertion and space adjustment: After finishing the packing for each customer, the algorithm updates the S p a c e L i s t list by checking each available space. As there are O ( n ) spaces at most, and this check happens m times (once per customer), this step has a total cost of O ( m n ) .
  • Best incumbent update: Comparing volumes and updating the incumbent solution is considered a constant-time operation ( O ( 1 ) per construction).
Summing the costs, a single construction has a total time complexity of O ( n 2 log n + m n ) . Since n 2 log n dominates m n when n m (which is usually the case in practical applications), the complexity simplifies to O ( n 2 log n ) . The entire algorithm runs multiple constructions within the T o t a l T i m e limit. Let k denote the number of completed constructions within the available time. Then, the global complexity becomes O ( k · n 2 log n ) , where k depends on the computational time allowed and the average time per construction.
The primary data structures maintained are the list of packed boxes and the list of empty spaces. Both are bound by O ( n ) elements, resulting in an overall space complexity of O ( n ) . Thus, the algorithm exhibits a time complexity of O ( k · n 2 log n ) and a space complexity of O ( n ) , where n is the total number of boxes and k is the number of construction attempts allowed by the CPU time limit.
It is important to note that our heuristic does not guarantee optimality. There may be some free space left even if not strictly necessary, due to the heuristic nature of the choices made. However, by comparing against known optimal or best-known solutions from the literature on standard instances, we ensure that the performance loss (if any) is small. The next section provides this comparison, along with an analysis of how the algorithm performs under different multi-drop settings. We also discuss computational efficiency; in our tests, the algorithm consistently runs within the set time limit (30 s) even for large instances with hundreds of boxes, thanks to the simplicity of each iteration’s operations and the pruning effect of constraints (fewer feasible placements means fewer candidates to evaluate in each step).

4. Computational Experiments and Analysis of Results

The performance of the proposed approach is validated by comparing it with leading algorithms found in the specialized literature. Specifically, computational effectiveness and efficiency are evaluated against prominent methods developed by [19,26,41]. The heuristic were coded in VBA. The computational experiments were conducted on a system equipped with an AMD Ryzen 5 4500U processor with Radeon Graphics (2.38 GHz, 8 GB RAM) using Microsoft Excel 2019® software (v16.0).
The only parameter required by the proposed heuristic is the computational time limit ( T o t a l T i m e ), which in this work was set to 30 s per instance. This choice aimed to achieve low waiting-time responses, thereby ensuring an efficient and user-friendly experience within the decision support system.

4.1. Comparison with [19,26]

First, we compare our heuristic with the exact algorithm proposed by [26] and the GRASP algorithm presented by [19], which separates boxes for each customer by creating virtual walls. For this purpose, we use the set of instances presented by [26], which consists of 11 test cases with a number of pieces ranging from 20 to 1 thousand, a number of piece types varying between 1 and 20, two different container lengths (12 and 15 units), and a fixed number of three customers for all cases. The results reported by [26] correspond to the best integer solution (MIPSol) obtained by the solver within a one-hour execution time limit; meanwhile, the results published by [19] correspond to the incumbent subsequently obtained after 50,000 iterations. Comparing our heuristic with an exact method allows us to effectively evaluate the quality of the obtained solutions. Regarding the constraints considered, the exact algorithm presented by [26] is an unrestricted model that permits multiple drops; in other words, it does not enforce the condition of fully packing all boxes for one customer before proceeding to the next customer’s boxes. In the tested instances, ref. [26] aimed to maximize container volume utilization, although the results were reported in terms of the percentage of boxes packed, given that the evaluated scenarios represent perfect packing instances with known optimal solutions. Therefore, achieving 100% utilization both in volume and in the number of packed boxes was expected.
Table 1 shows the results obtained for the MILP of [26], the GRASP of [19], the MSRCA proposed, and the MSRCA without full support. As seen in this table, in the different instances, the proposed algorithm (MSRCA) either succeeds in placing 100% of the boxes in the container or improves the metric obtained by the exact implementation of [26] or the GRASP of [19]. It should be noted that the first instance A1 shows that the comparison made is not fair. In the publication by [26], it was mentioned that the formulation of the problem included a constraint that guaranteed the vertical stability of the load in a generalized way; however, this model could yield unstable solutions. In our work, the lower surface area of a box must be entirely supported by the upper surface of one or more boxes placed immediately below it or by the floor of the container (full support), always guaranteeing vertical stability.
Table 1. Comparison with [19,26].
For instance, in case A1, using a container length of L = 12 units along the X-axis, the first virtual wall ( L 1 * ) is placed at x w a l l = 2 , as presented in Table 2 by [26]. This implies that the four boxes belonging to Customer 1 occupy only two units of length, a scenario achievable exclusively by allowing overhang. However, repeated overhangs cannot ensure vertical stability, this concept is illustrated graphically in Figure 5. Figure 5 demonstrates that a blue box placed atop a red box will remain stable, provided that less than 50% of its base is overhanging. Nevertheless, typical overhang models often do not validate stability for second-level placements. For instance, if a green box is placed on top of the blue box, both will collapse due to their center of gravity extending beyond the stable limits.
Table 2. Solutions for instance A1 obtained by [26].
Figure 5. Unstable packing pattern.
If we disable the full-support constraint from the maximal spaces representation and execute the heuristic, we can obtain the same solution reported in the literature for instances A1–12; however, vertical stability cannot be guaranteed under these conditions. For comparison purposes, Table 1 illustrates the results obtained (MSRCA Without FS), demonstrating that the MSRCA heuristic can achieve results similar to those found in the literature when the full-support condition is disabled. Nevertheless, within the decision support system (DSS), the full-support constraint is always enabled to prevent unstable packing configurations.

4.2. Comparison with [41]

For the comparison with [41], it is relevant to consider that these authors studied a CLP with box orientations, static stability, stacking, and multi-drop constraints (based only on visibility) and developed a simulated annealing metaheuristic algorithm that builds walls using layers that are made of homogeneous blocks of boxes and iterates for approximately one minute. In the computational results, Ref. [41] presented 117 real-world instances with two and three destinations, with some related to a single container and others to several containers. For comparison, only the 23 instances involving a single container were used and the metric of interest was volume utilization percentage.
Table 3 shows the results obtained by our algorithm using strict virtual walls ( δ = 0 ). On average, our implementation achieved lower container utilization compared to the approach by [41]. This is because their model utilized flexible layers based on the concept of virtual walls, but allowed smoothing at the edges of each box. This flexibility enabled compliance with fractional loading constraints without generating algorithmic penalties, since items belonging to one customer are never unloaded prematurely to deliver items to another customer. An example illustrating this algorithmic flexibility is provided in Figure 6, showing a top view of a packing pattern. This clearly demonstrates that our proposed algorithm is compared under inherently unequal conditions.
Table 3. Comparison with [41] for instances with single container.
Figure 6. Top view of packing patterns with rigid, flexible layers, and flexible walls.
For comparison purposes, we introduced a relaxation of the virtual walls by allowing boxes from a customer scheduled to unload earlier to extend beyond their virtual wall by, at most, the length of the placed box ( δ = l i ). This adjustment creates a “flexible wall”, which attempts to mimic—but does not precisely replicate—the flexible layers defined by [41], as their layers allow boxes to exceed the virtual wall by significantly more than just one box length. The right-hand side of Figure 6 illustrates this scenario clearly; the box labeled with an “X”, belonging to Customer 3, is located at coordinate x 1 along the X-axis. The virtual wall position for Customer 2 is at x w a l l . The flexible layers from [41] permit scenarios where x 1 < x w a l l l i . Table 3 also illustrates the results obtained for MSRCA with flexible walls, demonstrating that the MSRCA heuristic can achieve results similar to those found in the literature when flexible walls are enabled.
Overall, the results demonstrate that the proposed heuristic DSS is effective in producing high-quality packing solutions under realistic constraints and is efficient in terms of runtime. Compared to the literature, the interactive and explanatory aspects of our DSS add practical value beyond just the algorithm. During deployment, factors such as user trust, ease of use, and the ability to modify or fine-tune a solution manually can be as important as the quality of the solution itself. We received preliminary feedback from a few industry practitioners who tested the system on example cases; they appreciated the ability to visualize the loading plan and the step-by-step construction animation, which helped them understand and verify the packing. This is something often overlooked in academic studies that focus purely on optimization metrics. We have thus prioritized a balance between performance and practical usability.

4.3. Comparison of a Relaxed and Penalized Model Versus the Virtual Wall Model When δ = 0

The percentage of container volume used when enforcing the multi-drop constraint as a hard requirement is notably low, highlighting a significant inefficiency. To address this, we present an analysis to soften this constraint through the introduction of penalty functions, following the approach proposed by [1]. In this context, the following three parameters are defined: α controls the penalty associated with minor violations of the customer separation constraint (e.g., slight overlaps across virtual walls), β governs the penalty related to the depth or extent of a violation into another customer’s segment, and γ applies a penalty based on the cumulative effect of multiple small violations across the container.
Each penalty function depends on the selected values of α , β , and γ , which are tuned according to four levels of penalization, ranging from low to very high severity. The specific values assigned to each level are summarized in Table 4.
Table 4. Parameters used for penalization, taken from [1].
In [1], the authors assigned the values for parameter γ to be the same at all penalty levels because this parameter was the multiplicative inverse of the height H of the container. This situation implied that an item that obstructed others located near the container’s ceiling would generate approximately double the penalty compared to that of the same item located on the container’s floor. Additionally, β = 2 · α was given to assign equal importance to weight and volume, since the BR instances from [7,42] were used. In these instances, the items did not have assigned weight or value values; therefore, the authors associated each type with a value and a weight multiplied by a random number within a uniform distribution of numbers between one and three. A random number of customers was assigned to obtain the fractional load parameters, and all items of the same type were assigned to a customer.
The BR instances obtained from [7] had a weight defined by the density and volume of the item, as well as the maximum load force defined randomly by a uniform distribution. Additionally, these instances were extended by [12]; they took 2, 5, 10, or 50 customers and assigned each item to a random customer. The first two approaches were used in this study, with a total of 1400 instances (BR1–7, Customers 2 and 5). For this experiment, we use β = 100 · α , because the weight of an item is proportional to the volume by its density; in this case, the density is 100 for all items. Thus, it can be guaranteed that the weight and volume are equally important in terms of penalties. However, the value of γ remains the same as the multiplicative inverse of the height of the container.
With the parameters defined in Table 4 and the BR instances extended by [12], the impact of the inflexibility of the strategy with hard constraints is analyzed, and the results are compared with those of a relaxed strategy. For the case of the model with hard constraints ( δ = 0 ), the penalties always have a value of zero by definition. On the other hand, the relaxed model performs the construction of the load pattern without checking any multi-drop constraints. The only consideration regarding multi-drop constraints is that the boxes are loaded considering the customer’s order. In the former model, penalties are calculated as a posteriori for the solution with a larger volume of boxes placed. The objective function can become negative and be faced with very high penalties; in these cases, a result of zero, which corresponds to an empty container, is used.
In Table 5, the average of the results obtained for the BR1–7 instances with two customers is observed. First, the expected result is obtained with the relaxed model, where the multi-drop constraints are smoothed, since the value of the objective function is improved by using a greater portion of the container, given that the algorithm becomes more flexible. However, the improvement is not substantially significant, as evidenced by observing the objective function once we apply the penalties. The trade-off between the value of the objective function with the flexible algorithm and the penalties indicates that it is not worth smoothing the implementation because, from the first penalty with the lowest index, the relaxed model yields a worse performance than that of the algorithm implemented with virtual walls, where δ = 0 .
Table 5. Results for δ = 0 and relaxed and penalized models with penalization for two customers.
Table 6 shows the average results obtained for the BR instances with five customers. The relaxed model without penalties shows up to a 10% improvement for instances with highly homogeneous assortments such as BR1 and BR2. Likewise, there is a minimal improvement in the objective function for those cases with a low penalty level. As the instances are more heterogeneous, the percentage of improvement decreases. When applying the penalties in the other instances, there is no improvement concerning that of the model when δ = 0 . When performing an analysis, it is seen that, for most cases in which penalties are applied, the objective function is a negative value, which can become zero. These results demonstrate that planning with the relaxed model can be sufficient when operators can relocate items during delivery. If this is not possible, it is necessary to carry out planning with the δ = 0 model.
Table 6. Results for δ = 0 and relaxed and penalized models with penalization for five customers.

5. Discussion

The experimental analysis highlights some patterns in how the algorithm performs under various conditions. One clear pattern is that the algorithm performs exceptionally well when boxes are relatively homogeneous or when there is a mix of sizes that complement each other (so that small items can fill the gaps between big items). In such cases, a near-100% volume usage is attainable. The more challenging cases are those with extreme heterogeneity in box sizes or special constraints on many items (like many fragile items). In instances with a few very large boxes and many very small ones, the packing solution tends to leave small voids around the large boxes.
Another limitation is related to the stability vs. utilization trade-off. By enforcing full support, we sometimes sacrifice some space. For example, the MILP study by [35] showed that allowing boxes to have 70% support instead of 100% could improve fill rates while maintaining acceptable stability. In an industrial use case, however, erring on the side of caution is usually preferred to avoid any chance of damage. Thus, our results might be a touch less tight than those from algorithms that allow partial support, but they are very robust. The logistics manager would have to decide if the risk of damage is worth it. We plan to incorporate a partial support model guaranteeing 100% stable packing patterns into the DSS.
One important practical implication of our results is how the multi-drop packing affects utilization metrics. We observed that enforcing a strict drop order can reduce volume usage by a large amount. In real logistics, this translates to potentially having to send extra containers once in a while if the first container’s space could not be fully used due to multi-drop constraints. Companies must decide if that is acceptable, given the benefit of easier unloading. On the flip side, if maximizing fill is paramount (perhaps for very long national shipments where unloading effort is secondary to freight cost), then deactivating the multi-drop constraint might be warranted. So, practically, a user can choose from two solutions using the DSS: one that is “operation-friendly” and one that is “space-efficient”. This dual output was found to be useful in discussions with a partner company.
In comparison with the solutions offered in the literature, our heuristic stands out due to its balanced performance and integration. Some methods focus purely on packing (ignoring the ease of use), while others integrate constraints but might be too slow without significant computing resources. We provide a solution that runs on a laptop, integrates with a common tool like Excel, and still leverages many of the advanced techniques identified in current research. In conclusion, the analysis of the results confirms that the proposed DSS with its heuristic algorithm is a viable and effective solution for the constrained CLP. It achieves high utilization and meets practical constraints, comparing favorably with both exact and heuristic state-of-the-art methods. Its efficiency makes it suitable for real-time decision support (e.g., a planner can re-run the tool a few times or adjust inputs on the fly within a matter of minutes). The interpretability of its output (through visualization and clear rules) addresses a key need in practice, that is, the trust and adoptability of the solution.

6. Conclusions

We have presented a decision support system for the single-container loading problem with a rich set of practical constraints, including the following: orientation limitations, load-bearing strength, static stability (full support), maximum container weight, and multi-drop (sequential unloading) requirements. The DSS is powered by a multi-start heuristic algorithm that constructs packing solutions iteratively and uses randomization to effectively search the space of feasible packings. This approach has been shown to produce solutions that are on par with or better than those from methods in the literature, within very short computational times (seconds). By embedding the algorithm in a user-friendly Excel-based tool, we have bridged the gap between complex optimization and practical usability, enabling logistics planners to easily input data, generate load plans, and visualize the packing.
A literature review of the past ten years highlights that our work aligns well with the state-of-the-art trends. We incorporate all the major practical constraints that have been studied in an integrated manner. Our contribution lies not in inventing a new optimization technique from scratch but in synthesizing proven strategies and tailoring them to a highly constrained problem setting, with careful attention to user interaction. The computational analysis has reinforced the value of this synthesis. We have demonstrated that the heuristic can effectively navigate trade-offs between objectives (volume vs. operational convenience) and can adapt to different constraint relaxations, which is a strength in real-world scenarios where the priorities might differ between cases.
One key implication of this work is that deploying advanced heuristics in real logistics operations is not only feasible but highly beneficial. The DSS provides significant time savings over manual planning and can lead to better container utilization, which directly translates to cost savings (fewer containers or trips needed) and possibly environmental benefits (better space usage means fewer vehicles on the road for the same amount of goods). By ensuring stability and respecting weight limits, it also enhances safety during transit. Additionally, by handling multi-drop orders properly, it can improve delivery efficiency (no time is lost rearranging cargo at each drop). These practical benefits echo those reported by [3] in an industry setting, and our tool offers a similar capability to any potential user without requiring them to invest in heavy software or hardware; a simple spreadsheet environment would suffice.
Incorporating a dynamic stability check (simulating truck movement, tilt, or acceleration) would further ensure that the load is secure throughout transit. This might involve integrating a physics engine or using the mechanical model approach of [4]. If unstable configurations are found, the heuristic could penalize or forbid them. We could also try allowing overhangs while verifying stability via static equilibrium calculations to potentially increase fill rates safely.
In closing, the developed DSS and heuristic provide a strong foundation for solving constrained container loading problems in real supply chain settings. The approach has been validated by both comparison to academic benchmarks and by its design grounded in practical requirements. We believe this contribution will be useful for both researchers (as a reference point for what a modern CLP heuristic can achieve) and practitioners (as a stepping stone towards more automated, optimization-driven load planning). By continuing to refine and expand this work in the directions mentioned, one can move closer to the ultimate goal of fully automated, intelligent container loading systems that maximize efficiency and safety in logistics operations.

Author Contributions

Formal analysis, D.Á.-M.; funding acquisition, J.W.E. and D.Á.-M.; investigation, N.R.-O. and S.A.-O.; project administration, D.Á.-M.; supervision, D.Á.-M.; visualization, N.R.-O. and S.A.-O.; writing—original draft, N.R.-O. and S.A.-O.; writing—review and editing, J.W.E. and D.Á.-M. All authors have read and agreed to the published version of the manuscript.

Funding

This research was made possible thanks to the funding from Patrimonio Autónomo Fondo Nacional de Financiamiento para la Ciencia, la Tecnología y la Innovación Francisco José de Caldas. The article processing charge (APC) was funded by Universidad de los Andes.

Data Availability Statement

The original data presented in the study are openly available in DSSforContainerLoading at https://github.com/NataliaRomeroO/DSSforContainerLoading (accessed on 2 April 2025).

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Filella, G.B.; Trivella, A.; Corman, F. Modeling soft unloading constraints in the multi-drop container loading problem. Eur. J. Oper. Res. 2023, 308, 336–352. [Google Scholar] [CrossRef]
  2. Pitney Bowes. Parcel Shipping Index 2022 (Annual Report). Pitney Bowes Inc. 2022. Available online: https://www.pitneybowes.com/us/shipping-index.html (accessed on 10 March 2025).
  3. Mikele, G.; Trivella, A.; Mansini, R.; Pisinger, D. An optimization approach for a complex real-life container loading problem. Omega 2022, 107, 102559. [Google Scholar]
  4. Montes-Franco, A.M.; Martinez-Franco, J.C.; Tabares, A.; Álvarez-Martínez, D. A Hybrid Approach for the Container Loading Problem for Enhancing the Dynamic Stability Representation. Mathematics 2025, 13, 869. [Google Scholar] [CrossRef]
  5. Wäscher, G.; Haußner, H.; Schumann, H. An improved typology of cutting and packing problems. Eur. J. Oper. Res. 2007, 183, 1109–1130. [Google Scholar] [CrossRef]
  6. Pachón, J.C.; Martínez-Franco, J.; Álvarez-Martínez, D. SIC: An intelligent packing system with industry-grade features. SoftwareX 2022, 20, 101241. [Google Scholar] [CrossRef]
  7. Bischoff, E.E.; Ratcliff, M.S.W. Issues in the development of approaches to container loading. Omeg 1995, 23, 377–390. [Google Scholar] [CrossRef]
  8. Bortfeldt, A.; Wäscher, G. Constraints in container loading—A state-of-the-art review. Eur. J. Oper. Res. 2013, 229, 1–20. [Google Scholar] [CrossRef]
  9. Ratcliff, M.S.W.; Bischoff, E.E. Allowing for weight considerations in container loading. Oper. Res. Spektrum 1998, 20, 65–71. [Google Scholar] [CrossRef]
  10. Bischoff, E.E.; Janetz, F.; Ratcliff, M.S.W. Loading pallets with non-identical items. EJOR (Europ. J. OR) 1995, 84, 681–692. [Google Scholar] [CrossRef]
  11. Ali, S.; Ramos, A.G.; Carravilla, M.A.; Oliveira, J.F. On-line three-dimensional packing problems: A review of off-line and on-line solution approaches. Comput. Ind. Eng. 2022, 168, 108122. [Google Scholar] [CrossRef]
  12. Christensen, S.G.; Rousøe, D.M. Container loading with multi-drop constraints. Int. Trans. Oper. Res. 2009, 16, 727–743. [Google Scholar] [CrossRef]
  13. Gendreau, M.; Iori, M.; Laporte, G.; Martello, S. A tabu search algorithm for a routing and container loading problem. Transp. Sci. 2006, 40, 342–350. [Google Scholar] [CrossRef]
  14. Iori, M.; Salazar-González, J.J.; Vigo, D. An exact approach for the vehicle routing problem with two-dimensional loading constraints. Transp. Sci. 2007, 41, 253–264. [Google Scholar] [CrossRef]
  15. Pan, L.; Chu, S.C.K.; Han, G.; Huang, J.Z. A tree-based wall-building algorithm for solving container loading problem with multi-drop constraints. In Proceedings of the 2009 IEEE International Conference on Industrial Engineering and Engineering Management, Hong Kong, China, 8–11 December 2009; IEEE: Piscataway, NJ, USA, 2009; pp. 538–542. [Google Scholar]
  16. Fuellerer, G.; Doerner, K.F.; Hartl, R.F.; Iori, M. Metaheuristics for vehicle routing problems with three-dimensional loading constraints. Eur. J. Oper. Res. 2010, 201, 751–759. [Google Scholar] [CrossRef]
  17. Iori, M.; Martello, S. Routing problems with loading constraints. Top 2010, 18, 4–27. [Google Scholar] [CrossRef]
  18. de Queiroz, T.A.; Miyazawa, F.K. Two-dimensional strip packing problem with load balancing, load bearing and multi-drop constraints. Int. J. Prod. Econ. 2013, 145, 511–530. [Google Scholar] [CrossRef]
  19. Alvarez-Martinez, D.; Alvarez-Valdes, R.; Parreño, F. A GRASP algorithm for the container loading problem with multi-drop constraints. Pesqui. Oper. 2015, 35, 1–24. [Google Scholar] [CrossRef]
  20. Hokama, P.; Miyazawa, F.K.; Xavier, E.C. A branch-and-cut approach for the vehicle routing problem with loading constraints. Expert Syst. Appl. 2016, 47, 1–13. [Google Scholar] [CrossRef]
  21. Pollaris, H.; Braekers, K.; Caris, A.; Janssens, G.K.; Limbourg, S. Capacitated vehicle routing problem with sequence-based pallet loading and axle weight constraints. EURO J. Transp. Logist. 2016, 5, 231–255. [Google Scholar] [CrossRef]
  22. Iori, M.; Locatelli, M.; Moreira, M.C.; Silveira, T. Reactive GRASP-based algorithm for pallet building problem with visibility and contiguity constraints. In Proceedings of the International Conference on Computational Logistics, Enschede, The Netherlands, 28–30 September 2020; Springer International Publishing: Cham, Switzerland, 2020; pp. 651–665. [Google Scholar]
  23. Ferreira, K.M.; de Queiroz, T.A.; Toledo, F.M.B. An exact approach for the green vehicle routing problem with two-dimensional loading constraints and split delivery. Comput. Oper. Res. 2021, 136, 105452. [Google Scholar] [CrossRef]
  24. do Nascimento, O.X.; de Queiroz, T.A.; Junqueira, L. Practical constraints in the container loading problem: Comprehensive formulations and exact algorithm. Comput. Oper. Res. 2021, 128, 105186. [Google Scholar] [CrossRef]
  25. Liu, W.Y.; Lin, C.C.; Yu, C.S. On the three-dimensional container packing problem under home delivery service. Asia-Pac. J. Oper. Res. 2011, 28, 601–621. [Google Scholar] [CrossRef]
  26. Junqueira, L.; Morabito, R.; Sato Yamashita, D. MIP-based approaches for the container loading problem with multi-drop constraints. Ann. Oper. Res. 2012, 199, 51–75. [Google Scholar] [CrossRef]
  27. Delorme, M.; Wagenaar, J. Exact decomposition approaches for a single container loading problem with stacking constraints and medium-sized weakly heterogeneous items. Omega 2024, 125, 103039. [Google Scholar] [CrossRef]
  28. Huertas Arango, J.M.; Pantoja-Benavides, G.; Valero, S.; Álvarez-Martínez, D. Approaches for the On-Line Three-Dimensional Knapsack Problem with Buffering and Repacking. Mathematics 2024, 12, 3223. [Google Scholar] [CrossRef]
  29. Mazur, P.G.; Melsbach, J.W.; Schoder, D. Physical question, virtual answer: Optimized real-time physical simulations and physics-informed learning approaches for cargo loading stability. Oper. Res. Perspect. 2025, 14, 100329. [Google Scholar] [CrossRef]
  30. Kurpel, D.V.; Scarpin, C.T.; Junior, J.E.P.; Schenekemberg, C.M.; Coelho, L.C. The exact solutions of several types of container loading problems. Eur. J. Oper. Res. 2020, 284, 87–107. [Google Scholar] [CrossRef]
  31. Ananno, A.A.; Ribeiro, L. A multi-heuristic algorithm for multi-container 3-d bin packing problem optimization using real world constraints. IEEE Access 2024, 12, 42105–42130. [Google Scholar] [CrossRef]
  32. da Silva, E.F.; Leão, A.A.S.; Toledo, F.M.B.; Wauters, T. A matheuristic framework for the three-dimensional single large object placement problem with practical constraints. Comput. Oper. Res. 2020, 124, 105058. [Google Scholar] [CrossRef]
  33. Ocloo, V.E.; Fügenschuh, A.; Pamen, O.M. A New Mathematical Model for a 3D Container Packing Problem; Fakultät 1/MINT; Brandenburgische Technische Universität Cottbus-Senftenberg: Senftenberg, Germany, 2020. [Google Scholar]
  34. de Azevedo Oliveira, L.; de Lima, V.L.; de Queiroz, T.A.; Miyazawa, F.K. The container loading problem with cargo stability: A study on support factors, mechanical equilibrium and grids. Eng. Optim. 2021, 53, 1192–1211. [Google Scholar] [CrossRef]
  35. de Azevedo Oliveira, L.; de Lima, V.L.; de Queiroz, T.A.; Miyazawa, F.K. Comparing a static equilibrium-based method with the support factor for horizontal cargo stability in the container loading problem. Pesquisa Oper. 2021, 41, e240379. [Google Scholar] [CrossRef]
  36. Martínez, J.C.; Cuellar, D.; Álvarez-Martínez, D. Review of dynamic stability metrics and a mechanical model integrated with open source tools for the container loading problem. Electron. Notes Discret. Math. 2018, 69, 325–332. [Google Scholar] [CrossRef]
  37. Martínez-Franco, J.C.; Álvarez-Martínez, D. Physx as a middleware for dynamic simulations in the container loading problem. In Proceedings of the 2018 Winter Simulation Conference (WSC), Gothenburg, Sweden, 9–12 December 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 2933–2940. [Google Scholar]
  38. Safak, Y.; Bortfeldt, A.; Çetinkaya, S.; Ölckers, A. A Large Neighbourhood Search algorithm for solving container loading problems. Expert Syst. Appl. 2023, 212, 118689. [Google Scholar]
  39. Gimenez-Palacios, I.; Alonso, M.T.; Alvarez-Valdés, R.; Parreño, F. Multi-container loading problems with multidrop and split delivery conditions. Comput. Ind. Eng. 2023, 175, 108844. [Google Scholar] [CrossRef]
  40. Romero, N. Restricciones de Fuerza de carga Máxima en el Problema de Carga en único Contenedor. Unpublished Bachelor’s Thesis, Universidad de los Andes, Bogotá, Colombia, 2020. [Google Scholar]
  41. Ceschia, S.; Schaerf, A. Local search for a multi-drop multi-container loading problem. J. Heuristics 2013, 19, 275–294. [Google Scholar] [CrossRef]
  42. Davies, A.P.; Bischoff, E.E. Weight distribution considerations in container loading. Eur. J. Oper. Res. 1999, 114, 509–527. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.