Skip to main content
Log in

A pattern-based timetabling strategy for a short-turning metro line

  • Original Research
  • Published:
Public Transport Aims and scope Submit manuscript

Abstract

The planning of metro lines is typically done through a strictly hierarchical approach, which is effective but somewhat inflexible. In this paper, we propose a flexible semiperiodic timetabling strategy using short-turning; thus, allowing trains to turn before reaching the terminal station of a line. Our strategy produces timetables that are periodic with respect to a group of short-turning destinations. This is denoted by the term service pattern. We introduce the service pattern timetabling problem (SPTP). Given a service pattern, the SPTP optimizes the train timetable considering capacity restrictions. The SPTP is modeled as a constraint program. We develop a framework for producing a large set of diverse and high-quality timetables for a metro line. This is achieved by repeatedly solving the SPTP with different patterns. Then we select a restricted list of non-dominated solutions with respect to three objectives: (1) the average passenger waiting time, (2) the maximum load factor achieved by the trains, and (3) the number of transfers induced by short-turning. We evaluate the proposed framework on a number of test instances. Through our computational experiments, we demonstrate the effectiveness of the developed strategy.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

Data availability

The data of all test instances used in this paper are openly available in Schettini (2021b).

References

  • Barrena E, Canca D, Coelho LC, Laporte G (2014) Exact formulations and algorithm for the train timetabling problem with dynamic demand. Comput Oper Res 44:66–74

    Article  MathSciNet  Google Scholar 

  • Canca D, Barrena E, Laporte G, Ortega FA (2016) A short-turning policy for the management of demand disruptions in rapid transit systems. Ann Oper Res 246:145–166

    Article  MathSciNet  Google Scholar 

  • Ceder A (2016) Public transit planning and operation: Modeling, practice and behavior. CRC Press, Boca Raton

    Book  Google Scholar 

  • Cortés CE, Jara-Díaz S, Tirachini A (2011) Integrating short turning and deadheading in the optimization of transit services. Transp Res Part A: Policy Pract 45:419–434

    Google Scholar 

  • de Weert Y, Gkiotsalitis K (2021) A COVID-19 public transport frequency setting model that includes short-turning options. Future Transport 1(1):3–20

    Article  Google Scholar 

  • Ding X, Guan S, Sun DJ, Jia L (2018) Short turning pattern for relieving metro congestion during peak hours: the substance coherence of Shanghai, China. Eur Transp Res Rev 10:1–11

    Article  Google Scholar 

  • Farahani RZ, Miandoabchi E, Szeto WY, Rashidi H (2013) A review of urban transportation network design problems. Eur J Oper Res 229:281–302

    Article  MathSciNet  Google Scholar 

  • Fourer R, Gay DM, Kernighan BW (1990) A modeling language for mathematical programming. Manag Sci 36(5):519–554

    Article  Google Scholar 

  • Furth PG (1987) Short turning on transit routes. Transp Res Rec 1108:42–52

    Google Scholar 

  • Gao Y, Kroon L, Schmidt M, Yang L (2016) Rescheduling a metro line in an over-crowded situation after disruptions. Transp Res Part B: Methodol 93:425–449

    Article  Google Scholar 

  • Gkiotsalitis K, Cats O (2021) Public transport planning adaption under the COVID-19 pandemic crisis: literature review of research needs and directions. Transp Rev 41:374–392

    Article  Google Scholar 

  • Gkiotsalitis K, Wu Z, Cats O (2019a) Bus allocation to short-turning and interlining lines. In: 98th annual meeting of the transportation research board, Washington, DC

  • Gkiotsalitis K, Wu Z, Cats O (2019b) A cost-minimization model for bus fleet allocation featuring the tactical generation of short-turning and interlining options. Transp Res Part C: Emerg Technol 98:14–36

    Article  Google Scholar 

  • Hassannayebi E, Zegordi SH, Amin-Naseri MR, Yaghini M (2018) Optimizing headways for urban rail transit services using adaptive particle swarm algorithms. Public Transport 10(1):23–62

    Article  Google Scholar 

  • Jiang F, Cacchiani V, Toth P (2017) Train timetabling by skip-stop planning in highly congested lines. Transp Res Part B: Methodol 104:149–174

    Article  Google Scholar 

  • Kroon L, Huisman D, Abbink E, Fioole P-J, Fischetti M, Maróti G, Ybema R (2009) The new Dutch timetable: the OR revolution. Interfaces 39(1):6–17

    Article  Google Scholar 

  • Leiva C, Muñoz JC, Giesen R, Larrain H (2010) Design of limited-stop services for an urban bus corridor with capacity constraints. Transp Res Part B: Methodol 44:1186–1201

    Article  Google Scholar 

  • Li Z, Zhao J, Peng Q (2021) Train service design in an urban rail transit line incorporating multiple service routes and multiple train compositions. Transp Res Part C: Emerg Technol 123:102959

    Article  Google Scholar 

  • Liebchen C (2008) The first optimized railway timetable in practice. Transp Sci 42:420–435

    Article  Google Scholar 

  • Malucelli F, Tresoldi E (2019) Delay and disruption management in local public transportation via real-time vehicle and crew re-scheduling: a case study. Public Transport 11(1):1–25

    Article  Google Scholar 

  • Mohring H (1972) Optimization and scale economies in urban bus transportation. Am Econ Rev 62:591–604

    Google Scholar 

  • Perron L, Furnon V (2019) OR-tools. https://developers.google.com/optimization/

  • Polster B (2003) The mathematics of juggling. Springer, New York

    Google Scholar 

  • Rossi F, Van Beek P, Walsh T (2006) Handbook of Constraint Programming. Elsevier, Amsterdam

    Google Scholar 

  • Schettini T (2021a) Demand-driven timetabling optimization for automated metro lines (PhD dissertation). Politecnico di Milano, Milan

    Google Scholar 

  • Schettini T (2021b) SPTP-instances, DTP-instances. GitHub. https://github.com/tommaso-schettini-polimi

  • Schettini T, Jabali O, Malucelli F (2022a) A Benders decomposition algorithm for demand-driven metro scheduling. Comput Oper Res 138:105598

    Article  MathSciNet  Google Scholar 

  • Schettini T, Jabali O, Malucelli F (2022b) Demand-driven timetabling for a metro corridor using a short-turning acceleration strategy. Transp Sci 56(4):919–937

    Article  Google Scholar 

  • Schiewe A, Albert S, Schiewe P, Schöbel A, Spühler F (2020) Lintim: an integrated environment for mathematical public transport optimization. Documentation for version 2020.12 Technical report, TU Kaiserslautern. https://kluedo.ub.rptu.de/frontdoor/deliver/index/docId/6202/file/lintim_2020-12_documentation.pdf

  • Schöbel A (2012) Line planning in public transportation: models and methods. OR Spectr 34:491–510

    Article  MathSciNet  Google Scholar 

  • Sun L, Jin JG, Lee D-H, Axhausen KW, Erath A (2014) Demand-driven timetable design for metro services. Transp Res Part C: Emerg Technol 46:284–299

    Article  Google Scholar 

  • Tirachini A, Cortés CE, Jara-Díaz SR (2011) Optimal design and benefits of a short turning strategy for a bus corridor. Transportation 38:169–189

    Article  Google Scholar 

  • Ullrich O, Lückerath D, Speckenmeyer E (2016) Do regular timetables help to reduce delays in tram networks? It depends! Public Transport 8:39–56

    Article  Google Scholar 

  • Xue Q, Yang X, Wu J, Sun H, Yin H, Qu Y (2019) Urban rail timetable optimization to improve operational efficiency with flexible routing plans: a nonlinear integer programming model. Sustainability 11:3701

    Article  Google Scholar 

  • Yang X, Ji Y, Du Y, Zhang HM (2017) Bi-level model for design of transit short-turning service considering bus crowding. Transp Res Rec 2649:52–60

    Article  Google Scholar 

  • Yang L, Yao Y, Shi H, Shang P (2021) Dynamic passenger demand-oriented train scheduling optimization considering flexible short-turning strategy. J Oper Res Soc 72:1707–1725

    Article  Google Scholar 

  • Yanık S, Yılmaz S (2022) Optimal design of a bus route with short-turn services. Public Transport 15(1):169–97

    Article  Google Scholar 

  • Yuan J, Gao Y, Li S, Liu P, Yang L (2022) Integrated optimization of train timetable, rolling stock assignment and short-turning strategy for a metro line. Eur J Oper Res 301(3):855–874

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tommaso Schettini.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix A: Table of notation

