A specialized genetic algorithm for the fuel consumption heterogeneous fleet vehicle routing problem with bidimensional packing constraints

Article history: Received July 14 2020 Received in Revised Format November 24 2020 Accepted November 24 2020 Available online November, 24 2020 The vehicle routing problem combined with loading of goods, considering the reduction of fuel consumption, aims at finding the set of routes that will serve the demands of the customers, arguing that the fuel consumption is directly related to the weight of the load in the paths that compose the routes. This study integrates the Fuel Consumption Heterogeneous Vehicle Routing Problem with Two-Dimensional Loading Constraints (2L-FHFVRP). To reduce fuel consumption taking the associated environmental impact into account is a classical VRP variant that has gained increasing attention in the last decade. The objective of this problem is to design the delivery routes to satisfy the customers’ demands with the lowest possible fuel consumption, which depends on the distances of the paths, the assigned vehicles, the loading/unloading pattern and the load weight. In the vehicle routing problem literature, the approximate algorithms have had great success, especially the evolutionary ones, which appear in previous works with quite a sophisticated structure, obtaining excellent results, but that are difficult to implement and adapt to other variants such as the one proposed here. In this study, we present a specialized genetic algorithm to solve the design of routes, keeping its main characteristic: the easy implementation. By contrast, the loading of goods restriction is validated by means of a GRASP algorithm, which has been widely employed for solving packing problems. With a view of confirming the performance of the proposed methodology, we provide a computational study that uses all the available benchmark instances, allowing to illustrate the savings achieved in fuel consumption. In addition, the methodology suggested can be adapted to the version of solely minimizing the total distance traveled for serving the customers (without the fuel consumption) and it is compared to the best works presented in the literature. The computational results show that the methodology manages to be adequately adapted to this version and it is capable of finding improved solutions for some benchmark instances. As for future work, we propose to adjust the methodology to consider the three-dimensional loading problem so that it adapts to more reallife conditions of the industry. © 2021 by the authors; licensee Growing Science, Canada


