Introduction

Drayage involves the distribution of a fleet of trucks moving loaded and empty containers between intermodal facilities, importers and exporters. It typically accounts for a significant portion of total transportation costs in intermodal door-to-door container transportation.

This paper investigates a drayage problem, which is motivated by the case study of a medium-size carrier providing door-to-door freight transportation services. The carrier manages a fleet of trucks and specialized 24.5-foot containers to serve two types of transportation requests: the delivery of container loads from the port to importers and the shipment of container loads from exporters to the port. Although drayage operations are frequently encountered by carriers operating around ports, this case study exhibits some special characteristics, which were seldom investigated.

First, in most of the related studies containers are supposed to be left at customer locations, and drivers can move to other customers, thereby bypassing packing and unpacking operations (Wang et al. 2002; Jula et al. 2005; Chung et al. 2007; Zhang et al. 2010, 2011; Vidovic et al. 2011; Braekers et al. 2013; Nossack and Pesch 2013). Conversely, in this case study trucks move loaded containers to import customers and drivers wait for the empty containers, while unpacking operations are performed. Similarly, trucks move empty containers to export customers and drivers wait for loaded containers that will be returned after the conclusion of packing operations. Therefore, in this case study trucks carry the same containers throughout their routes. According to customers’ viewpoint, this is a high quality service, because the content of the cargo can be immediately verified by drivers: they make sure that the container loads are the correct ones, in the right quantity and without damages. Moreover, customers need to be equipped only with forklift trucks for packing and unpacking operations. From the carrier’s viewpoint, this service improves the integrity of containers, because they are never left unsupervised at customer locations.

