1 Introduction

Container terminals play the role of exchange hubs within containerized transportation; they transfer containers from vessels to trucks, trains and barges and vice versa. Figure 1 illustrates a container terminal consisting of a quay with quay cranes, truck and train receiving gates and the yard. Vessels and barges berth at the quay where containers are unloaded and loaded by quay cranes. Trucks and trains are unloaded and loaded with appropriate equipment at their dedicated gates. The yard serves as a temporary storage location for import (from sea to inland) and export (from inland to sea) containers.

Fig. 1
figure 1

A schematic view of a container terminal

Due to the pressure from a limited number of large shipping companies, terminals—in particular geographically close ones—face strong competition. Their competitiveness is notably marked by vessel turnaround times. But recently, the connection of a terminal to its hinterland has become a key area for competition since inland transportation costs account for 40–80 % of total shipping costs (Notteboom and Winkelmans 2004). Terminals offering an efficient connection to the inland—via rail, road or waterway—have an advantage over their competitors as they may offer short and reliable delivery times. Delays at the terminal should be minimized since they downgrade the overall productivity of the freight transportation system. Increasing the throughput of a terminal by extending its transfer and storage facilities is expensive and limited by space restrictions. For all these reasons, container terminals are forced to use their resources efficiently.

This paper deals with an allocation problem encountered at the Grand Port Maritime de Marseille and other terminals using manned straddle carriers. Straddle carriers are used to store containers in the yard and to transport containers between the yard and the loading/unloading areas. The number of available straddle carriers may vary over time since it depends on the number of drivers. Service times of trucks, trains, barges and vessels depend on the number of allocated straddle carriers. We deal with the straddle carrier allocation problem at a tactical level. Our objective is (1) to allocate straddle carriers in a way that respects imposed service times on vessels and that minimizes delays of landside transport modes (trucks, trains and barges) and (2) to determine the number of straddle carriers/drivers needed to achieve the desired service quality.

The few studies dealing with resource allocation at container terminals focus on vessel loading and unloading activities and minimize only vessel turnaround times. They neglect inland transport modes and the fact that the service quality of different transport modes is connected since they share internal material handling resources. Gambardella et al. (2001) determine a minimal cost allocation of quay cranes, transport vehicles and yard cranes to vessels. They formulate the problem as a network design problem where containers to be moved are modeled as flows and arc capacities are limited by the number of allocated resources. A discrete event simulation model, described in Gambardella et al. (1998), verifies the feasibility of the provided solution. Kang et al. (2008) optimize the number of cranes and trucks for vessel unloading operations. A cyclic queue model studies the steady-state port throughput and determines the optimum fleet size for long-term operations. A Markovian decision model defines optimal policies for real time fleet management to minimize fleet operating costs and vessel waiting costs. Vis et al. (2005) propose an integer linear program minimizing the number of vehicles required to transport containers between the quay and the yard. Directed paths represent possible sequences of container movements. The minimum number of directed paths serving each container exactly once equals the minimum number of vehicles needed to execute the tasks.

Alessandri et al. (2008b) propose a dynamic discrete-time model of container flows within a terminal as a system of queues. Two feedback control strategies for the allocation of resources are presented. One strategy is to allocate resources proportional to the current queue lengths, another to perform an one-step-ahead optimization of a cost function according to a myopic approach. Both strategies are evaluated and compared via simulation. In Alessandri et al. (2008a), another solution approach for the same problem via neural networks is presented. Kozan (2000) presents a network model for minimizing the total throughput time of containers from their arrival to their departure (traveling and handling times). This model is meant to serve as a decision support system in the context of investment appraisal, but not for improvements on operational methods.

Other studies deal with task assignment and scheduling on straddle carriers or automated guided vehicles (AGVs) at container terminals at an operational level (e.g., Das and Spasovic 2003; Hartmann 2004; Bish et al. 2005; Briskorn et al. 2006) or the integrated scheduling of different kinds of handling equipment (eg., Meersmans and Wagelmans 2001; Chen et al. 2007; Lau and Zhao 2008; Cao et al. 2010). These studies take a given set of container movement requests (tasks) and a given set of resources allocated to these tasks as an entry. They schedule tasks on the available resources based on known due dates and precedence constraints of tasks at an operational level. Our work, in contrast, aims to determine a resource allocation for capacity planning purposes at a tactical level.

Section 2 introduces the tactical straddle carrier allocation problem at intermodal container terminals. Section 3 introduces a mixed integer linear programming framework to model this problem and presents an exemplary implementation for a container terminal at the Grand Port Maritime de Marseille. Section 4 discusses experiments conducted for that terminal. Section 5 presents a simulation model for this terminal and evaluates the results obtained from the optimization model in a stochastic environment. Section 6 concludes the article.

2 Tactical straddle carrier allocation problem at container terminals

2.1 Problem description

Straddle carriers are able to pick up, transport and put down containers as well as to stack containers up to four container heights. They can thus execute all storage and transportation operations for trucks, trains, barges and vessels. Straddle carriers are shared among these transport modes and service times depend on the number of allocated straddle carriers.

The handling capacity of the terminal depends on the number of drivers assigned to straddle carriers and may vary over time. Some terminal operators (like the ones in Marseilles) can even hire drivers for the next day on a daily basis. This enables them to adapt their capacity to the expected workload via the number of drivers. The workload depends on arrivals and volumes of vessels, trucks, trains and barges. The workload for trains, barges and vessels can be estimated from their schedules. If the terminal uses a truck appointment system, the workload for trucks can be obtained from the made appointments. Otherwise, the workload can be estimated from historic data and from the scheduled arrivals of vessels (Gambardella et al. 1996; Dauzère-Pérès et al. 2012; Appendix). For organizational reasons and to facilitate drivers’ tasks, manned straddle carriers are assigned to one transport mode for a fixed time period (e.g., 1 h). In practice, the working day is split into a series of time periods and straddle carriers are always assigned to one transport mode for the entire time period. Reallocating straddle carriers is only possible between two consecutive time periods.

At a tactical level, two questions have to be addressed: (1) How many straddle carriers are needed for the next day and (2) How should straddle carriers be allocated to the different transport modes over the working day to serve vessels within their imposed time windows and to reduce delays of landside transport modes (rail, road, waterway)? This allocation may then be used at an operational level to schedule tasks on the set of allocated resources with dedicated methods. In case of big disruptions (e.g., delayed arrival of a vessel), the tactical allocation can be recomputed.

