Abstract
In this paper, we study the railcar retrieval problem (RRT) in which specified numbers of certain types of railcars must be withdrawn from the storage tracks of a flat yard. This task arises as part of daily operations of railcar maintenance workshops. The objective is to minimize the total cost of the shunting operations. We describe the RRT formally, present a mixed-integer program formulation and prove the general case to be NP-hard. For some special cases, exact algorithms with polynomial runtimes are proposed. We also analyze several intuitive heuristic solution approaches motivated by current real-world planning routines. We evaluate their average performances in simulations with different scenarios and provide their worst-case performance guarantee. We show that although the analyzed heuristics result in much better solutions than the naïve planning approach, on average, they are still 30–50% from the optimal objective value and may result in costs up to 14 times higher in the worst case. Therefore, we conclude that optimization should be implemented in practice to save valuable resources. Furthermore, we analyze the impacts of yard layout and the widespread organizational routines on retrieval costs in detailed computational experiments.
Similar content being viewed by others
References
Blasum U, Bussieck MR, Hochstättler W, Moll C, Scheel HH, Winter T (1999) Scheduling trams in the morning. Math Methods Oper Res 49(1):137–148
Boysen N, Fliedner M, Jaehn F, Pesch E (2012) Shunting yard operations: theoretical aspects and applications. Eur J Oper Res 220(1):1–14
Budai G, Huisman D, Dekker R (2006) Scheduling preventive railway maintenance activities. J Oper Res Soc 57(9):1035–1044
Corsi TM, Casavant K (2010) Private railcars: survey of the members of the North American Freight Car Association. Freight Policy Transportation Institute Technical Survey 1
Corsi T, Casavant K, Graciano T (2012) A preliminary investigation of private railcars in North America. J Transp Res Forum 51(1):53–70
Di Stefano G, Koči ML (2004) A graph theoretical approach to the shunting problem. Electron Notes Theor Comput Sci 92:16–33
Doganay K, Bohlin M (2010) Maintenance plan optimization for a train fleet. In: Ning B, Brebbia CA (eds) Computers in railways XII. WIT Press, Southampton, pp 349–358
EU (2011) Impact assessment: roadmap to a single European transport area—towards a competitive and resource efficient transport system. Tech. rep., EU Commission Staff Working Paper, Brussels
Garey MR, Johnson DS (1979) Computers and Intractability: a guide to the theory of NP-completeness. W. H. Freeman, San Francisco
Gatto M, Maue J, Mihalák M, Widmayer P (2009) Shunting for dummies: an introductory algorithmic survey. In: Ahuja R, Möhring R, Zaroliagis C (eds) Robust and online large-scale optimization. Lecture notes in computer science. Springer, Berlin, pp 310–331
Hall RW (2000) Scheduling and facility design for transit railcar maintenance. Transp Res Part A Policy Pract 34(2):67–84
Hansmann RS, Zimmermann UT (2008) Optimal sorting of rolling stock at hump yards. In: Krebs HJ, Jäger W (eds) Math Key Technol Future. Springer, Berlin, pp 189–203
Hecht M (2007) Schneller auf Schienen: Beschleunigung des Schienengüterverkehrs durch zeitgemäße Technik. TU Int 59(Januar):24–25
Jacobsen PM, Pisinger D (2011) Train shunting at a workshop area. Flex Serv Manuf J 23(2):156–180
Karp RM (1972) Reducibility among combinatorial problems. In: Miller RW, Thatcher JW (eds) Complexity in computer computations. Plenum, New York, pp 85–103
Kobbacy KAH, Murthy DN (eds) (2008) Complex system maintenance. Springer, Berin
Lidén T (2015) Railway infrastructure maintenance—a survey of planning problems and conducted research. Transp Res Procedia 10:574–583
Lübbecke ME, Zimmermann UT (2005) Shunting minimal rail car allocation. Comput Optim Appl 31(3):295–308
Nicolin J, Nogly L (2013) Gütertransport mit Güterwagen im Wettbewerb bei steigenden Ansprüchen/Beanspruchungen. In: IFS-Seminar at Aachen University, Downloaded from http://www.ifs.rwth-aachen.de/veranstaltungen/Seminar2013.html on the 9th of October 2015
Ramond F, Dauzère-Pérès S, de Almeida D (2006) Scheduling moves within railcar maintenance centers. In: Proceedings of the 12th IFAC symposium on information control problems in manufacturing
Ramond F, de Almeida D, Dauzère-Pérès S (2006) Enhanced operation scheduling within railcar maintenance centers. In: Proceedings of the 7th world congress on railway research
SAG-Gruppe (2015) Anlagealternative Eisenbahnwaggon: Transparent—rentabel—zukunftsfähig, downloaded from http://www.railinvest.de/ on the 9th of October 2015
Winter T, Zimmermann UT (2000) Real-time dispatch of trams in storage yards. Ann Oper Res 96(1–4):287–315
Acknowledgements
The authors cooperated with Dr. Christian Otto at DB Schenker Rail and are very grateful to him for his valuable insights into the planning issues of railcar maintenance.
Author information
Authors and Affiliations
Corresponding author
Appendix: Detailed proof of Proposition 5
Appendix: Detailed proof of Proposition 5
Proof
Observe that the ratio \(\frac{\mathrm{WLBH}(I)}{\mathrm{Opt}(I)}\) cannot be greater than \(\frac{N+1}{3} \cdot \frac{z_1}{z_0}\) for all instances with \(\mathrm{Opt}(I) \ne 2\cdot z_0\), \(\mathrm{Opt}(I) \ne 2\cdot z_1\), or \(\mathrm{Opt}(I) \ne z_0+z_1\). Indeed, if an optimal solution consists only of one block, i.e., \(\mathrm{Opt}(I)=z_0\) or \(\mathrm{Opt}(I)=z_1\), then the WLBH will retrieve all the railcars in one block as well. Further, it is straightforward to see that \(\mathrm{WLBH}(I)\) cannot be larger than \(N\cdot z_1\). Hence, if an optimal solution consists of three or more blocks, i.e., \(\mathrm{Opt}(I)\ge 3\cdot z_0\), \(\frac{\mathrm{WLBH}(I)}{\mathrm{Opt}(I)}\) is necessarily lower than \(\frac{N+1}{3} \cdot \frac{z_1}{z_0}\). Therefore, we have to examine only the cases where an optimal solution consists of two blocks to prove that \(\frac{N+1}{3} \cdot \frac{z_1}{z_0}\) is indeed an upper bound for the approximation ratio for the WLBH. In the following, we provide explanations only for the set of instances \(\mathcal {I}'\) with \(\mathrm{Opt}(I')=2\cdot z_0, \forall I'\in \mathcal {I}'\). The proofs for the cases of \(\mathrm{Opt}(I)=2\cdot z_1\) and \(\mathrm{Opt}(I)=z_0+z_1\) are equivalent.
Step 1: General idea. We introduce additional notation. Assume for some instance \(I'\in \mathcal {I}'\) that the WLBH retrieves \(\mathcal {N}_1\) single-car blocks, \(\mathcal {N}_2\) blocks with two railcars each, \(\ldots \), and \(\mathcal {N}_N\) blocks with N railcars each, where \(\mathcal {N}_f\) are nonnegative integers.
To find the largest possible estimate for \(\frac{\mathrm{WLBH}(I')}{\mathrm{Opt}(I')}\) for instances \(I'\in \mathcal {I}'\), we look for instances with the worst possible objective value of the WLBH (i.e., those for which the WLBH withdraws railcars in the largest possible number of blocks, each with a cost of \(z_1\)).
Consequently, we set up an optimization model:
Our objective 7 is to construct an instance \(I'\) for which the WLBH retrieves railcars in as many blocks as possible. The number of railcars retrieved by the WLBH exactly corresponds to the number of railcars in workshop order N (constraint 9), and the decision variables are nonnegative integers (constraints 10). Constraint 8 restricts the number of single-car blocks (i) given that an optimal solution consists of two blocks and (ii) because of the WLBH algorithm. We will prove constraint 8 in step 2 below.
In the optimal solution, \(\overline{\text {{WLBH}}}\le \frac{2\cdot N+2}{3}\). We can see this, for example, by examining the LP-relaxation of the problem. Because of constraint 9, we can rewrite the objective function as \(N-\sum _{f=2}^N {(f-1)\cdot \mathcal {N}_f}\) and see that we have to maximize \(\mathcal {N}_1\) because \(\mathcal {N}_f\) has negative coefficients in the objective function for all \(f>1\). Therefore, constraint 8 is binding. Taking constraints 8 and 9 as equalities and substituting them into the objective function, we obtain expression \(\frac{2\cdot N+2-\sum _{f=3}^N {(f-3)\cdot \mathcal {N}_f}}{3}\). This expression reaches its maximum of \(\frac{2\cdot N+2}{3}\) when \(\mathcal {N}_f=0\) for \(f>3\). Therefore, the optimal objective value is \(\overline{\text {WLBH}}\le \frac{2\cdot N+2}{3}\) and, for instances \(I'\in \mathcal {I}'\), \(\frac{\mathrm{WLBH}(I')}{\mathrm{Opt}(I')}\le \frac{N+1}{3}\cdot \frac{z_1}{z_0}\).
Step 2: Proof of constraint 8. The main idea of the proof is as follows: At some iteration, for instance, \(I'\in \mathcal {I}'\), the WLBH withdraws a railcar of some type \(t^{*}\) that is currently critical. We denote the vector of the remaining demand (i.e., of the still-requested railcars) as \((n'_1, \ldots , n'_T)\). There is necessarily a railcar of this type \(t^{*}\) belonging to the not-yet-withdrawn railcars of any optimal solution \(X^{*}\) of instance \(I'\). The WLBH always retrieves the largest possible block of railcars containing the currently critical type. Because some \(X^{*}\) may contain all the railcars of the largest block, we will examine the properties of the blocks of not-yet-withdrawn railcars in \(\mathcal {X}^{*}\), which is the set of railcars belonging to all the optimal solutions of some instance \(I'\in \mathcal {I}'\). For this purpose, we introduce several definitions. Afterward, we formulate an observation.
Definition
Let us denote the railcars retrieved by the WLBH up to iteration m inclusively as \(\mathcal {X}^{\mathrm{WLBH}}_m\). We call a set of successively positioned railcars \(\{i, i+1, \ldots , i+l\} \subseteq \mathcal {X}^{*}\), \(i, \ldots , i+l \notin \mathcal {X}^{\mathrm{WLBH}}_m\) with \(|\{j\in \{i,i+1,\ldots ,i+l\} | u(j)=t\}|\le n'_t, \forall 1 \le t \le T\) as a remaining block \(B^{( l )}_m\) after iteration m.
In other words, we receive a remaining block if we delete the railcars of \(\mathcal {X}^{\mathrm{WLBH}}_m\) from \(\mathcal {X}^{*}\) and take a sequence of successively positioned remaining railcars.
Definition
We say that b remaining blocks at iteration m form a remaining solution \(\mathcal {B}_m=\{B^{( 1 )}_m, \ldots , B^{( b )}_m\}\), if they do not overlap (\({B^{( l )}_m} \cap {B^{( l' )}_m}={\varnothing , 1\le l , l' \le b}\)), represent separate blocks (i.e., \({B^{( l )}_m} \cup {B^{( l' )}_m}\) is not a remaining block, \(1\le l , l' \le b\)) and contain only still-requested railcars \(\left( |\{j\in \bigcup _{ l =1}^b {B^{( l )}_m}| u(j)=t\}| = n'_t, \forall 0 \le t \le T \right) \). We may alternatively denote an optimal solution of instance \(I''\) as \(\mathcal {B}_0\) (i.e., the remaining solution at iteration 0).
The example in Fig. 6 has only one optimal solution in which \(\mathcal {X}^{*}=\{52, 53, 54, 69, 70, \ldots , 79\}\). In the first iteration, the WLBH withdraws railcars \(\{2,3,4\}\). Thus, we no longer need railcars of types 1 and 2, and we can remove railcars 53, 72 and 76 from \(\mathcal {X}^{*}\). In this case, the remaining solution is unique and consists of five remaining blocks \(\mathcal {B}_1=\{\{52\}, \{54\}, \{69, 70, 71\}, \{73, 74, 75\},\{77, 78, 79\}\}\). However, for some instances \(I'\) in some iterations, there may be several distinct remaining solutions.
Observation 1
Let \(\mathcal {B}_{m-1}\) be a remaining solution, \(m \ge 1\) and \(\mathcal {B}_{m}\) is received from \(\mathcal {B}_{m-1}\) as a result of iteration m of the WLBH (i.e., \(\mathcal {B}_{m-1}\) contains all but \(|\mathcal {X}^{\mathrm{WLBH}}_m(I')\setminus \mathcal {X}^{\mathrm{WLBH}}_{m-1}(I')|\) elements of \(\mathcal {B}_{m}\)).
-
If the WLBH retrieves a single-car block at iteration m, then the number of remaining blocks decreases by one: \(|\mathcal {B}_m|=|\mathcal {B}_{m-1}|-1\).
-
If the WLBH retrieves a two-railcar block at iteration m, then the number of remaining blocks may increase by maximally one: \(|\mathcal {B}_m|\le |\mathcal {B}_{m-1}|+1\).
-
If the WLBH pulls out an f-railcar block with \(f\ge 3\) at iteration m, then the number of remaining blocks may maximally increase by f: \(|\mathcal {B}_m|\le |\mathcal {B}_{m-1}|+f\).
In the following, we will provide justification for Observation 1.
Case of a single-car block. Let the WLBH retrieves a single-car block at iteration \(m \ge 1\). Due to the WLBH algorithm, all the remaining blocks \(B^{( l )}_{m-1}\) containing a railcar of the currently critical type \(t^{*}\) are single-car blocks. Therefore, regardless of whether the WLBH pulls out one of the remaining blocks, the number of remaining railcar blocks will decrease by one: \(|\mathcal {B}_m|=|\mathcal {B}_{m-1}|-1\).
Case of an f-railcar block, \(f\ge 2\). Let the WLBH retrieves an f-block, \(f\ge 2\). We obtain \(\mathcal {B}_{m}\) by deleting exactly one railcar from \(\bigcup _{ l =1}^b {B^{( l )}_{m-1}}\), where \(B^{( l )}_{m-1}\in \mathcal {B}_{m-1} \forall 1\le l \le b\), for each railcar retrieved by the WLBH at iteration m. If a deleted railcar is located somewhere in the middle of a multiple-car remaining block \(B^{( l )}_{m-1}\), then the number of the remaining blocks increases by one. Because the WLBH retrieves an f-railcar block, the number of the remaining blocks may increase by up to f: \(|\mathcal {B}_m|\le |\mathcal {B}_{m-1}|+f\).
Case of a two-railcar block. Let the WLBH retrieves a two-railcar block. From the paragraph above, it follows that the number of remaining blocks cannot increase by more than two: \(|\mathcal {B}_m|\le |\mathcal {B}_{m-1}|+2\). We strengthen this bound and show that the number of remaining blocks cannot actually increase by more than one. Indeed, at least one of the railcars retrieved by the WLBH at iteration m belongs to the currently critical type \(t^{*}\). Because there are no remaining blocks \(B^{( l )}_{m-1}\) containing type \(t^{*}\) with more than two railcars (otherwise the WLBH would retrieve a larger block in this iteration), it is impossible to increase the number of the remaining blocks by picking a railcar of type \(t^{*}\). Therefore, the number of remaining railcar blocks may maximally increase by one: \(|\mathcal {B}_m|\le |\mathcal {B}_{m-1}|+1\).
Let us construct an upper bound on the number of single-car blocks \(\mathcal {N}_1\) that can be retrieved by the WLBH for some instance \(I'\in \mathcal {I}'\) based on Observation 1. Because we examine \(I'\in \mathcal {I}'\) with \(\mathrm{Opt}(I')=2\cdot z_0\), then \(|\mathcal {B}_0|=2\) for any remaining solution before the first iteration of the WLBH. According to Observation 1, after the WLBH has retrieved some f-car block, the number of blocks in a remaining solution increases by f if \(f>2\) and by 1 if \(f=2\). Therefore, the number of single-car blocks \(\mathcal {N}_1\) cannot be greater than \(\left( 2+\sum _{f=3}^N {f \cdot \mathcal {N}_f}+\mathcal {N}_2\right) \). As a consequence, we have proven constraint 8 for instances \(I'\in \mathcal {I}'\). \(\square \)
Rights and permissions
About this article
Cite this article
Jaehn, F., Otto, A. & Seifried, K. Shunting operations at flat yards: retrieving freight railcars from storage tracks. OR Spectrum 40, 367–393 (2018). https://doi.org/10.1007/s00291-017-0495-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00291-017-0495-x