Skip to main content

When road trains supply freight trains: scheduling the container loading process by gantry crane between multi-trailer trucks and freight trains


An efficient integration of rail transport into the hinterland traffic is an important topic for ports all around the world. In this context, we treat a scheduling problem where multi-trailer trucks (denoted as road trains) deliver containers to some gantry crane, which successively loads the boxes onto freight trains. A road train carries up to a dozen containers, so that a lot of energy is consumed especially when setting a road train in motion. Thus, there is a basic trade-off between the effort of road train and gantry crane. The more often a road train is relocated, the higher its own demand for energy, but the lower that for moving the crane when processing containers rather from nearby holding positions and vice versa. This paper formalizes the novel problem setting and suggests a heuristic decomposition approach, which determines the stop locations of the road train and schedules the gantry crane during the loading process.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8


  • Boysen N, Fliedner M (2010) Determining crane areas in intermodal transshipment yards: the yard partition problem. Eur J Oper Res 204:336–342

    Article  Google Scholar 

  • Boysen N, Stephan K (2016) A survey on single crane scheduling in automated storage/retrieval systems. Eur J Oper Res (to appear)

  • Boysen N, Fliedner M, Jaehn F, Pesch E (2013) A survey on container processing in railway yards. Transp Sci 47:312–329

    Article  Google Scholar 

  • Boysen N, Briskorn D, Meisel F (2014) A generalized classification scheme for crane scheduling with interference. In: Working paper Friedrich-Schiller-University Jena

  • Chisman JA (1975) The clustered traveling salesman problem. Comput Oper Res 2:115–119

    Article  Google Scholar 

  • Cordeau J-F, Legato P, Mazza RM, Trunfio R (2015) Simulation-based optimization for housekeeping in a container transshipment terminal. Comput Oper Res 53:81–95

    Article  Google Scholar 

  • Duinkerken MB, Dekker R, Kurstjens ST, Ottjes JA, Dellaert NP (2006) Comparing transportation systems for inter-terminal transport at the Maasvlakte container terminals. OR Spectr 28:469–493

    Article  Google Scholar 

  • Ferreira L, Sigut J (1993) Measuring the performance of intermodal freight terminals. Transp Plan Technol 17:268–279

    Article  Google Scholar 

  • Garey MR, Johnson DS (1979) Computers and intractability. Freeman, New York

    Google Scholar 

  • Gilmore PC, Gomory RE (1964) Sequencing a one state-variable machine: a solvable case of the traveling salesman problem. Oper Res 12:655–679

    Article  Google Scholar 

  • Goetschalckx M, Ratliff HD (1988) An efficient algorithm to cluster order picking items in a wide aisle. Eng Costs Prod Econ 13:263–271

    Article  Google Scholar 

  • HK (2013) Hafen Hamburg auf einen Blick (in German). Handelskammer Hamburg, Hamburg

  • Kellner M, Boysen N, Fliedner M (2012) How to park freight trains on rail–rail transshipment yards: the train location problem. OR Spectr 34:535–561

    Article  Google Scholar 

  • Kozan E (1997) Increasing the operational efficiency of container terminals in Australia. J Oper Res Soc 48:151–161

    Article  Google Scholar 

  • Miller C, Tucker A, Zemlin R (1960) Integer programming formulations and travelling salesman problems. J ACM 7:326–329

    Article  Google Scholar 

  • Nishimura E, Imai A, Papadimitriou S (2005) Yard trailer routing at a maritime container terminal. Transp Res Part E Logist Transp Rev 41:53–76

    Article  Google Scholar 

  • Otto B, Boysen N (2014) A dynamic programming based heuristic for locating stops in public transportation networks. Comput Ind Eng 78:163–174

    Article  Google Scholar 

  • Potvin JY, Guertin F (1998) A genetic algorithm for the clustered traveling salesman problem with a prespecified order on the clusters. Advances in computational and stochastic optimization, logic programming, and heuristic search. Springer, New York, pp 287–299

    Chapter  Google Scholar 

  • Rotter H (2004) New operating concepts for intermodal transport: the mega hub in Hanover/Lehrte in Germany. Transp Plan Technol 27:347–365

    Article  Google Scholar 

  • Schaefer T (1978) The complexity of satisfiability problem. In: Proceedings of the 10th ACM symposium on theory of computing (STOC’78), pp 216–226

  • Steenken D, Voß S, Stahlbock R (2004) Container terminal operation and operations research—a classification and literature review. OR Spectr 26:3–49

    Article  Google Scholar 

  • Tierney K, Voß S, Stahlbock R (2013) A mathematical model of inter-terminal transportation. Eur J Oper Res 235:448–460

    Article  Google Scholar 

  • Vis IF, De Koster R (2003) Transshipment of containers at a container terminal: an overview. Eur J Oper Res 147:1–16

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Nils Boysen.