Introduction
The delivery of goods to geographically dispersed customers plays a crucial role in the management of distribution and logistics, since it stands for a significant proportion of the operating expenses of the companies, mainly because of the high consumption and cost of fuel required for the whole operation. The delivery problem which has attracted the greatest attention is known as the vehicle routing problem (VRP) and it describes the distribution of goods from a main depot to a set of customers served by vehicles. The VRP was first introduced by Dantzig and Ramser (1959), which dealt with the delivery of fuel by trucks from a bulk terminal to a large number of service stations. Since the publication of this work, a great deal of considerations have been taken into account to tackle other industry problems. The original version of the problem merely considered to minimize the total distance traveled, but several studies have demonstrated that this objective is not aligned with the concerns of companies today. One of the most studied variants in the last decade is the one which reduces fuel consumption, given that not only does it represent a decrease in considerable costs for the company but it also begins to address the concerns of having a cleaner operation, that is, generating the least possible environmental impact Toth and Vigo (2014). It is known that fuel consumption is directly related to greenhouse gas emissions (GHG), especially the CO2 ones Demir et al. (2014). Conversely, due to advancements in more sophisticated computational systems and the development of more potent optimization techniques, it has been possible to solve problems that are closer to real-world conditions in the industry. One example is the solution of the integrated problem of loading and vehicle routing, which had been considered separately for more than 50 years. In the majority of these works, the loading was simplified in such a way that its geometric shape was ignored and only one dimension (in general, the volumetric one) was considered. In practice, should solve transport and loading problems at the same time, especially if the loading is not trivial (a single type of product, bulk or liquid, usually). For example, when an item is stacked on top of others, all these aspects should be carefully considered: the stacking stability, the frailty and how easy the unloading is for the operators. Thus, the solution for each individual problem turns out to be less practical due to the fact that, the solution may become infeasible when carrying out the task. For example, for an established route, the actual loading and unloading operations do not allow the packing of the entire customers' demand.
Integrated vehicle routing and loading problems such as Capacitated Vehicle Routing Problem with Two and Three Dimensional Loading Constraints (2L-CVRP and 3L-CVRP) have been studied and obtained satisfactory results by Iori et al. (2007) and Gendrau et al. (2006). The majority of previous works did not consider a heterogeneous vehicle fleet, since it is not common in practice. However, a heterogeneous fleet offers the flexibility to design a more profitable distribution plan and it respects the fleet upgrades throughout time.
This work concerns a practical VRP application. In this problem, the depot has a heterogeneous vehicle fleet, the customers' demands are composed of a set of rectangular items that represent non-stackable objects in practice, with known lengths, widths and weights. We then seek to select a set of vehicles and determine the route of each vehicle to serve all customers, aiming at minimizing fuel consumption used on the routes added to fixed and variable costs of the selected vehicles. Fuel consumption emerges as a factor on the sum of edges that form a trip made by the vehicle, associating the cargo transported in each edge with the loading capacity of the vehicle. While the fixed costs are associated with the vehicle selection, the variable costs depend on the edges traveled (distance between customers) to cover the route with the type of vehicle selected. The types of vehicles are heterogeneous regarding the capacity, the space and the fixed and variable costs of the loading. The number of units of each type of vehicle is unlimited. One route is only deemed to be feasible when there is a viable loading (unloading) plan for the demanded items by the customers on this route, that is, the unloading of goods from a customer upon arriving at its destination should be done without reordering of the remaining boxes, which is known in the literature as sequential loading constraint or LIFO (Last-in First-out) or multi-drop.
The 2L-FHFVRP is also of great interest in the theoretical research. Considering that it is a combination of two well-known NP-hard problems: the Heterogeneous Fleet Vehicle Routing Problem (HFVRP) and the Two-dimensional Bin Packing Problem (2D-BPP). Iori et al. (2007) shows that the integrated problem is at least as complex as one of these separately, i.e., the 2L-FHFVRP is NP-hard, too.
To solve this problem, we present an elitist-based genetic algorithm Chu and Beasley (1996). We adapted and extended the chromosome representation (solution) from a data structure proposed by Liu et al. (2009). The data structure consists in a onedimensional array to register the order of customers to be served and employs a directed graph to generate a set of possible routes given by that order.
The initial population makes use of the heuristic solution associated to the TSP over the original nodes. The tournament selection is carried out, where two winning chromosomes are recombined through five classical operators. Next, we compute the fitness associated with each of these elements, including the validation of the two-dimensional packing constraints, which penalize the offspring that do not satisfy them. Lastly, we present the new individuals to the population. This procedure is repeated until the maximum number of generations criterion is met. Due to the elitist structure of the algorithm, two populations are required during the optimization process.
In particular, the algorithm that checks the two-dimensional packing constraints is Greedy Randomized Adaptive Search Procedure (GRASP) based procedure which, in its construction phase, uses the maximum space concept to represent the packed items and the largest remaining available spaces, pseudo-randomly chooses among criteria such as grouping items by customers or taking all items to the rear of the vehicle. By allowing infeasible solutions, the proposed methodology manages to stand out from previous work which merely dealt with feasible search spaces.
The devised encoding allows to reunite the assignments of all types of vehicles required by the chromosome in the direct graph and dissociates the packing metaheuristic by calling it only when there is a solution to the shortest route problem (which defines the sequences of customers to be visited). To demonstrate the efficiency of the proposed methodology, we solved all the benchmark instances, achieving solutions in a reasonable CPU time. In addition, the genetic algorithm was compared with previous works on the 2L-HFVRP (without considering fuel consumption) and the results demonstrate that the proposed algorithm has an acceptable performance in relation to the best works published in the literature.
The remainder of this paper is organized as follows. Section 3 formally describes the problem. Section 4 provides a brief literature review on the problem. Section 5 presents the proposed methodology, detailing both the data structure and the optimization algorithms. Section 6 contains the performed computational study. Finally, Section 7 offers concluding remarks and future work of this study.