See Table 4.

Table 4 Table of notation

Appendix B: The service pattern timetabling problem model

$$\begin{aligned}&\text {min} \sum _{\gamma \in \Gamma } \sum _{k \in K} (h^{\gamma }_{k})^2 \end{aligned}$$
(B.1)
$$\begin{aligned}&\quad { s( \gamma ,k ) = s( \gamma ,1 ) + \sum _{k' = 2}^{k} h^{\gamma }_{k'} } \quad { \forall \gamma \in \Gamma , \ k \in K \setminus \{1\} } \end{aligned}$$
(B.2)
$$\begin{aligned}&e( \gamma ,k ) = s( \gamma ,k ) + w^{\gamma }_{k} + 2\tau ( \gamma ,k ) \quad \forall \gamma \in \Gamma , \ k \in K \end{aligned}$$
(B.3)
$$\begin{aligned}&z= \sum _{k \in K}h^{\gamma }_{k}\quad \forall \gamma \in \Gamma \end{aligned}$$
(B.4)
$$\begin{aligned}&s( \gamma ,k ) + zc^{\gamma }_{k} = e( -\gamma ,m^{\gamma }_{k} ) \quad \forall \gamma \in \Gamma , \ k \in K \end{aligned}$$
(B.5)
$$\begin{aligned}&\texttt {alldifferent}(m^{\gamma }_{k}, \ \forall k \in K)\quad \forall \gamma \in \Gamma \end{aligned}$$
(B.6)
$$\begin{aligned}&\sum _{\gamma \in \Gamma } \sum _{k \in K} (w^{\gamma }_{k} + 2\tau ( \gamma ,k )) = \Psi z\end{aligned}$$
(B.7)
$$\begin{aligned}&\mu ^{\gamma }_{k} = d( -\gamma ,m^{\gamma }_{k} ) \quad \forall \gamma \in \Gamma , \ k \in K \end{aligned}$$
(B.8)
$$\begin{aligned}&f^{\gamma }_{k,i} \le U C \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in S \end{aligned}$$
(B.9)
$$\begin{aligned}&\quad { \gamma (r - \mu ^{\gamma }_{k}) \ge \gamma (r - i) \ \Rightarrow \ \eta ^{\gamma }_{k,i} = 1 } \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma } \end{aligned}$$
(B.10)
$$\begin{aligned}&\quad \gamma (r - \mu ^{\gamma }_{k}) < \gamma (r - i) \ \Rightarrow \ \eta ^{\gamma }_{k,i} = 0 \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma }\end{aligned}$$
(B.11)
$$\begin{aligned}&\quad \gamma (r - \mu ^{\gamma }_{k'}) \ge \gamma (r - i) \ \Rightarrow \ \lambda ^{\gamma ,i}_{k,k'} = 0 \nonumber \\&\quad { \forall \gamma \in \Gamma , \ k \in K, \ k' \in 1,\ldots ,b(k), \ i \in {\underline{S}}^{\gamma } }\end{aligned}$$
(B.12)
$$\begin{aligned}&\quad \lambda ^{\gamma ,i}_{k,k'+1} = 0 \ \Rightarrow \ \lambda ^{\gamma ,i}_{k,k'} = 0 \nonumber \\&\quad {\forall \gamma \in \Gamma , \ k \in K, \ k' \in 1,\ldots ,b(k)-1, \ i \in {\underline{S}}^{\gamma }} \end{aligned}$$
(B.13)
$$\begin{aligned}&\quad \eta ^{\gamma }_{k,i} = 0 \ \Rightarrow \ \lambda ^{\gamma ,i}_{k,k'} = 0 \nonumber \\ & \quad { \forall \, \gamma \in \Gamma , \ k \in K, \ k' \in 1,\ldots ,b(k), \ i \in {\underline{S}}^{\gamma } } \end{aligned}$$
(B.14)
$$\begin{aligned}&\quad { \eta ^{\gamma }_{k,i} = 1 \ \wedge \ \lambda ^{\gamma ,i}_{k,k'+1} = 1 \ \wedge \ \gamma (r - \mu ^{\gamma }_{k'}) < \gamma (r - i) \ \Rightarrow \ \lambda ^{\gamma ,i}_{k,k'} = 1 } \nonumber \\&\quad { \forall \gamma \in \Gamma , \ k \in K, \ k' \in 1,\ldots ,b(k)-1, \ i \in {\underline{S}}^{\gamma } } \end{aligned}$$
(B.15)
$$\begin{aligned}&\quad { \eta ^{\gamma }_{k,i} = 1 \ \wedge \ \gamma (r - \mu ^{\gamma }_{k'}) < \gamma (r - i) \ \Rightarrow \ \lambda ^{\gamma ,i}_{k,k'} = 1 } \\ & \quad \forall \gamma \in \Gamma , \ k \in K, \ k' = b(k), \ i \in {\underline{S}}^{\gamma } \end{aligned}$$
(B.16)
$$\begin{aligned}&\quad q^{\gamma }_{k,i} = \eta ^{\gamma }_{k,i} h^{\gamma }_{b(k)} + \sum _{k' = 2}^{b(k)}\lambda ^{\gamma ,i}_{k,k'} h^{\gamma }_{b(k')} \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma } \end{aligned}$$
(B.17)
$$\begin{aligned}&\quad f^{\gamma }_{k,i} = \sum _{j \in S^{-\gamma }_{i} } \sum _{j' \in S^{\gamma }_{i+\gamma }} a_{jj'} q^{\gamma }_{k,i} \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma } \end{aligned}$$
(B.18)
$$\begin{aligned}&\quad f^{\gamma ,1}_{k,i} = \sum _{j \in {\underline{S}}^{\gamma }} \sum _{j' \in S^{\gamma }_{i+\gamma }} a_{jj'} q^{\gamma }_{k,j} \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\bar{S}}^{\gamma } \end{aligned}$$
(B.19)
$$\begin{aligned}&\quad f^{\gamma ,2}_{k,i} = \sum _{k' = \zeta ^{\gamma }_{k,i}+1}^{b(k)} \sum _{j \in {\underline{S}}^{\gamma }} \sum _{j' \in S^{\gamma }_{i+\gamma }} a_{jj'} q^{\gamma }_{k,j} \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\bar{S}}^{\gamma } \end{aligned}$$
(B.20)
$$\begin{aligned}&\quad { f^{\gamma ,3}_{k,i} = \left( h^{\gamma }_{b(k)} + \sum _{k' = \zeta ^{\gamma }_{k,i}}^{b(k)} h^{\gamma }_{k'} \right) \sum _{j \in S^{\gamma }_{r,i}} \sum _{j' \in S^{\gamma }_{i+\gamma }} a_{jj'} } \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\bar{S}}^{\gamma } \end{aligned}$$
(B.21)
$$\begin{aligned}&\quad f^{\gamma }_{k,i} = f^{\gamma ,1}_{k,i} + f^{\gamma ,2}_{k,i} + f^{\gamma ,3}_{k,i} \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\bar{S}}^{\gamma } \end{aligned}$$
(B.22)
$$\begin{aligned}&\quad s( \gamma ,k ), e( \gamma ,k ), c_{k}^\gamma \in {\mathbb {N}}_0&\quad \forall \gamma \in \Gamma , k \in K \end{aligned}$$
(B.23)
$$\begin{aligned}&\quad w_{k}^\gamma \in \{\rho ,\ldots ,\rho + {\bar{w}}\}, \ h_{k}^\gamma \in \{\hspace{0.83328pt}\underline{\hspace{-0.83328pt}h\hspace{-0.83328pt}}\hspace{0.83328pt},\ldots ,{\bar{h}}\} \qquad \forall \gamma \in \Gamma , k \in K \end{aligned}$$
(B.24)
$$\begin{aligned}&\quad m_{k}^\gamma \in K, \ \mu ^{\gamma }_{k} \in S \quad \forall \gamma \in \Gamma , k \in K \end{aligned}$$
(B.25)
$$\begin{aligned}&\quad z\in {\mathbb {N}}_0\end{aligned}$$
(B.26)
$$\begin{aligned}&\quad f^{\gamma }_{k,i} \in {\mathbb {N}}_0\qquad {\forall \gamma \in \Gamma , \ k \in K, \ i \in S } \end{aligned}$$
(B.27)
$$\begin{aligned}&\quad q^{\gamma }_{k,i} \in {\mathbb {N}}_0\qquad { \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma } } \end{aligned}$$
(B.28)
$$\begin{aligned}&\quad \lambda ^{\gamma ,i}_{k,k'} \in \{0,1\}\qquad { \forall \gamma \in \Gamma , \ k \in K, \ k' \in 1,\ldots ,b(k), \ i \in {\underline{S}}^{\gamma } } \end{aligned}$$
(B.29)
$$\begin{aligned}&\quad \eta ^{\gamma }_{k,i} \in \{0,1\}\qquad { \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma } } \end{aligned}$$
(B.30)
$$\begin{aligned}&\quad f^{\gamma ,1}_{k,i}, f^{\gamma ,2}_{k,i}, f^{\gamma ,3}_{k,i} \in {\mathbb {N}}_0\qquad { \forall \gamma \in \Gamma , \ k \in K, \ i \in {\bar{S}}^{\gamma } } \end{aligned}$$
(B.31)

Appendix C: Software implementation

When implementing a CP model in software, the features and constraints available in the modeling vary slightly from solver to solver. This implies that frequently, some solver-specific measures have to be taken in the construction of the model. For this paper, we implemented the developed CP model in Python 3.9.7 using the OR tools CP libraries (Perron and Furnon 2019). We note that the specialized CP constraints used in the formulation (i.e., alldifferent) are built in the solver and could be directly implemented into the model. Conversely, some of the non-linear features of the model required additional variables to be introduced in the formulation to facilitate their implementation in the OR tools framework.

Specifically, in the OR tools framework, most non-linear constraints are equalities (e.g., a variable is equal to the product of two other variables). Thus, intermediary storage variables are necessary to hold the value of all non-linear quantities that are used in the constraints.

Constraints (4) contain the non-linear quantities \(zc^{\gamma }_{k}\) and \(e( -\gamma ,m^{\gamma }_{k} )\). We introduce the auxiliary variable \({\bar{c}}^{\gamma }_{k}\) to store the product of \(z\) and \(c^{\gamma }_{k}\), and auxiliary variable \({\bar{e}}( \gamma ,k )\) to store the value of \(e( -\gamma ,m^{\gamma }_{k} )\), \(\forall \gamma \in \Gamma , \ k \in K\). Therefore, we replace constraints (4) with the following.

$$\begin{aligned}&s( \gamma ,k ) + {\bar{c}}^{\gamma }_{k} = {\bar{e}}( \gamma ,k ) \quad \forall \gamma \in \Gamma , \ k \in K \end{aligned}$$
(C.32)
$$\begin{aligned}&{\bar{c}}^{\gamma }_{k} = zc^{\gamma }_{k} \quad \forall \gamma \in \Gamma , \ k \in K \end{aligned}$$
(C.33)
$$\begin{aligned}&{\bar{e}}( \gamma ,k ) = e( -\gamma ,m^{\gamma }_{k} ) \quad \forall \gamma \in \Gamma , \ k \in K \end{aligned}$$
(C.34)

Constraints (C.33) are implemented in CP through the use of the element constraint, which allows indexing a vector in accordance to a variable. Similarly, constraints (18) contain two products of variables. We use auxiliary variable \({\bar{\eta }}^{\gamma }_{k,i}\) to store the product of variables \(\eta ^{\gamma }_{k,i}\) and \(h^{\gamma }_{b(k)}\), and variable \({\bar{\lambda }}^{\gamma ,i}_{k,k'}\) to store the product of variables \(\lambda ^{\gamma ,i}_{k,k'}\) and \(h^{\gamma }_{b(k')}\). Therefore, we replace constraints (18) with the following.

$$\begin{aligned}&q^{\gamma }_{k,i} = {\bar{\eta }}^{\gamma }_{k,i} + \sum _{k' = 2}^{b(k)} {\bar{\lambda }}^{\gamma ,i}_{k,k'} \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma } \end{aligned}$$
(C.35)
$$\begin{aligned}&{\bar{\eta }}^{\gamma }_{k,i} = \eta ^{\gamma }_{k,i} h^{\gamma }_{b(k)} \quad \forall \gamma \in \Gamma , \ k \in K, \ i \in {\underline{S}}^{\gamma } \end{aligned}$$
(C.36)
$$\begin{aligned}&{\bar{\lambda }}^{\gamma ,i}_{k,k'} = \lambda ^{\gamma ,i}_{k,k'} h^{\gamma }_{b(k')} \quad \forall \gamma \in \Gamma , \ k \in K, \ k' \in 2,\dots ,b(k), \ i \in {\underline{S}}^{\gamma } \end{aligned}$$
(C.37)

Lastly, we use auxiliary variable \(H^{\gamma }_{k}\) to store the square terms used in the objective function. Thus, we replace objective function (7) with the following.

$$\begin{aligned}&\text {min} \sum _{\gamma \in \Gamma } \sum _{k \in K} (H^{\gamma }_{k}) \end{aligned}$$
(C.38)
$$\begin{aligned}&H^{\gamma }_{k} = h^{\gamma }_{k} h^{\gamma }_{k} \quad \forall \gamma \in \Gamma , \ k \in K \end{aligned}$$
(C.39)

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Schettini, T., Gendreau, M., Jabali, O. et al. A pattern-based timetabling strategy for a short-turning metro line. Public Transp 16, 1–37 (2024). https://doi.org/10.1007/s12469-023-00339-2

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12469-023-00339-2

Keywords

Navigation