Appendix: computational complexity

Appendix: computational complexity

In the appendix, we provide an in-depth analysis of the computational complexity of the TLP and its subproblems. The main findings are summarized in Table 1 (see Sect. 3).

Theorem 1

Problem TLP is strongly NP-hard for the maximum, Manhattan and horizontal distance metric.


NP-hardness of TLP directly follows from the subproblems being NP-hard, too (see Corollary 7 in connection with Lemma 2, Corollary 3, and Lemma 4). \(\square \)

The proofs of Lemmas 2 and 4 are by transformation from the One-In-Three 3Sat Problem (1-in-3-Sat), which is well known to be NP-hard in the strong sense (Schaefer 1978; Garey and Johnson 1979).

1-in-3-Sat: Given a set V of variables and a collection C of clauses over V, such that each clause \(c \in C\) has \(|c|=3\). Is there a truth assignment for V, such that each clause \(|c| \in C\) has exactly one true literal?

Note that 1-in-3-Sat remains NP-hard in the strong sense, if no \(c \in C\) contains a negated literal (Garey and Johnson 1979), which we presuppose for our 1-in-3-Sat instances.

Lemma 2

When applying the maximum metric, TLP with given parking positions, i.e., decision tasks (b) and (c) are to be determined, is strongly NP-hard even if the number of railway tracks is \(T=1\) and the number of parking positions is limited to \(m=3\).

Sketch of proof: The proof is by transformation from the 1-in-3-Sat. For an arbitrary 1-in-3-Sat instance, i.e., a set V of variables and a collection C of clauses (without negated literals), we introduce a single freight train, the road train, and \(n = 49 \cdot |C| + 18 \cdot |V| + 29\) containers to be transshipped among them. We arrange the containers in \(|V|+|C|+3\) blocks. For each variable \(v_i \in V, i=1, \ldots ,|V|\) of 1-in-3-Sat we introduce a block \(v_i\) and for each clause \(c_j \in C, j=1, \ldots ,|C|\), we insert a block \(c_j\). Furthermore, we introduce three additional blocks A, B, and D and arrange all of them in the following sequence: \(A, v_1, v_2, \ldots , v_{|V|}, B, c_1, c_2, \ldots , c_{|C|},D\). The succession of these blocks along the track and their lengths are depicted in Fig. 9.

Fig. 9
figure 9

Succession of blocks in the transformation scheme from 1-in-3-Sat to TLP