Problem Description
The heterogeneous fleet vehicle routing problem with two-dimensional packing constraints consists in serving, from a depot, the demands of various customers who are geographically dispersed, in order to minimize fuel consumption added to fixed and variable costs. It is also important to consider the load capacity or the maximum weight each one of the employed vehicles support and place the demand (items) in such a way that, when visiting the customers, it is not necessary to rearrange the corresponding load to subsequent customers.
The problem can be formally described as follows. The 2L-FHFVRP is defined over a complete graph = , , where = 0, 1, 2, … , is a set of vertices (vertix 0 represents the depot and the remaining ones are the customers) and = : , ∈ the set of edges. Each edge ∈ has an associated distance. A fleet of different types of vehicles is located in a depot and a very large number of vehicles for each type is assumed. Each vehicle has an associated capacity , a fixed cost , a variable cost , a length , a width and a weight (where = 1,2, … , ). It is assumed that a vehicle with greater capacity has both higher costs and fuel consumption. Thus, if ≤ ≤ ⋯ ≤ , so ≤ ≤ ⋯ ≤ and ≤ ≤ ⋯ ≤ . The variable costs of transportation for each edge ∈ for each vehicle are = * . Therefore, the transportation costs (not only the fixed but also the variable ones) of a route for the vehicle type are = + ∑ , ∈ , where represents the set of edges that form the route ( = 0, , , , … , , 0 ). The cost of fuel consumption for each arc , incurred by a vehicle type transporting a load with weight is = • . It is worth mentioning that, for the same arc, the fuel consumption differs depending on the amount of load transported and the vehicle that transports it. Similarly to Zhang et al. (2015), is defined as , where is the sum of weights of the customers' demands being transported. Therefore, the objective function of the problem is presented in Equation (1), which consists of both transport and fuel consumption costs.

= +
In contrast, each customer (where, = 1, 2, … , ) requires a set of rectangular items, with a total number of items | | and a total weight equal to . Each item ∈ ( = 1,2, … , | |) has a specific length and a width . In the 2L-FHFVRP, the vehicle routes and packing of the goods must satisfy the following constraints:  All routes must start and end at the depot.  All items of a customer must be loaded in the same vehicle, that is, the customers must be served only once.  All items must be loaded with their sides parallel to the walls of the vehicle.  The capacity, length and width of the vehicle cannot be exceeded by the load.  The load cannot overlap each other.  Each item can be positioned inside the vehicle, so that, upon arrival at its destination, the vehicle can be unloaded without the need to reorganize the items of the other customers.
In this way, the 2L-FHFVRP seeks to select a set of vehicles to perform the routes respecting the assignment of customers to them so as to minimize Eq. (1), subject to the aforementioned set of constraints.

State of the Art
A starting point for the vehicle routing problem considering packing constraints is the state of the art review carried out by Iori and Martello (2013), which was improved by Pollaris et al. (2015). After studying the previous work, it is necessary to highlight the relevance of solving the vehicle routing problem combined with the loading of the goods, aiming at optimizing real-life objectives of the industry. To this end, the authors recommend reading Côté et al. (2017). To the best of our knowledge there are no studies on the 2L-FHFVRP prior to the publication date of this work, we decided to focus the literature review on the 2L-HFVRP, whose only difference is the objective function to be dealt. The first work reported in the literature presents a simulated annealing algorithm, which obtains reasonable results and was put forward by Leung et al. (2013). In this study, the 2L-CVRP and the HFVRP are also solved in a satisfactory way. On the other hand, Domínguez et al. (2016a) and Domínguez et al. (2016b) suggested ILS-based algorithms that manage to outperform the best results reported in the literature. These works are relevant as they highlight the importance of considering real-world conditions of the goods transport operations. For this purpose, the authors conducted a study on the different scenarios evaluating features such as: item rotation, sequential loading/unloading and the use of a heterogeneous fleet of vehicles.
Considering the fuel consumption within the objective function enables one to generate a set of routes in which less loaded vehicles travel longer distances (refer to Fig. 1). This variant is known in the literature as vehicle routing problems considering environmental impact, was formalized by (Suzuki, 2011) and (Bektaş & Laporte, 2011). (Xiao et al., 2011) are the ones who first relate the weight load to the distance traveled, with fuel consumption within the cost function. Following this, (Zhang et al., 2015) simplified this relation, thus establishing an objective function that seeks to minimize the transportation costs as well as the fuel consumption ones. By reviewing the works that integrate vehicle routing and packing of goods under practical conditions, one can find that assuming a demand or deterministic travel times are strong assumptions that affect the performance of the solutions in reallife applications. It is worth mentioning that Guimarans et al. (2016) and Guimarans et al. (2018) included uncertainty characteristics in the analysis, bringing them even closer to real-world vehicle routing problems. Recent studies considered such characteristics in travel times and load demand in order to combine them with distinct fleet capacities and establish an objective function closer to the current concerns of carriers, as found in Micheli and Mantella (2018). The environmental variant of this study is known as Vehicle Routing Problem with Fuel Consumption, which seeks to reduce fixed and variable costs associated with the routes, added to those generated by fuel consumption. This version aligns with current concerns of the companies. On the other hand, in the literature one can find studies of the problem considering threedimensional packing constraints. The most relevant work in this direction is the evolutionary local search presented by Zhang et al. (2015), which is capable of solving in a satisfactory fashion the combined problem of routing and packing with fuel consumption minimization. This study aims at extending the work proposed by Zhang et al. (2015) by considering the existence of a mixed fleet of vehicles in the context of non-stackable load.