Different terminals serve trucks, trains, barges and vessels differently and measure delays in different ways. Within one terminal, all vehicles of the same transport mode are served with the same service strategy. The strategy chosen for each transport mode depends on cargo volume, operating costs, knowledge and reliability of arrival and due dates and the used handling equipment. To describe the situation at a specific terminal, its service strategies applied for the different transport modes have to be detailed. We introduce the α|β|γ notation to describe possible service strategies for different transport modes. This notation is similar to the notation introduced by Graham et al. (1979) for scheduling problems. The two main reasons for introducing a common notation are: first, to provide a tool for a quick and single description of the functioning of a terminal; second, the possibility to classify strategies and extract similarities among them which helps to analyze the complexity and to develop models and solution methods for similar strategies.

In the sequel, we use the term vehicle to refer to a single vehicle and the term transport mode to refer to all vehicles of the same transport mode. The field α specifies if straddle carriers are allocated to a vehicle (e.g., one vessel) or to a transport mode (e.g., all trucks). The field β specifies characteristics of the service strategy like vehicle arrival and due dates or limits on the maximum throughput per period due to the interaction with other equipment or space restrictions. The field γ represents the objective function we want to minimize. This may be, e.g., the time a vehicle spends at the terminal, the number of non-executed tasks when the vehicle leaves the terminal or the number of shifts (with fixed start and end times) used to work on the vehicle. Table 1 presents values that may be taken by α, β and γ. Some strategies, based on the situation at the Grand Port Maritime de Marseille, will be presented in Sect. 3.2.

Table 1 α|β|γ notation to describe service strategies applied at container terminals

2.2 Complexity

The complexity of the straddle carrier allocation problem depends on the service strategy chosen for each transport mode. We analyze the complexity of single service strategies with the help of scheduling problems with known complexity. Table 2 presents different service strategies, scheduling problems from which service strategies may be reduced and the complexity of these scheduling problems as indicated by Brucker and Knust (n.d.). It shows that most service strategies can be reduced from standard scheduling problems and that most problems are NP-hard.

Table 2 Service strategies with scheduling problems from which they may be reduced and complexity classes

All mentioned scheduling problems are characterized by a set of n jobs that have to be processed on a single machine which is always available. Each job j(1 ≤ j ≤ n) has a processing time p j , a release date r j and a due date d j . The machine can process one job at a time and the processing of each job cannot start before its corresponding release date.

The reductions are straightforward. We limit the number of straddle carriers to one, set the number of vehicles arriving at the terminal to n, the number of containers to handle per vehicle j to p j and the arrival and due dates of the vehicle to r j and d j . For strategies penalizing unexecuted tasks rather than delayed vehicles, we may split each vehicle into p j vehicles: each with arrival date r j , due date d j and one container to be loaded or unloaded. Most delay criteria of service strategies can also be expressed by commonly used optimization criteria for scheduling problems: minimize completion time ∑ j C j , tardiness ∑ j T j (where T j  = max{0, C j  − d j }) or number of late jobs ∑ j U j (where U j  = 0 if C j  ≤ d j , 1 otherwise).

Strategies \(\alpha|r_v| \sum C_v,\;\alpha|r_v,d_v| \sum U_c\) and \(\alpha|r_v,\tilde{d}_v|-\) can be solved in polynomial time since they can be reduced to their corresponding scheduling problems. To represent the handling capacity H t of the terminal per period t with a single machine, we split each time period of the allocation problem into H t time periods in the scheduling problem. We then set n to the number of arriving vehicles, p j to the number of tasks to be executed and compute r j and d j with H t and the arrival and due dates of the vehicle.

To optimize the allocation for one single service strategy, a very small instance (few arriving vehicles) of one of these (most of the time) NP-hard problems has to be solved. But, the straddle carrier allocation problem comprises several transport modes and combines different service strategies. Mathematical programming is a natural framework to address this combined problem.In contrast to ad-hoc algorithms, it can combine different service strategies easily.

3 Mixed integer linear programming model

We formulate the straddle carrier allocation problem as a network flow problem. Arriving, executed and postponed container movements are represented as flows in the network. Arc capacities, representing the capacity of allocated straddle carriers, limit the flow of executed tasks. This modeling approach is inspired by Gambardella et al. (2001), but the objective and the implementation are different. In our case, the solution indicates the optimal allocation of straddle carriers minimizing overall delays of seaside and landside transport modes at the terminal and resulting delays. We use a mixed integer linear programming model to implement and solve the network flow problem. The model can easily be adapted to different service strategies and different combinations of strategies. Since few vessels, trains and barges arrive at the terminal within one working day and trucks can be represented in an aggregated way, real-world instances can be solved in reasonable time (as we see in Sect. 4).

The optimization model is used to plan for the next day. Therefore, information about arrivals and cargo volumes are quite reliable. Arrivals and volumes of trains, barges and vessels are announced. Arrivals of trucks can be obtained from the appointment system or forecasted with the mechanism detailed in “Appendix”. Major disruptions (e.g., the delayed arrival of a vessel) can be handled by recomputing the model during the day. But, the exact times at which containers require transportation and the exact travel times within the yard cannot be known. Therefore, the model uses average handling capacities of straddle carriers and does not include detailed scheduling and routing decisions. Scheduling and routing will be performed in real time by the Terminal Operating System (TOS) with the set of allocated straddle carriers. We use simulation to evaluate the quality of the obtained solution in a stochastic environment with varying arrivals and volumes at an operational level.

Section 3.1 presents two core network flow models describing container flows within the terminal. These core models represent the general relation between arriving tasks, allocated straddle carriers, executed and delayed tasks valid for all container terminals. The vehicle model represents each vehicle by one network. The aggregate model aggregates all vehicles of the same transport mode that arrive at the terminal at the same time period. It represents all vehicles of the same transport mode by one network. The aggregate model can only be used for some service strategies since information about single vehicles gets lost.

These two core models can easily be adapted to different service strategies by adding further variables and constraints. This enables us to formulate independent network flow models for different service strategies. To represent the entire terminal, these independent submodels are combined. Section 3.2 implements different service strategies used at the Grand Port Maritime de Marseille and illustrates how they are combined to represent the entire terminal.

The optimization model may also be used to determine the number of straddle carriers needed for the next day. For that, it has to be executed with different numbers of available straddle carriers. For each number, the model determines an optimal allocation and indicates the resulting delays. The terminal operator may then choose the right number of straddle carriers to achieve the desired service quality.