m is three, so that the road train moves forward for exactly two times during the loading process. All following figures apply the following notation and conventions:

  • The upper line represents the freight train, whereas the lower line symbolizes the road train.

  • Beginning with 1 on the left side of block A the slots are numbered in increasing order from left to right.

  • In all figures the road train is located at its first parking position (\(p_1=n+1\)). The second parking position is two slots right from the first one (\(p_2=n+3\)), whereas the third one is beyond the scope of Fig. 9 (\(p_3=3 \cdot n\)).

  • Container positions are illustrated as bullets. Shaded bullets symbolize container positions linked to container moves having a target slot not larger than n. Only for these positions the respective container moves are illustrated (as arcs). Note that the arc lengths change when moving the road train forward.

  • When considering the first parking position, the first n slots can be organized in blocks. Shaded bullets with black border indicate container moves having their start and end points in different blocks (and its end point in the first n slots). An incoming or outgoing arc and its associated label indicate a container move to or from a block not adjacent to the current one.

  • Empty bullets on the road train represent start positions of container moves with end positions in slots larger than \(2 \cdot n\). All these moves are introduced in such a manner that their respective start and end positions are in the same slot, if the road train is parking at \(p_3\) (which means that their horizontal distance are all equal to \(2 \cdot n -1\) when the road train is parking at \(p_1\)). We skip the corresponding arcs, since the target locations outreach Fig. 9.

  • Finally, empty bullets on the freight train (line) represent positions not belonging to any container move.

For our further explanations, we only focus on the first and second parking positions. The third position is only for the sake of completeness since TLP presupposes an entirely loaded road train. All remaining container moves (empty bullets on the lower line) are executed from the third parking position. The distance between stops 1 and 2 on the one hand and stop 3 on the other is far enough to easily separate containers that have to be moved while the road train is parking at the positions \(p_1\) or \(p_2\) or at the position \(p_3\), respectively. Since this separation is truly straightforward we skip this part. Instead, we ask whether we can find a solution for (the first two stops of) TLP with an objective value not exceeding Z, where

$$\begin{aligned} Z = LB+9+6 \cdot |V|+7 \cdot |C|. \end{aligned}$$

LB is the simple lower bound based on the assumption that each container move is as short as possible, i.e., it is processed from its nearest stop, and each empty crane movement between two container moves is of length 1.

In the following, we elaborate the necessary conditions for shortest crane schedules within the scope of Fig. 9. At the beginning, the crane is waiting above the road train at the leftmost container position (see left side of Fig. 10). Considering block B (middle of Fig. 10), we can see that the road train has to change its parking position while the crane executes the container moves within block B. Otherwise, the objective value would exceed Z. This changeover should happen right after picking up the next container after processing the sequence of all vertical container moves of this block. After this changeover from \(p_1\) to \(p_2\) (two slots to the right), the crane now continues with vertical (and therefore shorter) container moves and returns back to block A.

Fig. 10
figure 10

Blocks A (left), B (middle), and D (right) with the two gray arcs on the left side of block B belonging to block \(v_{|V|}\)

Hence, the crane traverses blocks \(v_1, v_2, \ldots , v_{|V|}\) from left to right twice. After reaching block B for the second time the crane moves forward to block D and executes the last container move. Considering a block \(v_i, i \in \left\{ 1,\ldots ,|V| \right\} \) (see Fig. 11), we can conclude that there are only two reasonable paths from left to right: one starting with an empty move from one of the two shaded bullets on the left side of block \(v_i\), executing the sequence of bold faced arcs from left to right and ending at the second container location of the successive block and another one starting with an empty move from the other one of the two shaded bullets on the left side of block \(v_i\), using the thin arc and ending at the first container location of the successive block. Please note that it is not important to explicitly account for the starting locations of both paths since the sum of the length of the empty crane moves at the beginning of both paths always equals 6 (4 as depicted in Fig. 11 plus 2 as the road train moves forward for the second transit). Thus, the crane’s ending position in the previous block has no influence on the path the crane takes in block \(v_i\). Also note that each dashed bold faced arc symbolizes a loop of the crane consisting of a container move from the starting point of the dashed arc to block \(c_j\) for a \(j \in \left\{ 1,\ldots ,|C| \right\} \), a short empty crane move within \(c_j\), and the corresponding backward container move from \(c_j\) to the target point (see Fig. 12). Specifically, for every variable \(v_i, i \in \left\{ 1,\ldots ,|V| \right\} \), and every clause \(c_j, j \in \left\{ 1,\ldots ,|C| \right\} \) of the 1-in-3-Sat instance we introduce such a pair of container moves if and only if \(v_i\) is a literal of \(c_j\). Thus, among \(v_1,\ldots ,v_{|V|}\) there are exactly \(3 \cdot |C|\) such pairs. Therefore, the sequence of blocks \(v_i, i \in \left\{ 1,\ldots ,|V| \right\} \) among themselves as well as the sequence of blocks \(c_j, j \in \left\{ 1,\ldots ,|C| \right\} \) is arbitrarily given. Since the corresponding shortest lengths of container moves are considered in lower bound LB both sequences are dispensable for further consideration. With \(x_i\) we denote the number of dashed arcs in block \(v_i, i \in \left\{ 1,\ldots ,|V| \right\} \).