Solution Methodology
In this study, we propose a metaheuristic algorithm by trying to exploit the ease of implementing this type of methodology. We adapt the structure of the genetic algorithm (GA) presented by Chu and Beasley (1996), and we incorporate a GRASP algorithm based on different works published in the field of cutting and packing. It is worth mentioning that the base of both algorithms is the encoding employed: for the GA, we adapted the split procedure, whereas for the GRASP, we adapted the concept of maximum residual space.

Encoding
The encoding devised by Prins (2004) consists of a vector that represents the order of customer service, which uses an auxiliary directed graph, to create all the possible trips following the established order, assuring the capacity constraint of the available vehicle. Considering that such graph comprises all the feasible routes given an order, we must then select the best set of routes to visit all customers at a lower cost, which is achieved by solving a Shortest Path Problem. This encoding was extended by Liu et al. (2009), making it possible to consider a heterogeneous fleet of vehicles. In this work, there are adaptations to also represent the packing constraints, seeking to perform, in the creation and updating of the digraph, the filtering of trips that are infeasible by sequential packing in the different vehicles present in the fleet. Hence, the construction of the digraph will consist of the creation of the arcs corresponding to the trips that can be made considering only the capacity constraint (supported weight) of the distinct vehicles. Given that the fixed and variable transportation costs directly relate to the vehicle capacity, it is not necessary to create the same trips (arcs) to large-sized vehicles if a smaller sized vehicle can perform this trip. Therefore, not considering the packing constraints in the creation requires verifying if the solution to the shortest path problem does not contain infeasible trips. To this end, we will use a GRASP algorithm, which will be described later. Thus, each one of the solution arcs must be validated, in case it is not packable, large-sized vehicles are tested until the available fleet is depleted, but if it is not possible to find a vehicle to transport the goods, this arc must be eliminated from the digraph and a shortest path problem must be solved again.
It is important to mention that the resulting auxiliary graph is a directed acyclic graph (DAG), which allows for using the version of the algorithm of Bellman-Ford for DAG Ahuja et al. (1988), in order to calculate the shortest path in an efficient way. Due to the possibility of obtaining infeasible arcs in terms of packing, the Bellman-Ford algorithm will be called iteratively. In this manner, all the infeasible arcs by packing are deleted from the auxiliary digraph, and the Bellman-Ford algorithm is called with the updated graph until a feasible solution is reached. This coding scheme offers great flexibility to tackle multiple variants of the problem. The selection of the arcs that will compose the digraph and the information that will be associated with each one of these arcs provides the possibility of representing variants that allow for stacking (threedimensional packing), multiple depots, homogeneous or heterogeneous fleet, time windows, among others.
The main objective of this work is to improve the vehicle routing problems and packing, including the minimization of fuel consumption. In terms of encoding, the environmental impact will be reflected in the cost of the arcs of the auxiliary graph. Figure 2.a illustrates an instance with five dispersed customers. The proposed encoding then requires to store the order of customer service in an array. Figure 2.b shows an example of the order of service of these five customers. In order to find the set of feasible routes, it is necessary to create an auxiliary graph, using the available distinct vehicles. Figure 2.c depicts an example of graph for two types of vehicles (V1 and V2): a dotted arc represents a trip made by a vehicle type V1, whereas the continuous blue arcs represent the trips made in vehicles type V2. On the other hand, in Figure 2.c, the green dotted lines correspond to the shortest path, as a result of executing the Bellman-Ford using as the cost of the arcs the cost of each trip given by Equation (1). This green dotted solution is the one that will enter the iterative scheme of verifying the packing constraints for each trip. When all resulting arcs are valid, a feasible solution will be finally obtained, given the order of customer service, as shown in Figure 2.d, where two trips are performed: the first one in vehicle V1, serving customers B and C, while the second one in vehicle V2 visiting customers A, E and D. Example of order of customer service. c. Auxiliary Graph and the shortest path. d. Set of routes and packing within them.