Second, in this case study routes are performed by two types of trucks carrying one or two containers, respectively, whereas most of the related literature concerns one container per truck (Wang et al. 2002; Jula et al. 2005; Zhang et al. 2011, 2010; Braekers et al. 2013; Nossack and Pesch 2013). The case more than one container has been dealt with only recently (Vidovic et al. 2017; Funke and Kopfer 2016). The assumption of one container per truck is often unnecessarily strong, as the transportation of two 20-foot containers is allowed in many countries (citeNagl2007. Although two-containers trucks have higher costs per unitary distance, they allow to serve a larger number of customers per route than one-container ones. Although in this case study the majority of routes is expected to be performed by trucks carrying two containers, it is useful to propose a model to optimally decide by which type of truck each customer is served, taking into account the number of available trucks, in order to minimize routing costs. We assume that each truck performs only one route and the cost of routing between two predefined locations depends only on the truck type.

The planning of the truck routes is a complex task for the carrier of this case study, as no optimization-based tool is currently adopted to support this phase. At the moment, the carrier performs the planning of routes in accordance with this simple policy: all importers must be served before all exporters in order to exploit street-turns, i.e., the use of containers emptied at importers to collect cargoes from the exporters (Jula et al. 2006; Deidda et al. 2008). Thus, at the moment the routes consist in the shipment of container loads from the port to one or two importers, the allocation of empty containers from importers to exporters, and the final shipment of container loads from one or two exporters to the port. Since the number of container loads to be delivered to importers and collected from exporters is typically different, street-turns are typically insufficient and the carrier must also decide which customers are served by direct trips from the depot. The current carrier’s policy simplifies the planning process, but it does not necessarily yield optimal routes in terms of total cost. Indeed, street-turns can be realized by the optimization process itself, when they are useful to decrease the routing cost, instead of being forced a priori upon the routes construction. Therefore, some room for improvement exists in the current carrier policy.

This paper proposes an optimization model to support the planning of routes in accordance with the current carrier policy, and evaluates the savings that could be obtained according to the different distribution policy in which customers are allowed to be visited in any order. Since up to four customers can be visited in each route, the proposed model consists in the enumeration of all feasible routes and in the definition of a set-covering problem to select the subset of the generated routes that serves all customers at a minimum cost by the available vehicles.

The set-covering model is compared to the node-arc model proposed in Lai et al. (2013). That model was restricted to the case where all importers are served before all exporters, in accordance with the current distribution policy. Furthermore, it could not be solved efficiently with off-the-shelf optimization tools, and an ad-hoc metaheuristic had to be developed to (approximately) solve realistic-sized instances. We will show that the new model significantly improves on that one on both accounts.

The paper is organized as follows: In "Literature review", a brief review of the related literature is provided. In "Modeling", the set-covering model is presented. In "Experimentation", the results of our extensive computational experience are presented to compare the current and the new distribution policy. Finally, conclusions and further research perspectives are described in "Conclusion".

Literature review

This problem belongs to the field of pickup and delivery problems, because there are two types of customers needing to ship or receive container loads (Savelsbergh and Sol 1995). According to the problem classification in Parragh et al. (2008), the current carrier policy belongs to the class of vehicle routing problems with clustered backhauls, because in each route all deliveries must be performed before all pickups. This policy also belongs to the class of the so-called one-to-many-to-one pickup and delivery problems with single demands and backhauls in accordance with Berbeglia et al. (2007). The new carrier policy is called vehicle routing problem with mixed linehauls and backhauls (VRPMB) in Parragh et al. (2008) and one-to-many-to-one pickup and delivery problems with single demands and mixed solutions in Berbeglia et al. (2007).

In the domain of intermodal freight transportation, the distribution of containers by trucks between customers and intermodal terminals is called drayage. In container drayage, mostly 20-foot and 40-foot standard containers are transported, and usually only up to two 20-foot containers or one single 40-foot container can be carried by a truck. In recent years the literature on drayage has increased significantly, and many problem settings have been investigated. Table 1 provides a list on some of the most relevant papers on drayage and reports the main features of the investigated problem.

Table 1 Related literature on drayage

In accordance with Macharis and Bontekoning (2004), drayage involves the distribution of a full container from an intermodal terminal to an importer and the subsequent collection of an empty container, or the provision of an empty container to an exporter for the subsequent transportation of a full container. This definition takes into account both situations, where trucks and containers are coupled or separated during customer service. These operations are denoted by stay-with and drop&pick, respectively, and their performances are compared in Cheung et al. (2009). Some papers considered only stay-with operations, other papers focused only on drop&pick customer orders and, to our knowledge, both types of operations were investigated only in Ileri et al. (2006), Zhang et al. (2014) and Funke and Kopfer (2016).

Column drop&pick in Table 1 shows which papers assumed that containers can be removed from trucks at customer locations. However, these operations can be performed only if chassis can be removed from trucks and trailers can be interchanged between different trucks. These limitations prevent drop&pick operations to work effectively in many countries (e.g. Imai et al. (2007). Generally speaking, these papers were mainly investigated from the point of view of large carriers, which operate inland networks with several depots, where containers can be temporarily stored to be picked-up and dropped-off by trucks which bypass packing and unpacking operations. However, our case study is rather that of a medium-size carrier, which cannot afford either using inland depots or the acquisition of a large container fleet.

Column stay-with in Table 1 shows which papers investigated the variant where trucks and containers cannot be uncoupled. To the best of our knowledge, this variant has received less attention in the drayage literature. However, those references differ from this paper in two main aspects:

  1. 1.

    Those papers assume that trucks can only transport one container at a time, as shown in the column container per truck of Table 1, whereas, in our case study, some trucks can carry up to two containers. As a result, our drayage problem is more difficult to solve owing to its combinatorial characteristics: a truck with a single container moves one loaded or one empty container, whereas a truck with two containers moves two loaded containers or two empty containers or one loaded container and one empty container. The distribution of more-than-one container per truck by different types of vehicles has received attention only very recently [e.g., Zhang et al. (2015); Vidovic et al. (2017)], and only Lai et al. (2013, 2015) and Funke and Kopfer (2016) investigated both multiple containers per truck and stay-with operations.

  2. 2.

    We consider time windows at customer locations (see the column time windows of Table 1), but time windows are known to make routing problems much more difficult to solve whenever they are modeled by node-arc formulations. In fact, almost all papers on drayage with time windows and node-arc models were solved by heuristics, as reported in the rightmost column of Table 1. To our knowledge, exact solutions with multiple containers per truck and stay-with operations were obtained only by Funke and Kopfer (2016), but their instances are small. By using a path-based model, we are able to naturally deal with time windows without changing the formulation, and we are therefore expected to exactly solve realistic solutions in short time. Since in our application a route can serve up to four customers only, we can enumerate all feasible routes and solve a set-covering formulation to select the optimal subset of routes. In this approach, time windows are naturally considered by just checking each route for feasibility and discarding the unfeasible ones. Thus, time windows reduce the cardinality of the set of feasible routes, thereby making the problem easier to solve.

The approach proposed in this paper is compared to Lai et al. (2013), who investigated the closest problem setting in the literature. Unlike Lai et al. (2015), they assumed to have two types of trucks, which differ in terms transportation capacity and routing costs per unitary distance.

Modeling

We now present a model for the drayage problem arising in our case study. We adopt a path-based formulation, which results in two main steps: generating all feasible routes, and solving a set-covering model to select the subset of routes serving all customers at a minimum cost.

Routes enumeration preprocessing

Let I be the set of importers, E the set of exporters, \(V= I \cup E\) the set of customers and R the set of all feasible trips. Let \({R_{1}} \subseteq R\) be the subset of routes performed by trucks able to carry one container only, i.e. \({R_{1}}\) is made up with:

  1. 1.

    all the \(\left| I \right| +\left| E \right|\) routes serving one customer by one container;

  2. 2.

    all the \(\left| I \right| \cdot \left| E \right|\) routes serving one importer (first) and one exporter (next).

Although these routes could also be performed by trucks able to carry two containers, this possibility is not implemented by the carrier in this case study, because these trucks have larger routing cost per unitary distance as opposed to one-container trucks. Nevertheless, if one used two-container trucks for these routes, the number of routes would only double, thus it would have a minimum impact.

Let \({R_{2}} \subseteq R\) the subset of routes performed by trucks able to carry two containers. If one considers the current carrier policy, the set \(R_2\) of feasible routes performed by two-containers trucks is composed by:

  1. 1.

    all the \(\left| I \right| +\left| E \right|\) routes serving one customer by two containers;

  2. 2.

    all the \(\left| I \right| \cdot \left| E \right|\) routes serving one importer and one exporter by two containers each;

  3. 3.

    all the \(P_2^{\left| I \right| }\) (the number of permutations of all importers taken 2 at a time) routes serving two importers by one container each;

  4. 4.

    all the \(P_2^{\left| E \right| }\) routes serving two exporters by one container each;

  5. 5.

    all the \(P_2^{\left| E \right| }\cdot \left| I \right|\) routes serving one importer first and two exporters next;

  6. 6.

    all the \(P_2^{\left| I \right| }\cdot \left| E \right|\) routes serving two importers first and one exporter next;

  7. 7.

    all the \(P_{2}^{\left| I \right| }\cdot P_{2}^{\left| E \right| }\) routes serving two importers first and two exporters next by one container each.

Hence, the set \(R_{\text {c}}\) of all possible routes according to the current carrier policy has:

$$\begin{aligned} \left| {R_{\text {c}}} \right| = 2 \cdot ( \left| I \right| + \left| E \right| + \left| I \right| \cdot \left| E \right| ) + P_2^{\left| E \right| }\cdot (\left| I \right| + 1) + P_2^{\left| I \right| }\cdot (\left| E \right| + 1) + P_2^{\left| I \right| }\cdot P_2^{\left| E \right| } . \end{aligned}$$

The new policy allows also considering all the \(P_2^{\left| E \right| }\cdot \left| I \right|\) routes serving an importer between two exporters by one container each. Therefore, set \(R_{\text {n}}\) of all possible routes according to the new carrier policy has:

$$\begin{aligned} \left| {R_{\text {n}}} \right| = \left| {R_{\text {c}}} \right| + P_2^{\left| E \right| }\cdot \left| I \right| . \end{aligned}$$

Letting \(n = \max \{ \, \left| E \right| \,,\, \left| I \right| \, \}\), we have that both \(\left| {R_{\text {c}}} \right|\) and \(\left| {R_{\text {n}}} \right|\) are \(O(n^4)\); in other words, the new policy does not significantly increase the number of routes. Yet, the proposed model is only feasible when the number of importers and exporters is in the order of the many tens, which however is very reasonable for our case of a medium-size carrier. Furthermore, the number of routes is also limited if importers are “many” provided that exporters are “few”, or vice-versa. Finally, tight time windows would further significantly decrease the set of feasible routes, thereby making the next step feasible even with larger n.

The set-covering model

To define the set-covering model, let \(V = I \cup E\) be the set of customers and R the set of all feasible routes, which is equal to \(\left| {R_{\text {c}}} \right|\) and \(\left| {R_{\text {n}}} \right|\) in the case of the current and the new policy, respectively. For each route \(r \in R\) and each customer \(v \in V\), define the coefficient \(\alpha ^v_r\) as

  • \(\alpha ^v_r = 0\) if customer \(v\in V\) is not visited in route \(r\in R\);

  • \(\alpha ^v_r = 1\) if customer \(v\in V\) is visited in route \(r\in R\) to deliver or pick up one container load;

  • \(\alpha ^v_r = 2\) if customer \(v\in V\) is visited in route \(r\in R\) to deliver or pick up two container loads.

Let \(d _v\) be the demand of each customer \(v \in V\), i.e., the number of containers which must be used to serve v. We assume that the number of containers available at the port is sufficient to serve the requests of all customers.

Since the cost of routing between two predefined locations depends only on the truck type, the decision variable \(x_r\) is defined as the number of times in which route \(r \in R\) is performed, each time paying the corresponding unitary cost \(c_r\). Since we assume that each truck performs only one route, we need in input the number \(k_1\) and \(k_2\) of available trucks for one-container and two-containers routes, respectively. With this notation, the problem can be formulated as:

$$\begin{aligned} \min \;\;&\sum _{r \in R} c_r x_r, \end{aligned}$$
(1)
$$\begin{aligned} {\text {s.t.}} \;\;&\sum _{r \in R} \alpha ^v_r x_r \ge d_v \quad \quad \quad \quad v \in V, \end{aligned}$$
(2)
$$\begin{aligned}&\sum _{r \in R_1} x_r \le k_1, \end{aligned}$$
(3)
$$\begin{aligned}&\sum _{r \in R_2} x_r \le k_2, \end{aligned}$$
(4)
$$\begin{aligned}&x_r \in \mathbb {Z}_+ \quad \quad \quad \quad r\in R, \end{aligned}$$
(5)

Routing costs are minimized in the objective function (1). Constraints (2) ensure that all customers are served. Constraints (3) and (4) enforce that the number of routes is lower than the number of available corresponding trucks. Finally, constraint (5) defines the domain of decision variables.

Experimentation

The experimentation has several objectives. Firstly, we aim to compare the new set-covering model with the node-arc formulation proposed in Lai et al. (2013), which can be used only in the case of the current distribution policy (all importers must be visited before all exporters). Secondly, we aim to compare the solutions of the set-covering model to those of the metaheuristic algorithm proposed in Lai et al. (2013) in accordance with the current policy. Thirdly, we want to quantify which savings can be obtained if the set-covering model is run according to the new distribution policy, in which customers can be visited in any order. Finally, we want to show to what extent the set-covering model can be optimally solved in larger instances taken from VRP benchmarks, in order to investigate a potential increase in the carrier’s container volumes. The secrecy policy of the carrier does not allow us to publish the experimentation with real data.

In order to pursue the first objective, the experimentation is carried out on 50 realistic instances, in which the coordinates of customers and the number of containers to be shipped or received are taken from Lai et al. (2013). These instances are divided into five classes:

  • 10 instances with 10 customers, who must be served by 28 containers;

  • 10 instances with 20 customers, who must be served by 61 containers;

  • 10 instances with 30 customers, who must be served by 88 containers;

  • 10 instances with 40 customers, who must be served by 125 containers;

  • 10 instances with 50 customers, who must be served by 141 containers.

The different instances in the same class differ in the number of importers and exporters. In addition, we consider the case of a fleet of vehicles large enough to relax constraints (3) and (4), as it may occur for real in some workdays. In all the instances, time windows have been found to be so loose that hardly any route is infeasible. This can be considered the worst-case scenario for the model, as there is no reduction in \(\left| {R} \right|\) from the theoretical maximum, as it could be expected if tighter time windows were imposed.

The set-covering model in "Modeling" and the the node-arc formulation in Lai et al. (2013) have been solved by Cplex 12.5 on a Linux server with 3.00 Ghz processor, 16 GB of RAM, default parameter settings and maximum running time of 3 h. The outcomes are reported in Table 2 under the columns denoted by set-covering and node-arc respectively, and are grouped under the columns denoted by current policy. The following notation is used:

  • \(\tau _{\text {c}} {/}\) \(\tau _{\text {n}}\): preprocessing time (in seconds) to generate the routes for the set-covering model according to the current/new distribution policy;

  • \(t_{\text {c}} {/}\)\(t_{\text {n}}\): time (in seconds) to solve the instances of the set-covering model by Cplex according to the current/new distribution policy;

  • Gap: optimality gap at termination (in percentage) for the node-arc formulation (Lai et al. 2013) according to the current distribution policy;

  • \(t_{\text {NA}}\): time (in seconds) for Cplex to solve the node-arc formulation in Lai et al. (2013) according to the current distribution policy;

  • \({\text {Gap}}_{\text {NA}}\): relative difference (in percentage) between the upper bound determined by the node-arc formulation and that of the set-covering model;

  • \({\text {Gap}}_{\text {n}}\): relative difference (in percentage) between the upper bound determined by the set-covering model using the new policy and that determined by the model using the current policy.

Note that we do not report optimality gap at termination for the set-covering model because all instances have been solved to optimality. Conversely, for the node-arc formulation we (often) have to report “n.s.”, meaning that no feasible solution has been found within 3 h.

Table 2 Comparison with the node-arc formulation

Table 2 shows that, with the current policy, the set-covering model allows to optimally solve all instances in less than 16 s. The enumeration of all feasible routes is also not time-consuming, requiring about 25 sec in the worst case. Conversely, only 7 out of these 50 instances can be optimally solved by the node-arc formulation proposed by Lai et al. (2013); for 24 instance, an upper bound (usually, quite a good one, cf. the column \({\text{Gap}}_{\text {NA}}\)) is obtained for in 3 h, but for 19 instances it is not possible to obtain even the first feasible solution in this time interval. Generally speaking, the set-covering model proves to be much more effective than the node-arc formulation. Also, the introduction of the new policy is computationally viable with the set-covering model. In fact, when one switches from \(R_{\text {c}}\) to \(R_{\text {n}}\), the route generation times do not increase significantly, and all problem instances keep being optimally solved in a few seconds. Hence, the comparison between the current and the new policy is straightforward: although in our experiments the new policy improves the current one only in eight instances (and not by a large amount, cf. the column \({\text{Gap}}_{\text {n}}\)), generally speaking it is recommended to adopt the new policy, since all instances still can be easily solved and the solution is never worse than the current policy.

Since the largest instances in Lai et al. (2013) were solved—for the current policy—by a metaheuristic, in the following we compare the solutions obtained by the metaheuristic to those of the set-covering model. These experiments were carried out on the same instances of Lai et al. (2013), which differ from these of the previous experiments in that a limited fleet of vehicles is considered (i.e., \(k_1\) and \(k_2\) are small enough to influence the optimal solution). The results are reported in Table 3, using the same notation of Table 2; besides \(k_1\) and \(k_2\), we also report the relative gap \({\text{Gap}}_{\text {M}}\) (in percentage) between the solution found by the metaheuristic (M.H.) in 1 min and the optimal solution computed by the set-covering model.

Table 3 Comparison with the metaheuristic of Lai et al. (2013)

The results in Table 3 show that all instances of the set-covering model are again optimally solved in less then 1 min, counting the time for generating all the columns, for both policies; the new policy is in general slightly more costly than the old one (as it could be expected) to solve, and it does not improve significantly on the current one. Yet, both policies can be used, and the introduction of the cardinality constraint does not have any significant impact on the running time. The comparison with the metaheuristic (cf. column \({\text{Gap}}_{\text {M}}\)) shows that the solutions provided by the metaheuristic can be improved by the set-covering formulation, particularly when the number of importers is similar to the number of exporters, but also (albeit usually to a lesser degree) when the number of importers and exporters are quite different.

All previous tests have shown the effectiveness of the set-covering formulation for the case study at hand; the fast solution times indicate that even larger instances could be solved. Therefore, it is of interest to evaluate to what extent a standard solver like Cplex can be used to solve more challenging instances. For this we have adapted a set of Euclidean benchmark instances proposed in Goetschalckx and Jacobs-Blecha (1989) for the vehicle routing with backhauls. In order to represent realistic quantities of containers, customer demands have been divided by 100 and rounded to the nearest integer. These instances are divided into 14 classes denoted from A to N; the coordinates of nodes and the customer demands are fixed in all instances of a class, but they differ for the capacity of vehicles and the requested number of routes. In the reported experiment, we have taken the coordinates of nodes and the demands of customers from each class and assume that the fleet of vehicles is large enough to relax constraints (3) and (4). In light of the previous results, we have only run the set-covering formulation for the current and the new policy. The outcomes of the experiments are shown in Table 4, using a similar notation to the previous tables. Column “l” reports the total number of containers requested by all customers, and since not all instances were solved within the time limit of 3 h, columns “Gap” report (for each policy) the optimality gap (in percentage) obtained when Cplex stops.

Table 4 Experiments with larger instances

Table 4 shows that the enumeration of all feasible routes is not time-consuming for all instances that Cplex can optimally solve in 3 h, i.e., those with about four million variables for both policies. Enumeration can still be done in about 2 min even for the classes from K to N, which however cannot be directly solved by the set-covering model due to the large number of variables.

Yet, it would be possible to scale to larger sizes by using column-generation techniques, whereby only a small subset of the generated set of routes is initially inserted in the problem, and new ones are inserted as needed using standard duality arguments. However, this is left for future developments, as the set-covering model can solve instances with up to 503 containers in less than 3 h. This is already more than enough to cater the needs of the medium-size carrier originating this study, which handles about 150 containers in peak days: the set-covering model could effectively support the routing decision process even if the carrier container volumes would triplicate. This result is also interesting in the context of the literature where the stay-with modus operandi is adopted (see Table 1): it would seem that the corresponding approaches can only handle a smaller number of containers (e.g., up to 200 containers in the heuristics of Imai et al. (2007) and Caris and Janssens (2009), and up to 308 in the exact approach of Reinhardt et al. (2016). Finally, we remark that the effect of the new policy looks particularly beneficial for the instances of class E and J, where we obtain the largest percentage improvements of this paper with respect to the current policy.

Conclusion

In this paper we have presented the case study of a carrier dealing with a drayage problem by a heterogeneous fleet of vehicles. Since up to four customers can visited in each route, we explicitly enumerated the set of feasible routes and used a set-covering formulation to select the subset of routes serving each customer and minimizing routing costs.

Although the set-covering problem is NP-hard, it is possible to optimally solve realistic-size instances of the case study at hand by Cplex, significantly outperforming a previously proposed node-arc formulation, which, unlike this approach, can only be used when all importers are served before all exporters. Moreover, the set-covering model can be effectively used to evaluate a new distribution policy, in which importers are allowed to be visited after exporters. Even if doing so enlarges the set of feasible routes, they can be efficiently enumerated in a short time and Cplex can optimally solve instances up to three times larger with respect to the current business volumes of the carrier.

Therefore, solving larger instances is not of interest for this case study and is left for future research, where heuristic and exact approaches will be investigated. The proposed formulation is likely to be able to scale to much larger dimensions when using column-generation techniques, although efficiently generating the columns with negative reduced costs would then be nontrivial and would require specific algorithmic developments (Astorino et al. 2013; Frangioni et al. 2014).

A significant extension, for the specific carrier originating our research, is to the case of a multi-trip vehicle routing problem in which each vehicle is allowed to perform more than one route, considering, e.g. the maximum working time constraints (and, in general, work regulations) of drivers and considering factors like the extra cost due to possible overtime. Another interesting extension is to consider a planning horizon of several days for the case where customers do not require immediate service (but do set deadlines). Since all these extensions will likely lead to larger and significantly more difficult mathematical models, ad hoc approaches such as decomposition methods will probably have to be developed.