Fig. 11
figure 11

Blocks \(v_i, i \in \left\{ 1,\ldots ,|V| \right\} \), with the two gray arcs on the left side belonging to the previous block

Fig. 12
figure 12

Blocks \(c_j, j \in \left\{ 1,\ldots ,|C| \right\} \)

Since the arc lengths within blocks \(v_1, \ldots , v_{|V|}\) are by two containers shorter when the road train is parking at its second position (please note that the length of a dashed arc equals the sum of the lengths of two container moves and the empty crane move between them) it is recommended to schedule as many of these \(2 \cdot |V|+3 \cdot |C|\) arcs (which symbolize \(2 \cdot |V|\) direct container moves and \(3 \cdot |C|\) loops each consisting of two container moves and an empty crane move) as possible during the second transit of the crane. On the other hand, the majority of right to left arcs within blocks \(c_j, j \in \left\{ 1,\ldots ,|C| \right\} \) (see Fig. 12) forces us to reach as many of these blocks from the first parking position. Altogether, in order to obtain an objective value of at most Z the following must hold:

  • We have to reach every block \(c_j, j \in \left\{ 1,\ldots ,|C| \right\} \) from parking position \(p_1\) exactly once. Note that after this first arrival at \(c_j\) from a block \(v_k, v_l\) or \(v_m, k,l,m \in \left\{ 1,\ldots ,|V| \right\} \) it is obligatory to use the path of thin arcs within \(c_j\) and to return to block \(v_k, v_l\) or \(v_m\), respectively. Specifically, the crane returns to the same block \(v_k, v_l\), or \(v_m\) from where it came from. This way, all the container moves inside \(c_j\) (except for the one from left to right) as well as the empty crane moves (except for the first one) are of minimal length. Note that splitting the execution of the four thin arcs inside \(c_j\) among several visits of the crane yields longer empty crane moves within \(c_j\) (resulting in an objective value larger than Z).

  • To realize these |C| visits, we can use at most \(|C|+|V|\) (dashed or non-dashed) arcs of blocks \(v_1, \ldots , v_{|V|}\) while the road train is parking at \(p_1\).

Altogether, we can state that there is a solution for the TLP instance with an objective value of at most Z if and only if it is possible to reach every block \(c_j, j=1 \ldots ,|C|\), exactly once during the first time the crane traverses blocks \(v_1, \ldots , v_{|V|}\) (and therefore exactly twice during the second transit). In this case, objective value Z decomposes as follows:

$$\begin{aligned} Z = \underbrace{\mathrm{LB}}_{\mathrm{(i)}}+\underbrace{4}_{\mathrm{(ii)}}+\underbrace{4 \cdot |V|}_{\mathrm{(iii)}}+\underbrace{2 \cdot |V|}_{\mathrm{(iv)}}+\underbrace{2 \cdot |C|}_{(v)}+\underbrace{5 \cdot |C|}_{\mathrm{(vi)}}+\underbrace{5}_{\mathrm{(vii)}}. \end{aligned}$$
  1. (i)

    LB is based on the assumption that each container move is as short as possible and each empty crane movement between two containers has length 1.

  2. (ii)

    The distances for the first container move and the container move from block B back to block A are each prolonged by 2.

  3. (iii)

    The length of both empty crane moves at the beginning of a block \(v_i, i \in 1, \ldots ,|V|\) are jointly 6 instead of 2.

  4. (iv)

    Every block \(v_1, \ldots ,v_{|V|}\) contains at least one non-dashed arc being prolonged by 2.

  5. (v)

    Reaching each block \(c_1 , \ldots c_{|C|}\) exactly once from the first parking position prolongs exactly |C| dashed arcs within blocks \(v_1 , \ldots v_{|V|}\) by 2.

  6. (vi)

    Integrating the four container moves inside a block \(c_j, j \in 1, \ldots , |C|\) while parking at \(p_1\) prolongs the first empty crane move in \(c_j\) to 4 (and thus contributes an additional distance of 3 to the objective value). Furthermore, the length of the long arc from left to right within \(c_j\) is prolonged by 2.

  7. (vii)

    If the road train changes over directly after the crane picked up the container of the first diagonal arc within block B, then the empty and loaded crane moves within B are jointly prolonged by 5.

When we, now, interpret a block \(v_i, i \in \left\{ 1,\ldots ,|V| \right\} \), of the TLP instance where the dashed arcs are executed during the first transit of the crane as a TRUE-variable within 1-in-3-Sat and a block \(v_i\) where the dashed arcs are executed during the second transit as a FALSE-variable then it becomes obvious, that there is a feasible solution for the 1-in-3-Sat instance if and only if there is a solution for the TLP instance with objective value not exceeding Z. \(\square \)

Corollary 3

When applying the Manhattan metric or the horizontal metric TLP with given parking positions, i.e., decisions tasks (b) and (c) are to be solved, is NP-hard in the strong sense even if the number of railway tracks is \(T=1\) and the number of parking positions is limited to \(m=3\).

Sketch of proof: When we take a look at the proof of Lemma 2, we can observe that the horizontal component of most container moves (except the ones within block B) and most distances between two arbitrary container moves (except some within blocks B and \(c_j, j \in 1, \ldots , |C|\)) are at least 1, independent of whether the road train is parking at \(p_1\) or \(p_2\). Thus, the horizontal component for these distances is dominating the vertical component of 1 and we are able to replace the maximum metric by the Manhattan metric without altering these distances significantly (they are all just prolonged by 1). Only those distances where the horizontal component is not dominating the vertical component need special attention:

  • Block B: When switching to the Manhattan metric the container moves within this block still have to be executed from left to right. Obviously, the new metric does not influence the necessity for the road train’s changeover within block B.

  • Blocks \(c_j, j \in \left\{ 1, \ldots , |C| \right\} \): Here, we have no problem with the distances for loaded crane moves but maybe with the distances for empty moves since there are some distances between two container moves with a horizontal component of 0 (e.g., a shaded bullet on the road train situated directly under a shaded bullet on the rail track). Any deviation from the strategy where block \(c_j\) is visited exactly once when parking at \(p_1\) and exactly twice when parking at \(p_2\), where the loop of all 4 thin arcs within block \(c_j\) is executed in one run when parking at \(p_1\) and where the crane always returns to the same v-block where it came from causes a crane distance inside block \(c_j\) of more than 59. Thereby, 59 is the crane distance (42 for the loaded and 17 for the empty moves) which we obtain when applying the aforementioned strategy (The lengths of both container moves between a v-block and a c-block are jointly independent of parking at \(p_1\) or \(p_2\).) Thus, we can replace the metric without altering the fundamental structure of crane schedules.

Altogether, we can replace the maximum metric by the Manhattan metric without altering the structure of crane schedules with a total distance of at most Z (only LB changes and therefore Z changes, too). The same holds true for horizontal metric, since the Manhattan metric splits each crane move into a vertical and a horizontal component that can be optimized separately. \(\Box \)

Lemma 4