GRASP Algorithm for Packing
In this work, we adapted a GRASP algorithm presented in Álvarez-Martínez et al. (2015) that allows for obtaining, in its construction phase, feasible solutions through the control of the positioning of items inside the vehicle, thus satisfying the sequential loading constraint. The GRASP algorithm was developed by Feo and Resende (1989) to solve difficult combinatorial optimization problems. GRASP is an iterative procedure that combines a construction phase with an improvement phase. In the construction phase, a solution is built gradually, by adding elements to it. This phase must be iterative, greedy, random and adaptive. The search strategy proposed in this algorithm enables, in the construction phase, the random choice of items to be located in each empty space, while in the local search phase, emptying and filling movements are performed.
The Algorithm 1 proposed begins by selecting one of the available empty spaces (s´) from the list S, then the list of layers of items (L) that fit in the space s´ is generated. Next, this list L is reduced to the Restricted Candidate List (RCL) and from this reduced list one of its elements (C) is randomly selected. This layer C is located, thus generating the pattern P and imposing to update the empty space list as well as the list of the remaining items (S, Bj, and B, respectively). If when finishing to pack the items of a customer there are still empty spaces and customers to pack, the empty space list must be updated by customer change, in which the spaces that violate the sequential loading constraints must be eliminated. When we have finished trying to assign all the items demanded by the clients of the route, we analyze if the objective function of the obtained pattern is of good quality, that is, if this solution built is promising. Through the ImproveBuiltPattern(P) function, items will be randomly removed and an attempt will be made to refill the vehicle by eliminating random choices from the search scheme. Finally, we verify if all the demanded items have been packed, returning true if it is feasible. In case the iterations run out and in no attempt it was possible to pack all the items, the algorithm will return infeasible.
For more details on the construction phase and randomization that are key to understanding the packing algorithm, we refer to Álvarez-Martínez et al. (2015). The constructive algorithm of this work is based on the construction phase proposed by Escobar et al. (2015). Both studies share the characteristic of having cargo with multiple destinations, which requires special treatment for update structures of the remaining (empty) spaces. This part is laborious given that empty spaces must be verified in order to guarantee the sequential loading, which implies that some of them must be deleted or reduced. The constructive procedure uses the maximum empty spaces to represent the available area of the vehicle. In this case, each selected item is packed in an empty space and this generates at most two new maximum spaces (see Fig. 3). The constructive algorithm uses a list S of the maximum spaces and a list Bj of the boxes of customer j that still have to be packed. The steps 0-4 summarize the constructive algorithm.
Step 0: Initialization. A list of the maximum empty spaces is created and initiated with the vehicle space (area) to travel the route. Be the lists B1, B2, …, Bn the sets of items of each customer to be served in the route and the list B the set of all demanded items.
Step 1: Choose a maximum space of S. Given that the list S contains the largest empty rectangles available and that there are many candidates (items to be packed), one must determine a selection mechanism based on some quality criterion or packing strategy. In this work, two selection criteria are proposed: choose the maximum space with minimum distance to the bottom of the vehicle and choose the maximum space with greater area. In addition, the rear corner closest to one of the rear corners of the vehicle is selected from the chosen space, as an anchor point (or reference) when locating the items in the empty space.
Step 2: Choose the items to be packed. Once the maximum space s' has been selected, each box k that fits inside s' must be taken from the ordered list Bi (where i is the current customer to be packed). If there are many copies of box k, each one of the possible layers must be generated. This consists of packing items in arrays of columns or rows combining the different axes. As in Escobar-Falcón et al. (2016), two criteria are considered to select one of the configurations of the items (boxes). Choose the layer of boxes that produces the largest increase in the objective function (maximum area) or choose the layer of boxes that best fit in the maximum space (best-fit). The latter is a criterion in which the distances between the sides of the layer of boxes and the maximum space are computed, so that the distances of each configuration are sorted in non-decreasing manner and select the configuration with the shortest distance (the one that best fits the space).
Step 3: Update the list S. Unless the box (or the layer) fits exactly in the space s', the packing process will produce new empty maximum spaces that will replace s' on the list S. On the other hand, as the maximum spaces are not disjoint, the packed boxes may be intercepted with other maximum spaces which can be reduced or eliminated. The list B is also updated and the maximum space that cannot locate any of the remaining boxes to be packed must be eliminated from S. If there are still boxes of a customer to be packed, it is necessary to return to Step 1.
Step 4: Update the list S to the next customer in the route. When the current customer has been packed, the maximum spaces must be updated to ensure the sequential loading constraints, that is, all the maximum spaces that are completely invisible from the vehicle door will be removed from the list. The maximum spaces that have a visible and an invisible part must also be updated (modified). If S or B are empty, this phase is terminated. Because a greedy construction would not allow a good exploration of the search space, a high degree of randomness is introduced in Step 2. Hence, a layer is constructed for each type of item, according to the selection criteria (maximum area or best fit). Each one of these is either called configuration or candidate. A restricted candidate list is built with the whole set of possible layers and one of the these is selected at random. The parameter ∈{0,1} controls the size of the candidate list. The performance of the constructive algorithm depends mainly on this parameter. Therefore, in this work, we tuned it in a reactive way as proposed by Camacho et al. (2018), thus allowing for different list sizes to be adjusted according to their historical performance.
The improvement phase consists of applying the aforementioned constructive procedure, eliminating all the random characteristics, after having eliminated K% of the packed boxes. The percentage of boxes and the boxes to be removed from the solution are performed as recommended in Escobar et al. (2015).