3.1 Core network flow models

This section presents the vehicle model and the aggregate model to allocate straddle carriers to vehicles and transport modes. First, we present the vehicle model. Each vehicle arriving at the terminal is represented by one network. We use the sets, parameters and variables of Table 3 to describe the expected workload, the terminal capacity and the container flows in the network. Remember that straddle carriers may only be reallocated at discrete points in time.

Table 3 Sets, parameters and variables for the vehicle model

Constraints (1a)–(7a) formulate the core model for the vehicle model. The model determines a straddle carrier allocation to serve each vehicle before its deadline (if such a solution exists). This problem may be described by \(ded|r,\tilde{d}|-.\)

$$W_{i,t}^{m} \leq h^m \cdot X_{i,t}^m \quad \forall m \in {\mathcal{M}}, i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(1a)
$$W_{i,t}^m \geq h^m \cdot (X_{i,t}^m - 1) +1 \quad \forall m \in {\mathcal{M}}, i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(2a)
$$Z_{i,t}^m = \left\{\begin{array}{ll} p_{i}^m - W_{i,t}^m, & t = r^{m_i} \\ Z_{i,t-1}^{m} - W_{i,t}^{m} & \forall t = r_{i+1}^m,\dots,T \end{array} \right.\quad\quad \forall m \in {\mathcal{M}}, i \in {\mathcal{I}}^m$$
(3a)
$$Z^m_{i,d^m_i} = 0\quad \forall m \in {\mathcal{M}}, i \in {\mathcal{I}}^m$$
(4a)
$$\sum_{m=1}^M \sum_{i=1}^{I^m} X^m_{i,t} \leq s_{t}\quad \forall t \in {\mathcal{T}}$$
(5a)
$$X_{i,t}^m \in {\mathbb{N}}^{+}\quad \forall m \in {\mathcal{M}}, i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(6a)
$$W_{i,t}^m, Z_{i,t}^m \in {\mathbb{R}}^{+}\quad \forall m \in {\mathcal{M}}, i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(7a)

Constraint (1a) limits the flow of executed container tasks by the capacity of allocated straddle carriers. Constraint (2a) renders the solution more comprehensible by preventing the allocation of excess straddle carriers. Constraint (3a) formulates the mass balance constraint for arriving, executed and delayed tasks for each vehicle. It also ensures that no container movement requests are executed prior to the arrival of a vehicle. Constraint (4a) imposes that each vehicle is completely served prior to its deadline. Constraint (5a) guarantees that the total number of allocated straddle carriers does not exceed the maximum number of straddle carriers available at the terminal. Constraint (6a) imposes that straddle carriers are allocated to exactly one vehicle per period by preventing partial allocations of straddle carriers to vehicles. Constraint (7a) represents the domain definition of variables. Since variables X m i,t and parameters h m are integers, variables W m i,t and Z m i,t also take integer values. Experiments have shown that runtime decreases if variables W m i,t and Z m i,t are defined as real variables.

The number of variables in the vehicle model depends on the number of time periods and on the number of vehicles. Especially, for transport modes with a lot of vehicles entering the terminal (e.g., trucks) the number of variables explodes. The aggregate model does not represent single vehicles separately. Instead, variables and parameters represent the sum of all vehicles of one transport mode that arrive at the terminal at the same time period. This considerably reduces the problem size, which depends only on the number of time periods and no longer on the number of vehicles. Parameters related to the capacity of the terminal \((s_t,\;h^m)\) remain unchanged. The aggregate model may only be applied if straddle carriers are shared among vehicles of the same transport mode. Furthermore, it has to be possible to easily obtain delays of single vehicles from aggregated delays and to obtain an allocation of straddle carriers to vehicles from the aggregated allocation. Table 4 presents variables and parameters for the aggregate model. We use a calligraphic font to highlight aggregation.

Table 4 New parameters and variables for the aggregate model

Constraints (1b)–(7b) formulate the core model for the aggregate model. The model determines a straddle carrier allocation to serve all vehicles of a transport mode until the end of the working day (if such a solution exists). This problem may be described by \(shar|r,\tilde{d}|-\). The model is very similar to the vehicle model. It is obtained by replacing vehicle specific parameters and variables by transport mode specific ones. Constraint (3b) is adapted to allow for multiple arrivals.

$${\mathcal{W}}_{t}^m \leq h^m \cdot {\mathcal{X}}_{t}^{m} \quad\forall m \in {\mathcal{M}}, t \in {\mathcal{T}}$$
(1b)
$${\mathcal{W}}_{t}^{m} \geq h^m \cdot ({\mathcal{X}}_{t}^{m} - 1) +1\quad \forall m \in {\mathcal{M}}, t \in {\mathcal{T}}$$
(2b)
$${\mathcal{Z}}^m_t = \left\{\begin{array}{ll} p_{t}^{m} - {\mathcal{W}}_{t}^{m}, & t = 1\\ p_{t}^{m} + {\mathcal{Z}}_{t-1}^{m} - {\mathcal{W}}_{t}^{m}& \forall t = 2,\dots,T \end{array}\right. \quad\quad \forall m \in {\mathcal{M}}, i \in {\mathcal{I}}^m$$
(3b)
$${\mathcal{Z}}^m_T = 0\quad \forall m \in {\mathcal{M}}$$
(4b)
$$\sum_{m=1}^M {\mathcal{X}}^m_t \leq s_{t}\quad \forall t \in {\mathcal{T}}$$
(5b)
$${\mathcal{X}}_{t}^m \in {\mathbb{N}}^{+} \quad\forall m \in {\mathcal{M}}, t \in {\mathcal{T}}$$
(6b)
$${\mathcal{W}}_{t}^{m}, {\mathcal{Z}}_{t}^{m} \in {\mathbb{R}}^{+} \quad\forall m \in {\mathcal{M}}, t \in {\mathcal{T}}$$
(7b)

Figures 2 and 3 show the networks for the vehicle model and the aggregate model. The circle nodes stand for the discrete time periods of the working day. Arrows represent arriving (p), executed (W) and delayed (Z) container movement requests. The entire terminal may be represented by combining independent submodels of vehicles and transport modes. These submodels are only linked by the fact that the same straddle carriers are used. Constraints (5a) and (5b) are summed up to limit the total number of allocated straddle carriers (see Sect. 3.2 for illustration).

Fig. 2
figure 2

Vehicle network flow model \((ded|r,\tilde{d}|-)\)

Fig. 3
figure 3

Aggregate network flow model \((shar|r,\tilde{d}|-)\)

Thanks to the modularity of the model, modifications of one submodel have no impact on other submodels. This enables us to implement the chosen service strategy for each transport mode. All service strategies α|β|γ that can be combined from Table 1 may be represented by adding variables and constraints to the core models. However, presenting all formulations is out of the scope of this paper. We rather describe the implementation for a container terminal at the Grand Port Maritime de Marseille as an example.

3.2 Implementation for Grand Port Maritime de Marseille

This case study is carried out for one of the container terminals at the Grand Port Maritime de Marseille in France. The terminal is opened for vessels 21 and 14 h a day for trucks, trains and barges. All storage and transportation operations are executed by straddle carriers. Dockers driving straddle carriers work according to shifts with fixed start and end times and can be hired the day before. Vessels, barges, trains and trucks are served according to the service strategies described below.

Vessels have to be loaded and unloaded within their imposed time windows. We assume that these time windows are given, e.g. already defined by the terminal operator or imposed by the carrier. Vessels are unloaded and loaded at the quay by quay cranes. Straddle carriers are allocated to exactly one vessel and evenly distributed among its quay cranes. The number of containers a quay crane unloads or loads limits the number of containers to be transported. Serving a vessel with several straddle carriers requires coordination among these straddle carriers. Therefore, the terminal does not allocate additional straddle carriers to a vessel once its service has started. But, straddle carriers may be withdrawn from a vessel before the end of its service.

Coordination and preparation is necessary to serve the vessel. Therefore, it is only possible to withdraw straddle carriers from a vessel, but not to add straddle carriers once the service has started. The service strategy of vessels is described by \(ded|r,\tilde{d},non-incr,\max_v|-.\)

Barges are served at the same quay as vessels. The number of containers to be transported is again limited by the quay crane throughput. They should be unloaded and loaded as fast as possible, but at least before the end of the working day. Straddle carriers are allocated to exactly one barge and are not shared among barges. The problem is denoted by \(ded|r, \tilde{d},\max_v|\sum C_v.\)

Trains are served at the rail station. Railcars stay at the terminal and are picked up by an engine according to a fixed schedule every day. Penalty costs have to be paid for every container that is not unloaded or loaded when the train leaves. Containers are loaded and unloaded to and from railcars by reach stackers. Reach stackers are operated by different dockers and do not represent a bottleneck. They are not included in the model. Straddle carriers transport containers between the yard and the buffer in front of the railcars and are shared among trains. The problem is denoted by shar|rd|∑ U c .

Trucks are assigned to parking slots when they enter the gate. They are unloaded and loaded by straddle carriers. Trucks should be served as fast as possible, but at least at the end of the working day. Straddle carriers are shared among trucks given the small volumes per vehicle. This problem is denoted by \(shar|r,\tilde{d}|\sum C_v\).

Independent submodels are implemented for each transport mode to represent the chosen service strategies. For vessels (m = 1), barges (m = 2) and trains (m = 3), the vehicle model is used. Trucks (m = 4) are served with a FIFO (First In First Out) policy at the terminal and straddle carriers are shared among trucks. The straddle carrier allocation to the transport mode may easily be transformed into a straddle carrier allocation to single vehicles by applying the FIFO rule. In this case, minimizing the number of delayed tasks also minimizes the number of delayed trucks. Therefore, the aggregate model may be used for trucks. The parameters and variables in Table 5 have to be added to the ones introduced in Sect. 3.1 to implement the different service strategies.

Table 5 New parameters and variables for the implementation at GPMM

The objective is to minimize the overall delay at the terminal. This means minimizing the number of periods a barge spends at the terminal, the number of non-executed tasks at the departure of a train and the number of delayed truck tasks. Vessels have to be served within their time windows and do not appear in the objective function. Container terminals serve the different transport modes in a hierarchical order. We chose to use weights to represent these priorities, rather than a multiple-criteria analysis.

$$\hbox{min}\quad w^2 \cdot \sum_{i=1}^{I^2} \sum_{t=r^2_i}^{T} Y^2_{i,t} + w^3 \cdot\sum_{i=1}^{I^3} U_{i}^3 + w^4 \cdot \sum_{t=1}^T {\mathcal{Z}}^4_t$$

s.t.

$$W_{i,t}^{m} \leq h^m \cdot X_{i,t}^{m}\quad m = 1,2,3, \forall i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(8)
$${\mathcal{W}}_{t}^m \leq h^m \cdot {\mathcal{X}}_{t}^m\quad m = 4, \forall t \in {\mathcal{T}}$$
(9)
$$W_{i,t}^{m} \geq h^m \cdot (X_{i,t}^{m} - 1) +1 \quad m = 1,2,3, \forall i \in {\mathcal{I}}^{m}, t \in {\mathcal{T}}$$
(10)
$${\mathcal{W}}_{t}^{m} \geq h^m \cdot ({\mathcal{X}}_{t}^{m} - 1) +1 \quad m = 4, \forall t \in {\mathcal{T}}$$
(11)
$$Z^m_{i,t} = \left\{\begin{array}{ll} p^m_i - W_{i,t}^m, & m=1,2,3, \forall i \in {\mathcal{I}}^m, t = r_{i}^{m}\\ Z_{i,t-1}^{m} - W_{i,t}^{m} & m=1,2,3, \forall i \in {\mathcal{I}}^{m}, t = {r_{i}^{m}}+1,\dots,T\end{array} \right.$$
(12)
$${\mathcal{Z}}_{t}^{m} = \left\{\begin{array}{ll} p_{t}^{m} - {\mathcal{W}}_{t}^{m}, & m=4, t = 1 \\ p_{t}^{m} + {\mathcal{Z}}_{t-1}^{m} - {\mathcal{W}}_{t}^{m}& m=4, t = 2,\dots,T\end{array} \right.$$
(13)
$$Z_{i,d_{i}^{m}}^{m} = 0\quad m=1,2,\forall i \in {\mathcal{I}}^{m}$$
(14)
$${\mathcal{Z}}_{T}^{m} = 0 \quad m=4$$
(15)
$$\sum_{m=1}^{2} \sum_{i=1}^{I^m} X_{i,t}^{m} + \sum_{m=3}^4 {\mathcal{X}}_{t}^m \leq s_{t}\quad \forall t \in {\mathcal{T}}$$
(16)
$$Y_{i,t}^{m} \geq \frac{Z_{i,t}^{m}}{p^m_i}\quad m=2, \forall i \in {\mathcal{I}}^m, t = r_{i}^{m},\dots,T$$
(17)
$$Z_{i,d_{i}^{m}}^{m} - U_{i}^{m} = 0,\quad m=3,\forall i \in {\mathcal{I}}^m$$
(18)
$$W_{i,t}^{m} \leq q_{i}^{m}\quad m=1,2, \forall i \in {\mathcal{I}}^{m}, t \in {\mathcal{T}}$$
(19)
$$D_{i,t}^{m} \geq \frac{p_{i}^{m} - Z_{i,t-1}^{m}}{p_{i}^{m}} \quad m=1, \forall i \in {\mathcal{I}}^m, t = {r_{i}^m} + 1, \dots,T$$
(20)
$$X_{i,t}^{m} \leq X_{i,t-1}^{m} - s_{t}\cdot(D_{i,t}^{m}-1)\quad m=1, \forall i \in {\mathcal{I}}^m, t= r_{i}^{m}+1,\dots,T$$
(21)
$$X_{i,t}^{m} \in {\mathbb{N}}^{+} \quad m = 1,2, \forall i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(22)
$$X_{i,t}^{m} \in {\mathbb{R}}^{+} \quad m = 3, \forall i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(23)
$$\sum_{i=1}^{I^m} X_{i,t}^{m} \leq {\mathcal{X}}_{t}^{m} \quad m=3, \forall t \in {\mathcal{T}}$$
(24)
$${\mathcal{X}}_{t}^{m} \in {\mathbb{N}}^{+}\quad m = 3, 4, \forall t \in {\mathcal{T}}$$
(25)
$$W_{i,t}^{m}, Z_{i,t}^{m} \in {\mathbb{R}}^{+} \quad m=1,2,3, \forall i \in {\mathcal{I}}^m, t \in {\mathcal{T}}$$
(26)
$${\mathcal{W}}_{t}^{m} , {\mathcal{Z}}_{t}^{m} \in \mathbb{R}^{ + } \quad m = 4,\forall t \in {\mathcal{T}}$$
(27)
$$D_{i,t}^{m} \in \left\{0;1\right\}\quad m=1, \forall i \in {\mathcal{I}}^m, t = {r_{i}^{m}}+1,\dots,T$$
(28)
$$Y_{i,t}^{m} \in \left\{0;1\right\} \quad m=2, \forall i \in {\mathcal{I}}^m, t = {r_{i}^{m}}+1,\dots,T$$
(29)
$$U_{i}^{m} \in {\mathbb{R}}^{+}\quad m=3, \forall i \in {\mathcal{I}}^{m}$$
(30)

Constraints (8)–(16) are equivalent to the constraints of the two core models of Sect. 3.1. Constraint (16) links the independent submodels by limiting the total number of allocated straddle carriers. Constraint (17), together with the objective function, checks if a barge is completely served at the end of a period. Constraint (18) determines the number on non-executed train tasks at the departure of the train. Constraint (19) makes sure that the transported containers do not exceed quay crane handling capacities. Constraint (20) checks if the service of the vessel has been started in period t − 1. Constraint (21) allows any straddle carrier allocation if the service of a vessel has not started yet. Once the service has started, it imposes a non-increasing number of allocated straddle carriers. Constraint (22) prevents sharing straddle carriers by imposing that straddle carriers are entirely allocated to one vessel or one barge. Constraint (23) allows partial allocation of straddle carriers for trains and enables sharing straddle carriers among trains. The total number of straddle carriers allocated to trains is defined by Constraint (24). Constraint (25) limits straddle carrier sharing to vehicles of the same transport mode for trains and trucks. Constraints (26)–(30) define variable domains. Variables Y m i,t and D m i,t take only the values 0 or 1. For given values for these variables and integer h m, the problem is a network flow model and variables \(W^m_{i,t},\;X^m_{i,t},\;W^m_t,\;Z^m_t\) and U m i take integer values.

4 Computational results

To evaluate the benefit of an optimized allocation, we compare the delays resulting from the allocation of the optimization model and of a greedy heuristic representing a hierarchic allocation strategy. Experiments are run with IBM ILOG CPLEX 12.1 on actual data from the container terminal at the Grand Port Maritime de Marseille. We obtained historical data on the arrivals and departures of trucks, trains, barges and vessels and the handled volumes. Out of this data, 10 days were chosen to conduct experiments. For each day, 1 or 2 vessels, 0 or 1 barge, 0 or 1 train and 279–769 truck containers have to be served. Details on the volumes for each day are presented in Table 6.

Table 6 Containers to be handled per transport mode for 10 working days

The terminal receives landside transport modes 14 h a day and divides this period in 1-h intervals. This implies that straddle carriers are reallocated at most every hour. For trains, barges and vessels, the loading operation only starts after the unloading operation is completed. Straddle carriers can, on average, handle 7 containers per hour for trains, barges and vessels; h 1 = h 2 = h 3 = 7. Unloading and loading operations of different trucks are executed in parallel. This reduces empty travels between the yard and the truck area. The average handling capacity for trucks is 10 containers per hour; h 4 = 10. Three sets of instances are defined by assuming a constant number of 10, 12 or 14 available straddle carriers over the day, respectively.

The heuristic allocates available straddle carriers first to vessels, then to barges, then to trains and finally to trucks. Each vehicle is served as soon as possible and with as many straddle carriers as possible (depending on arrival time, maximum throughput and available straddle carriers). The optimization model represents these priorities via the weights in the objective function. We set w 2 to 50 (barge), w 3 to 10 (train) and w 4 to 1 (truck). We chose these values to represent the hierarchical order among trucks, trains and barges at the given container terminal. With the given handling capacity, we prefer to delay trucks rather than leaving train tasks unexecuted and have a trade off between delaying a barge and leaving train tasks unexecuted or delaying trucks.

Table 7 compares the delays from the optimized and the heuristic allocation. It reports the number of infeasible instances and the average delay of trucks (number of periods spent at the terminal), trains (number of unexecuted tasks at the departure of the train) and barges (number of periods spent at the terminal). Vessels do not appear as they have to be served within their time windows. Results show that an optimized allocation reduces delays of trucks considerably and increases delays of trains and barges only marginally. While the heuristic serves all vehicles as soon as possible, the optimization model may delay some vehicles to reduce overall delays at the terminal.

Table 7 Comparison of delays resulting from the allocations determined by the optimization model and the simple allocation rule

Lets have a closer look at the allocation obtained by the optimization model and the resulting delays. Table 8 presents the delays of trucks, trains and barges for all 10 instances with 10, 12 and 14 available straddle carriers. The CPU time needed to solve each instance is given in seconds. All feasible instances are solved very quickly in less than half a second and infeasibility (labeled with “inf.”)is also discovered immediately. Infeasibility indicates that more drivers are needed since the number of available straddle carriers is not sufficient to serve all tasks within their time windows.

Table 8 Delays at the terminal for different numbers of available straddle carriers

As expected, the number of delays increases when fewer straddle carriers are available and some instances become infeasible. Trucks have very small delay costs and are the first ones to be delayed. This explains why so many trucks are delayed while almost no delays for trains and barges occur. Due to the limited quay crane capacity, barges have always to spend a minimum time at the terminal. This minimum service time depends on the cargo volume and the quay crane throughput. Train tasks are the only tasks that do not have to be executed at the end of the day. For the given costs, train tasks are mainly delayed if the problem becomes infeasible otherwise.

To see how the straddle carrier allocation changes if the number of available straddle carriers is reduced, let us take a closer look at the results of Day 9. Figure 4 displays how many straddle carriers should be allocated to trucks, to the barge, to the train and to the vessel at each period for 14, 12 and 10 available straddle carriers. The resulting delays are also displayed. These delays enable the terminal operator to chose the minimal number of straddle carriers needed to offer the desired service level.

Fig. 4
figure 4

Straddle carrier allocation for Day 9 for different numbers of available straddle carriers

For 14 straddle carriers, almost no delays occur. Only 1 truck task cannot be served within the period in which it arrives. The barge spends 3 periods at the terminal. This is equivalent to its minimum service time. No delays occur for the train since all containers are unloaded and loaded. The vessel is served within its time window. If the number of available straddle carriers is reduced to 12, more delays occur. From Periods 7–11, less straddle carriers are allocated to trucks and more in Period 12 to serve the delayed trucks of previous periods. The barge has to spend one more period in the terminal. The service of the train is split over two periods. More straddle carriers are allocated to the vessel in Periods 10 to 12 to free some straddle carriers for the other transport modes during Periods 4, 5 and 9. For 10 straddle carriers, delays occur for all landside transport modes. A high percentage of trucks are served in Periods 13 and 14 after the vessel left the terminal. The barge spends 5 periods in the terminal. The train is served only at Period 10 and not completely. The service of the vessel is smoothed out over the working day to minimize impacts on other transport modes.

We carried out a sensitivity analysis to evaluate the impact of different parameters on the solution time. Each scenario consists of 15 instances where a given number of vessels, trains, barges and trucks have to be served. For the different scenarios, we varied the number of arriving vehicles, the length of the time horizon, the number of straddle carriers, the number of time periods, the maximum throughput for barges and vessels and delay costs. For all scenarios, 300 containers have to be (un)loaded per vessel, 65 per barge, 30 per train and 1 per truck. Straddle carrier handling capacities are the same as above. Trains, barges and vessels all have a time window of 7 time periods. Table 9 presents different scenarios and average and maximum CPU times and the average number of explored nodes for each scenario. Experiments were run with a time limit of 60 min per instance.

Table 9 Different scenarios with their CPU times and explored nodes

For costs of 50, 10 and 1, delaying a barge is much more expensive than delaying trains or trucks. In this case, serving barges as fast as possible is very likely to be optimal and few nodes have to be explored. Results show that for these costs even bigger instances with more vehicles or time periods can be solved quickly. The number of straddle carriers also influences the solution time. The problem is solved quickly if few straddle carriers are available since few allocations are feasible or if many straddle carriers are available since few or no delays occur. The problem gets more difficult to solve if many different allocations with delays exist. Removing the maximum throughput for barges and vessels increases the run time, since the maximum throughput limits the number of feasible solutions. Setting all delay costs to 1 increases the run time considerably. It is no longer beneficial to serve barges as soon as possible and more nodes have to be explored.

5 Validation of the proposed allocation in a stochastic environment via simulation

Container terminals are highly dynamic work environments. Different vehicles interact and exact arrival and due dates as well as volumes to be transported are not known with certainty in advance. These aspects can hardly be included in deterministic optimization models. That is why simulation is widely used to tackle complexity and uncertainty at container terminals [see Angeloudis and Bell (2011) for an overview of container terminal simulation].

This section presents a discrete event simulation model of the container terminal at the Grand Port Maritime de Marseille. We use this simulation model to test the validity of the tactical allocation obtained with the deterministic optimization model in a stochastic environment at an operational level. The simulation model introduces uncertainty on arrival times and volumes of trucks, trains, barges and vessels. It also represents decisions at an operational level (which straddle carrier out of the allocated set to assign to which container) and interaction among straddle carriers and quay cranes. We compare delays obtained by the optimization model with delays obtained by the simulation model to verify that estimates on delays obtained by the optimization model indicate operational delays satisfactorily. This analysis is carried out for different levels of variability for straddle carrier handling and travel times.

5.1 Discrete event simulation model

We chose discrete event simulation to represent arrivals of vehicles and operations within the container terminal. The simulation model is implemented in Arena 11. The model’s input parameters are identical to the optimization model (number of vehicles, arrival and departure times, volumes to be handled). The difference is that these values are no longer deterministic, but subject to variations. For straddle carriers, stochastic travel and handling times are assumed. The yard is divided into two areas, one for import containers and one for export containers.

The arrival of trucks varies over the working day due to peak and low periods. We use a non stationary Poisson process to model the time dependent arrivals. Information on average truck arrivals per period are obtained from historical data. When a truck arrives at the terminal gate, it may only enter the terminal if a parking space in the loading/unloading area is free. If this is not the case, the truck has to wait for a free parking slot. When arriving at the exchange area, it requests a straddle carrier to unload the export container and transport it to the yard. A given percentage of trucks also load an import container. In this case, a request is send to pick up the container in the yard and load it on the truck. The transport of the import and the export container may be done by different straddle carriers. As soon as the truck is loaded, it leaves the terminal. The numbers of trucks that enter and leave the terminal, as well as the service time of each truck, are recorded.

The arrival of trains is modeled as a uniform distribution around the historical arrival. The numbers of containers to be loaded and unloaded are modeled as a triangular distribution around the historical data. After the arrival of the train, the unloading operation begins and containers to be transported wait for straddle carriers. Straddle carriers allocated to trains transport the containers to the export area of the yard. When the unloading process is completed, the loading operation begins. The allocated straddle carriers pick up import containers at the yard and transport them to the rail station. The train leaves the terminal at the scheduled time even if the loading/unloading operations are not completed. The numbers of not unloaded and/or loaded containers are recorded for further analysis.

Vessels and barges are modeled in the same way. Their arrivals and volumes are also modeled as uniform and triangular distributions around the historical data. The berth and quay crane assignments are out of the scope of this study. We assume that berth and quay cranes are free and operational at the planned arrival. Quay cranes unload containers in a buffer on the quay. If this buffer is full, quay crane activities stop. Allocated straddle carriers transport the containers to the import zone (vessel) or export zone (barge) of the yard. If the unloading operation is completed, the loading operation may start. Straddle carriers transport containers from the export zone (vessel) or import zone (barge) of the yard to the buffer on the quay. Quay cranes load the containers from the buffer on the ship. If the buffer is empty, quay crane activities stop. The activity of quay cranes is modeled via a uniform distribution representing the time it takes to move a container between the vessel or barge and the buffer. We record the number of loaded and unloaded containers for each vessel and each barge. For barges, we also record the time they spent in the terminal.

A predefined number of straddle carriers is allocated to trucks, trains, each barge and each vessel. We use the allocation obtained from the optimization model or the heuristic as an entry to the simulation model. All straddle carriers are assumed to be identical. They can transport one container at a time. If a container has to be transported, it sends a transportation request. If a straddle carrier allocated to this vehicle or transport mode is idle, it serves the request. This means that the straddle carrier travels to the container’s current position, picks it up, travels to its destination and puts it down. If no straddle carrier allocated to this vehicle is idle, the container waits for a straddle carrier to become idle. Our main objective is to evaluate the provided straddle carrier allocation plan. Storage policies in the yard and straddle carrier routing in the yard are not modeled in detail. Times straddle carriers need for traveling or handling operations are uniformly distributed around their average values. Average values are chosen to correspond to the average handling capacity of the optimization model.

5.2 Validation of the simulation model

Because it was not possible to get historical data on the allocation of straddle carriers, we were not able to validate the simulation model against real data. Therefore, we chose to validate a non-stochastic version of our simulation model against the results of the optimization model. We set all input parameters of the simulation model (arrival times and volumes of vehicles, travel and handling times of straddle carriers) to deterministic values. The straddle carrier allocation in the simulation model is done as indicated by the plan obtained from the optimization model. The run length of the terminating simulation is set to 840 min, equivalent to the 14-h interval considered in the optimization model. In this case, the results of the optimization model and the simulation model should be very similar since the only difference is that quay cranes are included in the simulation model.

Table 10 compares the results of the optimization and the simulation models for 10 days for 10, 12 and 14 available straddle carriers. The results of the optimization model, already presented in Table 8, are marked with OPT. For trucks, the optimization model measures the number of delayed truck tasks, whereas the simulation model records the average service time per truck. We divide the number of delayed truck tasks indicated by the optimization model by the the average load of 1.9 containers per truck to obtain the number of delayed trucks. Table 10 reports the number of delayed trucks for the optimization model. These delays are compared with the delays obtained via simulation.

Table 10 Comparison of delays obtained with optimization and with deterministic simulation

Remember that Days 8 and 10 are infeasible for 10 and 12 straddle carriers. They are marked by “inf.”. In some cases, 10 or 12 straddle carriers are sufficient to serve all vehicles without delays. In this case, the optimization model obtains the same straddle carrier allocation for different number of available straddle carriers. These cases are marked by “idem” and not considered in the analysis below. In some cases, the straddle carrier allocation for some but not all transport modes may be identical or the same number of straddle carriers may be allocated, but with a different repartition over periods. This explains the similarities between runs with different numbers of available straddle carriers.

Note that the results for both models are quite close for all transport modes. Average service times of trucks with their standard deviation are shown in rows 2, 3, 11, 12, 20 and 21. A high number of delayed trucks in the optimization model finds its equivalent in high service times in the simulation model. Figure 5 illustrates the correlation between the number of truck delays in the optimization model and average truck service times in the simulation model. The correlation coefficient of these parameters is 0.94 with a p value of 3.7E−9. This proves that both indicators are significantly correlated. However, impacts are less dramatic than predicted in the optimization model. Some additional analysis to closer relate the average handling capacity for trucks with the average service time in the simulation model may be beneficial. The numbers of not loaded/unloaded train containers (rows 5, 14, 23) are similar to the values suggested by the optimization model. All barge containers, except 1 for Day 7, can be transported with the allocated straddle carriers. Again, the service time of barges is similar to the times predicted by the optimization model (rows 7, 16, 25). Planning the delay of vessels is not allowed in the optimization model. Rows 8, 9, 17, 18, 26 and 27 show that the allocated straddle carriers are sufficient to serve vessels within their time windows with one exception for Day 8.

Fig. 5
figure 5

Correlation between delays with optimization model and avg. service time in simulation

We may conclude that the simulation model represents the same situation as the optimization model since both get similar results for the same input. The simulation model may thus be used to analyze the solution quality of the straddle carrier allocation obtained from the optimization model in a stochastic environment at an operational level.

5.3 Performance of the optimization model in a stochastic environment

We consider the case where the arrivals of vehicles, their volumes and the travel and handling times of straddle carriers are no longer assumed to be deterministic. We run the simulation model with the straddle carrier allocation obtained from the optimization model in a stochastic setting for all days for 10, 12 and 14 straddle carriers. The instances are designed by introducing variations to the historic data from the terminal. The arrival of trucks is represented via a non stationary Poisson process with the hourly average equal to historical arrivals. The arrivals of trains, barges and vessels are uniformly distributed in a 30-min interval around the historical arrival. Their volumes are chosen with a triangular distribution around the historical volume plus or minus ten percent. Handling and travel times of straddle carriers are uniformly distributed around their averages. Experiments are carried out for three different levels of variation for handling and travel times of straddle carriers:

  • Scenario A: Variation of handling and travel times of 10 %,

  • Scenario B: Variation of handling and travel times of 30 %,

  • Scenario C: Variation of handling and travel times of 50 %.

Simulation was run for the 26 instances presented in Table 10 with the given workload and straddle carrier allocation. Duplicates and infeasible instances were not simulated and are not included in the analysis below. 1000 replications are executed for each instance. The chosen performance measures are the average service time of trucks. It may happen that barges and vessels are no longer fully unloaded and/or loaded. Therefore, we measure the number of tasks that are not executed with the allocated straddle carriers for trains, barges and vessels.

Since straddle carriers are not shared among different transport modes, some of the allocated capacity may remain unused. Table 11 displays the number of container movements to be executed and the unused capacity in the optimization model. The values are average values over all 26 instances. The first column presents the number of container movements to be executed for each transport mode. The second column indicates the number of additional movements that allocated straddle carriers could execute if tasks did exist. The percentage of unused capacity against the workload (reserve capacity divided by average demand) is also shown. Remember that the variation of volumes is limited to historical volume plus or minus 10 . For trains, around 13 % of the allocated capacity is unused and around 10 % for trucks and barges. This allows to counterbalance variations in volume. For vessels, only around 6 % of the allocated capacity is unused. It is not possible to fully serve vessels if the volume is increased by more than 6 %. The unused capacity explains most of the observations below.

Table 11 Workload and unused capacity per transport mode

Table 12 shows averages and standard deviations of delays for trucks, trains and barges over all experiments. Results are indicated for the deterministic simulation, simulation with variabilities of 10, 30 and 50 % for the allocation determined by the MIP and simulation with variabilities of 10 % for the allocation determined by the heuristic.

Table 12 Simulation results for different levels of variations

We first analyze the performance of the optimized allocation for different variabilities. The standard deviation for the deterministic case is only given for average truck service time. For trains, barges and vessels, the standard deviation cannot be calculated since we run each scenario only once and only one vehicle arrives at the terminal. A larger variation of travel and handling times of straddle carriers decreases the performance of the terminal. Standard deviations increase for all transport modes if the variability of straddle carriers increases. The average service time of trucks increases by 27.9 % for a variation of 10, by 35.5 % for a variation of 30 and by 57.2 % for a variation of 50 %. For vessels, the service is highly deteriorated. The number of not served containers increases from almost 0 for the case without variations to over 13 for a variation of 50 %. For trains, impacts are less drastic. For 10 and 30 % variation, the number of not executed tasks remains almost unchanged, but for 50 % variation delays are doubled. The reason is the allocated but unused capacity discussed above, which allows offsetting some variations. For barges, the stochastic cases with variations of 10 and 30 % perform better than the deterministic case. The reason is that, in the deterministic case, one barge container cannot be loaded at Day 7. In the stochastic case, this container can be served most of the times. This gain offsets the small increase in delays of barges at other days.

Student’s t-test was used to check if differences between the deterministic simulation and the simulations with 10, 30 and 50 % are statistically significant. Results confirm the observations above. For trains and barges, differences are not significant for all levels of variation. For trucks, differences are only significant for a variation of 50 %. For vessels, differences are significant for all three scenarios. This illustrates the benefits of unused allocated capacities to counterbalance stochastic impacts. Results suggest adapting the optimization model to allocate more spare capacity to vessels. This can, for example, be done by adapting the parameter representing the number of containers a straddle carrier can handle per period.

We also compare the optimized allocation to the allocation obtained by the heuristic. For the heuristic allocation, the service time of trucks is more than doubled. Less train tasks remain unexecuted which is coherent with the analysis of the deterministic results. Surprisingly, more barge tasks remain unexecuted. With the heuristic allocation, the service of a barge often starts during the arrival period, whereas for the optimized allocation it can start later. If the arrival of the barge is a little delayed this reduces the time to serve the barge within its arrival period. The number of unexecuted tasks for vessels is slightly reduced. Student’s t-test shows that the differences are statistically significant for trucks and barges, and not statistically significant for trains and vessels.

We may conclude that the optimization model represents the stochastic situation at a container terminal for trucks, trains and barges for variations of 10 and 30 % adequately. For a variation of 50 %, results are still satisfactory with regard to delays even if average service times increase considerably. However, for vessels, the allocation of spare straddle carriers should be included to obtain more robust solutions. In addition, the optimized allocation outperforms the heuristic allocation as it serves trucks twice as fast without harming the service of trains, barges and vessels.

6 Conclusion

This paper provides terminal operators with a tool to allocate straddle carriers to different vehicles based on the expected workload in order to minimize overall delays at terminal—with special focus on inland transport modes. It answers two questions: (1) How many straddle are needed for the next day? (2) How to share these straddle carriers among different vehicles?

We introduced an α|β|γ notation to describe possible service strategies and delay criteria applied at container terminals and discuss their complexity. A mixed integer linear program, based on a network flow representation of the terminal, models the straddle carrier allocation problem. We presented two generic core models and showed, via a terminal at the Grand Port Maritime de Marseille, that these models can be easily adapted to different service strategies. We conducted a case study for the same terminal on actual instances. Results show that the optimized allocation reduces delays at the terminal and that it outperforms the allocation obtained with a greedy heuristic. Results of discrete event simulation show that the straddle carrier allocation proposed by the optimization model at a tactical level performs well in an uncertain environment at an operational level. It also predicts delays appropriately.

Our optimization model assumes a linear relation between the number of allocated straddle carriers and the number of tasks that may be executed. In reality, several parameters influence the number of tasks executed per straddle carrier per period: the arrival pattern of trucks within the period, the storage location of the container, the straddle carrier allocation, the possibility to combine the transport of an import container with an export container or congestion within the yard. Our work may be continued by combining the deterministic optimization model with simulation or queuing models to include a nonlinear relation between the number of allocated resources and the number of executed tasks.

We chose to implement a deterministic optimization model for a tactical allocation problem and validate its quality at an operational level in a stochastic environment via simulation. Truck arrivals, handling and travel times of straddle carriers are most subject to uncertainty. It would be interesting to analyze if including this uncertainty (e.g. via a stochastic optimization model) into the tactical allocation would enhance the proposed allocation.

The simulation model could be exploited further to compare different scenarios at different decisions levels and the impacts on delays at the terminal. At a strategic level, changes in the volume of containers or their transport means could be studied.