When applying the maximum metric the TLP is NP-hard in the strong sense even if \(T=6\) and there is only one parking position which, additionally, is given as part of the instance.

Sketch of Proof: In a recent paper, Boysen and Stephan (2016) provide a proof for a similar problem occurring when operating automated storage and retrieval machines (AS/RM) in warehouses. In their setting, the AS/RM executes a set of retrieval moves from the shelves of a rack to the output points that are spread over the whole width at the bottom of the rack. The only difference between both problems is the direction of loaded crane moves. In our road train environment they are directed from \(t=0\) to the tracks \(t=1, 2, \ldots , T\) and in the warehousing environment from shelves \(t=1, 2, \ldots , T\) to \(t=0\). Obviously, both problems can be transformed to each other by swapping the direction of loaded crane moves and interchanging the crane’s initial and final positions. (As the final crane positions are not parts of the instances we need to define suited jobs to force the crane terminating at the desired location.) Since distances between arbitrary locations remain unaffected, executing the jobs in reverse order transforms solutions into each other without altering their objective values. Thus, we can transfer the NP-hardness result of Boysen and Stephan (2016) to our problem setting. \(\Box \)

Lemma 5

If there is only one parking position, the TLP is solvable in polynomial time when applying the Manhattan metric or the horizontal metric.


Applying the Manhattan metric splits each loaded and empty crane move into a vertical and a horizontal component, whereas the vertical component is sequence-independent, so that we can focus on horizontal movement. Gilmore and Gomory (1964) provided an \(O(n^2)\) algorithm for determining shortest schedules of n jobs with given start and end positions on a line. Thus, we are able to compute a shortest crane schedule in \(O(n^2)\) if the road train’s parking position is given as part of the instance. Otherwise, we additionally have to determine the optimal parking position by comparing all parking positions where at least one of the n loaded or \((n+1) \cdot n\) possible empty crane moves has a horizontal component of length 0. (By a simple shifting argument it becomes obvious that there is at least one optimal solution where at least one crane move has a horizontal component of 0.) Since these are at most \((n+2) \cdot n\), we can obtain a solution for TLP in \(O(n^4)\) steps when applying the Manhattan or horizontal metric. \(\square \)

Corollary 6

When applying the Manhattan or horizontal metric, determining the crane routing [once the parking positions for the road train (a) and the assignment of jobs to stops (b) are given] can be done in polynomial time.


As we have seen in the proof of Lemma 5, we can compute a shortest crane schedule in \(O(n^2)\) if there is only one fixed parking position. Therefore, it takes us at most \(O(n^2)\) many steps to determine a shortest crane schedule from a given initial crane location via all jobs of a given parking position to the starting point of a predetermined job of the successive parking position. Thus, by applying a simple dynamic programming scheme it takes us at most \(O(m \cdot n^4)\) many steps to determine an overall shortest crane schedule with m and n being the number of road train stops and jobs, respectively. \(\square \)

Corollary 7

The NP-hardness results for solving decision tasks (b) and (c) with predetermined stop locations are also valid when solving decision tasks (a), (b), and (c) jointly.


For proving the correctness of this corollary we just have to adapt the proofs of Lemma 2, Corollary 3, and Lemma 4. We have to make sure that the road train stops exactly at the three, three, and one required stop position(s), respectively. To do so, we basically have to integrate a large (but polynomially restricted) number of additional container moves in such a manner, that they force the road train to stop at the required position(s) without altering the basic structure of feasible solutions not exceeding (a modified) objective value \(Z'\). Since the integration of these additional container moves and the modification of Z to \(Z'\) are straightforward we abstain from a detailed definition. \(\square \)

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Boysen, N., Scholl, J. & Stephan, K. When road trains supply freight trains: scheduling the container loading process by gantry crane between multi-trailer trucks and freight trains. OR Spectrum 39, 137–164 (2017).

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI:


  • Container logistics
  • Train loading
  • Gantry cranes
  • Scheduling