GA-GRASP Algorithm
The solution methodology of this study adapted a Chu-Beasley Genetic Algorithm, where recombination operators are used on vectors of the order of customer service, over which the split procedure is applied, which helps to determine the objective function. The split adaptation to the problem of the present work was described in Section 5.1. The Algorithm 2 illustrates the proposed optimization scheme. In this, the initial population is partially generated in a random way (Lines 1-3), but most of it is built by solutions found by a Simulated Annealing based algorithm, in which the TSP obtained by the heuristic of Christofides (1976) is used as the initial solution, applied solely to the customers (Lines 4-7). In total, individuals are generated, where is the number of customers that must be served in each case.
On the other hand, the generational scheme of the proposed genetic algorithm consists of selection, recombination and mutation. The selection is carried out by tournament (Line 9), in which a couple of parents is selected. In the recombination, five classical operators of the literature are employed (PMX, SJX, OX, CX y OBX), generating a son for each operator (Line 10). After this, the critical phase of the algorithm thus begins, which requires the calculation of the adaptation function (fitness) for each offspring created. Hence, the split is adapted to find the routes in an efficient way for the order of service given in the chromosome. In this manner, the first step consists of creating the directed graph (Line 12), considering the different vehicles available in the fleet and the weight of the items and having the objective function (Equation 1) as the cost of the arcs from the routes. After creating the graph, one must solve the shortest path problem over it, as to identify the set of routes that visit all nodes in a more inexpensive fashion. Given that the resulting graph is a directed acyclic graph (DAG), it is possible to use the version of Bellman-Ford algorithm for this type of graph (Line 14). The selected routes (arcs that form the shortest path) have a chance of being mutated (Line 16). The mutation of the routes consists of finding the first improvement by means of the classical 2-opt operator for the TSP (Line 17). The mutated routes directly affect the chromosome, hence, the order of service is corrected so that the individual can pass this information on to the next generations. The routes being mutated or not may be considered infeasible from the packing perspective, making it necessary to validate them with GRASP (Line 19). Each time there is an infeasibility, it is corrected in the graph, eliminating the corresponding arc (Line 21). While there are infeasibilities, one must continue to execute the split.

Iteration Solution Maximal Spaces
Finally, each feasible individual is presented to the current population, if it meets the degree of diversity and its objective function is better than at least the worst individual in the population, this one will replace it (Lines 25 and 26). In addition, the aspiration criterion was implemented, meaning that, although the individual is not diverse, if it has a better objective function than the worst individual of the "elite group" of the population, this must enter the elite group, thus displacing the worst individual in the population Chu and Beasley (1996). In this way, the basic structure of the elitist algorithm is preserved.
Because validating the packing constraint is an NP-hard problem, it is important to define a fast and efficient route feasibility scheme. To this end, a storage of the results provided by GRASP was implemented as acceleration strategies. In this way, the hash table which stores the validations already made is consulted first, in order to eliminate the number of times the GRASP is called.

Computational experiments and results analysis
In this section, the results obtained by the proposed methodology are presented. For this purpose, the set of classic instances published in the literature were used. The battery of cases is divided into five classes, each one composed of 36 instances. Because there are no previous works that address the fuel minimization problem, we analyzed the worsening of the distance of the obtained routes, aiming at minimizing the fuel consumption. For this, we executed the proposed methodology on the cases and, similarly, we evaluated the behavior by eliminating fuel consumption. Following this idea, we used the results obtained without considering fuel in order to compare them with previous works in a fair manner. In this way, the performance of the methodology is compared, and it is demonstrated that it achieves better results for some instances, which validates the correct development of the algorithm. All the experiments carried out in this study were executed in a machine with the following specifications: an Intel® Core ™ i5-4570 processor 3.20 GHz, with 8 GB of RAM memory running Ubuntu Linux 16.04.03 64 bits. All algorithms were coded in C++®. Table 1 shows that the parameter values of the proposed algorithm are mostly calibrated according to the characteristics of the problem. For that purpose, an experimental adjustment of the proportions for each parameter was made, using ranges of values recommended in the literature. The genetic algorithm requires five parameters and each one of these was calibrated with respect to the number of customers to be routed. On the other hand, the GRASP algorithm only requires two parameters due to its reactive nature, which enables it to calibrate its main parameter, based on the historical performance for a reduced number of values. 30 * n is the number of customers to be routed and m is the number of boxes to be packed in the route. Table 2 shows the computational results obtained by the proposed methodology, where column Cost is the objective function achieved by the best solution found and the column Computation Time is the computational time in seconds, required to achieve this solution. Distance is the sum of the distances of the arcs that form the solution. Meanwhile, the column GAP is the percentage difference between the distances of the solution minimizing fuel costs and the solution minimizing only the distances. From Table 2, it can be observed that the proposed methodology manages to solve all the benchmark instances, requiring less than one second for the instances of Class 1 (where the items are homogeneous) and less than a minute for the instances of Class 5 (where the items are highly heterogenous). The difference between the obtained distances is quite small, which means that the cost structure of the objective function incorporated into this work guides the algorithm to balance the weight of the load with which it crosses the arcs. As illustrated in Figure 1, a large part of the edges of a solution is preserved in the other, modifying only its direction. On the other hand, Table 3 presents the results obtained by modifying the methodology so that it seeks to minimize the traveled total distance of the routes. These results are fairly compared with the best solutions reported by previous works in the literature Leung et al. (2013), Domínguez et al. (2016a and Domínguez et al. (2016b). In particular, the column BKS is the best known solution for each instance and the column GAP is the percentage difference between the distances of BKS and the one obtained in the present work. It should be noted that the same parameters established for the 2L-FHFVRP were used. The computational times achieved are similar to those obtained in the fuel version, however they are not reported because a one-to-one comparison would not be fair due to the differences between the computer architectures and programming languages. In the Table 3, it is shown that the proposed methodology manages to solve all the benchmark instances, achieving many of the best reported solutions and improving others. The difference between the distances obtained is quite small, 8,5% on average. It is worth mentioning that the algorithms against which are compared aim at improving its objective function (minimizing the total distances) through specialized search operators. The proposed algorithm was easily adapted to this version of the loading and packing problem, preserving its original structure.

Conclusions and future work
We solved the integrated vehicle routing problem and the loading of goods with a view to reducing fuel consumption, through an elitist genetic algorithm of easy implementation, which is a basic characteristic of metaheuristic approaches. We obtained satisfactory results in reasonable computational times (less than 30 seconds on average). Its behavior was validated by comparing its performance with the best previous works published for a variant of the problem that does not consider fuel consumption. We achieved several of the best known solutions and improved some instances, having a small gap against the best reported results. We presented an efficient and fast adaptation of the split encoding, which enables to easily incorporate the packing constraints, avoiding to dramatically increase the computational times. The use of this representation allows for introducing real constraints of the problem without modifying the main structure of the algorithm, given that the practical considerations are validated during the creation of the auxiliary graph. Constraints such as time windows, duration of the routes, among others, are satisfied by simply limiting the set of arcs to be created.
We adapted the reactive GRASP algorithm to the validation of feasible routes by packing. We used the maximal spaces encoding to consider the sequential loading constraint in such a way that, between customers, only the feasible spaces are preserved at the time of loading. In addition, its light structure makes it independent of a large number of parameters and it adjusts to the complexity of the variety of items. As for future work, we propose comparing the present study with methodologies that achieve good results to other variants of the vehicle routing problem and packing, especially we suggest implementing the ILS metaheuristic, which appears with better performance in the literature. In addition, we recommend using and adapting the proposed methodology to problems that consider real-world constraints, such as: time windows, maximum travel times, electric vehicles, stackable goods, among others.

Table 2
Results obtained by the GA-GRASP