1 Introduction

Unexpected events affect railway operations in everyday life, which are either small service perturbations called disturbances or relatively large incidents called disruptions. During disturbances, train services will be delayed, but not cancelled/short- turned which however is necessary during disruptions. Due to the complexity of handling disruptions, contingency plans are designed beforehand for different disruption scenarios. When a disruption happens, the corresponding contingency plan is selected, and possibly modified by traffic controllers in terms of the specific condition (Ghaemi et al. 2017b). However, in either the design or modification procedure, passengers who should have been put first, are as yet not incorporated directly, because traffic controllers are unable to anticipate the passenger flows over the network. As a result, many alternatives for passenger reroutings are not considered, and thus passenger travel experiences during disruptions are usually less than satisfactory.

To support passenger-oriented train service adjustments, it is necessary to have a passenger assignment model that can anticipate the distribution of passengers. Based on the model, whether a timetable is passenger-friendly or not can be evaluated, and further how to adjust the timetable in a passenger-friendly way can be guided. Until now, passenger assignment models are mostly proposed for planning purposes or disturbance management (generally regarded as delay management), where services are considered to be reliable or with minor perturbations. When major disruptions like complete track blockages occur, multiple dispatching measures, e.g. retiming, reordering, cancelling and short-tuning trains, are commonly applied, which result in delayed trains, changed train orders, completely cancelled trains and short-turned trains (Ghaemi et al. 2017a). As a result, the train services available during disruptions are rather different from the ones on normal days, thus leading to rather different path options to passengers. For passenger assignment models during disruptions, it is necessary to formulate the major service variations properly and model passenger responses to such major service variations accurately. Therefore, this paper proposes a dynamic passenger assignment model taking major service variations, vehicle capacity, and time-dependent passenger all into account. A preliminary version of the model can be found in Zhu and Goverde (2017), which is improved by introducing a new network formulation and information interventions for altering passenger behaviour in this paper.

This paper considers passengers’ en-route travel decisions rather than passengers’ pre-trip travel decisions. This means that passengers are assumed to have planned paths in mind before they actually arrive at the origin stations, however, possibly they have to re-plan their paths due to major service variations, denied boardings or train congestion. Such an assumption is justified, since nowadays passengers can rely on various travel-planner applications or the official websites of operator companies to find their preferred paths. This is particularly true for passengers who have a clear travel purpose (e.g. commuters). Thus, once disruptions occur, passengers would make en-route travel decisions by comparing the alternative paths during disruptions with their planned paths.

Passenger attitudes towards path alternatives during disruptions could be different from the ones on normal days. For example, due to reduced operation frequency during disruptions, passengers may be willing to spend more waiting times at origin/transfer stations than usual. Considering this, a new method is proposed to formulate the network with less arcs, which ensures all paths that could be chosen by passengers to be fully covered. The formulated network is a directed acyclic graph (DAG) with passenger perceived times on arcs, based on which the optimal paths perceived by passengers can be searched using efficient shortest path algorithms.

Path alternatives can be different if passengers re-plan paths at different locations and times. This paper tracks the location of each passenger who starts travelling before, during, or after the disruption, and decides when and where he/she re-plans the path based on the information received. Information interventions are considered by delivering two kinds of information, service variations and train congestion, separately at different locations. Usually, the congestion effect is considered as the increase in travel times perceived by passengers (Cats et al. 2016; Larrain and Muñoz 2008). Instead, this paper aims to avoid travel time increase due to denied boarding, by using congestion information to affect passenger behavior in the following way. Imagine that a train is highly congested when departing from a stop, and there are still many passengers wishing to board this train at its next stop. It is possible that the train is unable to handle all these passengers. Thus, only some of them can board the train successfully, while the others have to be denied. If there must be some passengers being denied for boarding a train, avoiding them to choose the train may help them find better alternative paths compared to the ones they can find after being denied. Considering this situation, if a train is potentially unable to handle all passenger demand at its next stop, part of these passengers are notified with the congestion information in order to encourage them to choose another train, while the other part of these passengers are kept unaware of such information to ensure they will stay with their choice for this train.

The key contributions of this work are summarized as follows:

  • Proposing a new schedule-based passenger assignment model during major disruptions.

  • Developing a new network formulation to formulate the timetable as a directed acyclic graph (DAG) with passenger perceived times on arcs.

  • Taking time-dependent passenger demand, service variations, and vehicle capacity constraints all into account.

  • Formulating passenger responses towards major service variations, like short-turned or cancelled trains.

  • Using information interventions to influence passenger behaviour.

  • Dealing with passengers who start travelling before, during and after the disruption.

The remainder of this paper is organized as follows. Section 2 gives an overview of the relevant work. Section 3 explains the network modelling approach. In Section 4, the proposed dynamic passenger assignment framework is shown, followed by the explanation of the main parts in the framework. Next, the time complexities of the proposed algorithms are analysed in Section 5. Finally in Section 6, a case study of a complete open track blockage in part of the Dutch railway network is performed.

2 Literature Review

Passenger assignment models for transit systems are typically classified into schedule-based and frequency-based (Gentile and Noekel 2016), differing in whether passengers make route choices in terms of the timetable that indicates the departure/arrival time of each train at each station. In general, frequency-based models are suitable for such transit systems where the operations are so frequent that passengers can be assumed to board the first train when waiting at a station. While in railway systems where the operation frequency is relatively low, schedule-based models are commonly used, like Binder et al. (2017a) and Rückert et al. (2017).

Some assignment models are proposed for planning purposes, for example, identifying the phenomenon of macroscopic congestion of a proposed transit system. In these models, services are assumed to be constant or affected by minor perturbations that do not require dispatching measures to be applied. For instance, Khani et al. (2015) propose three path searching algorithms to make the assignment model perform efficiently on large-scale transit networks, by assuming that the operation is reliable and vehicle capacity is infinite. With limited vehicle capacity considered, Poon et al. (2004), Hamdouch and Lawphongpanich (2008), and Binder et al. (2017a) explore the interactions between the supply and the demand over time, which differ in the used priority rules for passenger boardings while share the assumption of trains operating precisely on schedule. In practice, service variations cannot be fully avoided. Thus, Nuzzolo et al. (2001), Hamdouch et al. (2014), and Cats et al. (2016) take service variations into account, and describe the variations as irregularities of train dwell and running times that are thought to be relevant to the passenger loadings of the corresponding trains. The considered train delays do not need timetable rescheduling, which means that train orders remain unchanged and no trains are cancelled or short-turned.

When train delays cannot be absorbed completely by the time supplements reserved in the timetable, timetable rescheduling becomes necessary. A typical question under such a case is that whether a train should wait for a delayed feeder train or better depart on time (wait-depart decision). This problem is generally regarded as delay management, where the relevant work mainly focuses on the optimization and thus the formulation corresponding to the passenger assignment is usually simplified by some assumptions. For example, Schöbel (2001) assumes that once passengers miss a transfer connection, they would wait for a complete cycle time to catch the next connection. Kanai et al. (2011), Dollevoet et al. (2012), Sato et al. (2013), and Corman et al. (2017) consider the alternative choices that passengers might have, where the capacities of vehicles are assumed to be infinite. While most papers consider the train delays as known input to the optimization, Rückert et al. (2017) observe the train delays in real time, and predict the passenger flows due to any possible wait-depart decisions to help the dispatchers make informed decisions. In these papers, train orders can be changed, but no trains are delayed significantly or cancelled/short-turned, which however take place during disruptions.

A few papers consider the passenger assignment during disruptions. Cats and Jenelius (2014) focus on disruptions that result in trains delayed significantly. The considered case is that the tracks between two stations are totally blocked for 30 minutes, and trains queue at the station before the blocked tracks during the disruption period. When the disruption ends, all these trains are again allowed to continue the following operations, assuming that all on-board passengers in these delayed trains are unable to alight from the trains at the holding stations. For a long-duration disruption that lasts for one hour or even more, it is unlikely to hold trains at stations, but more likely to short-turn them. In such a case, on-board passengers must alight from the trains, since the trains can no longer reach their expected destinations. Binder et al. (2017b) formulate the passenger assignment as a multi-commodity problem and integrate it with the rescheduling together constituting a passenger-oriented timetable rescheduling model for disruptions. The considered demand is the passengers who start travelling during the disruption. An assumption is implicitly made that all passengers collaborate together to achieve the system optimum. In the real world, passengers may intend to reduce their personal inconvenience without considering and of course incapable of considering the impacts of their choices on the system optimum. Thus, treating passengers as rational actors is necessary, which can be implemented by introducing priority rules for passenger boardings.

The literature does not consider passengers’ en-route travel decisions during major disruptions for which cancelling/short-turning trains are necessary. This paper fills the gap by proposing a schedule-based passenger assignment model to formulate the changes of passenger responses from normal situations to during disruptions.

The model is based on three assumptions, which are also used in Cats and Jenelius (2014) and Binder et al. (2017b). First, at the beginning of a disruption, the exact disruption end time is known, which will not be extended or shortened. This assumption can be relaxed by embedding the proposed model into an iterative framework where at each iteration the disruption end time is updated and the model is performed again based on the renewed disruption information and the corresponding disruption timetable. The second assumption is that for the railway operators, the disruption timetable is available directly at the beginning of the disruption. This is possible when applying a real-time optimization model (e.g. Ghaemi et al. 2017a) to compute the disruption timetable. The third assumption is that the passenger demand during disruptions is the same as on normal days. This assumption is relaxed due to setting the maximum acceptable delay of the re-planned path. In the model, a passenger can drop the railways if the delay due to the re-planned path is not acceptable. Thus, although a passenger is assumed to come to the railway origin station as planned, he/she could immediately leave if the planned path is inapplicable and the minimal delay across the current alternative paths provided by the railways exceeds the maximum acceptable delay. Such an immediate leaving is actually equal to not coming to the railways.

3 Event-Activity Network

A transit assignment model depends on the network formulation that enables travel path generation for passengers. This paper proposes a new approach to formulate the train services as a weighted DAG based on which the optimal paths perceived by passengers can be quickly searched. The characteristics of railway timetables (e.g. overtakings) and the fact that passengers might choose unusual paths (e.g. the ones with long waiting/transfer times at stations) during disruptions, are all considered in the proposed network formulation. As events are used to represent nodes and activities are used to represent arcs, the formulated network is called an event-activity network. In the following, different kinds of events and activities that are necessary to formulate the network are introduced, as well as the passenger preferred weights on the activities.

3.1 Events

There are four types of events in the formulated network. They are arrival events, departure events, duplicate departure events and exit events, which constitute the sets Earr, Edep, Eddep and Eexit, respectively. Therefore, the set of events is

$$ E=E_{\text{arr}} \cup E_{\text{dep}} \cup E_{\text{ddep}} \cup E_{\text{exit}}. $$
(1)

For each event eE, the attribute ste that indicates the corresponding station of e is assigned. Additionally for each event eEarr or Edep, two more attributes tre and πe are assigned, which refer to the corresponding train and occurrence time of e, respectively. An event eEddep is the duplicate of a specific departure event with the exactly same attributes that the departure event has. One and only one duplicate is created for each departure event. The reason of creating duplicate departure event is to construct waiting and transfer activities, which is explained in more detail in Section 3.2. The notation of event attributes is described in Table 1 while the attributes of different events are shown in Table 2.

Table 1 Notation of event attributes
Table 2 Attributes of different events

3.2 Activities

There are five types of activities in the formulated network. They are running activities, dwell activities, wait activities, transfer activities and exit activities, which constitute the sets Arun, Adwell, Await, Atrans and Aexit, respectively. In addition, Await consists of two sub-sets that are AddW and AadW, which correspond to the wait activities between duplicate departure events and the wait activities between arrival events and duplicate departure events. Namely,

$$ A_{\text{wait}} = A_{\text{ddW}} \cup A_{\text{adW}}. $$
(2)

Therefore, the set of activities is

$$ A=A_{\text{run}} \cup A_{\text{dwell}} \cup A_{\text{ddW}} \cup A_{\text{adW}} \cup A_{\text{trans}} \cup A_{\text{exit}}. $$
(3)

Running activities enable passengers travelling from one station to another:

$$ \begin{array}{@{}rcl@{}} {A_{\text{run}}} &=& \left\{ \left( {e,e^{\prime}} \right)\left| e \in E_{\text{dep}}, e^{\prime} \in E_{\text{arr}},tr_{e} = tr_{e^{\prime}}~\text{and}~st_{e}~\text{is~upstream}\right.\right.\\ &&\quad\left.\left.\text{neighbouring~to}~st_{e^{\prime}} \right. \right\}. \end{array} $$
(4)

Dwell activities enable passengers dwelling at the station in a train:

$$ \begin{array}{@{}rcl@{}} {A_{\text{dwell}}} = \left\{ {\left( {e,e^{\prime}} \right)\left| { e \in E_{\text{arr}}, e^{\prime} \in E_{\text{dep}},tr_{e}=tr_{e^{\prime}}~\text{and}~st_{e}=st_{e^{\prime}}} \right.} \right\}. \end{array} $$
(5)

Wait activities and transfer activities together enable passengers waiting to board trains at origins or transferring from one train to another at other stations:

$$ \begin{array}{@{}rcl@{}} {A_{\text{ddW}}} &=& \left\{ \left( {e,e^{\prime}} \right)\left|\vphantom{\frac{~}{A_{\text{ddW}}}} e \in E_{\text{ddep}}~\text{and}~e^{\prime}={\arg \min }\left\{\left.\pi_{{e}^{\prime}} \right|\pi_{{e}^{\prime}}>\pi_{e}:e^{\prime} \in E_{\text{ddep}},tr_{e^{\prime}}\right.\right.\right.\\ &&\left.\left.\left. \neq tr_{e},st_{e^{\prime}}=st_{e} \right\} \right. \vphantom{\frac{~}{A_{\text{ddW}}}}\right\}, \end{array} $$
(6)
$$ \begin{array}{@{}rcl@{}} {A_{\text{adW}}} &=& \left\{ \left( {e,e^{\prime}} \right)\left|\vphantom{\frac{~}{A_{\text{ddW}}}} e \in E_{\text{arr}}~\text{and}~e^{\prime}={\arg \min }\left\{ {\left. {\pi_{e^{\prime}}} \right|}\pi_{e^{\prime}}>\pi_{e}:e^{\prime} \in E_{\text{ddep}},tr_{e^{\prime}}\right.\right.\right.\\ &&\left.\left.\left.\neq tr_{e},st_{e^{\prime}}=st_{e} \right\} \right. \vphantom{\frac{~}{A_{\text{ddW}}}}\right\}, \end{array} $$
(7)
$$ \begin{array}{@{}rcl@{}} {A_{\text{trans}}} &=& \left\{ {\left( {e,e^{\prime}} \right)\left|\vphantom{\frac{~}{A_{\text{ddW}}}} { e \in E_{\text{ddep}}, e^{\prime} \in E_{\text{dep}},tr_{e}=tr_{e^{\prime}},st_{e}=st_{e^{\prime}}~\text{and}~\pi_{e}=\pi_{e^{\prime}}} \right.} \right\}. \end{array} $$
(8)

Here, Eq. 6 means that each duplicate departure event is linked to the next time-adjacent duplicate departure event that is at the same station but for another train. Similarly, Eq. 7 means that each arrival event is linked to the next time-adjacent duplicate departure event that is at the same station but for another train. Finally, Eq. 8 means that each duplicate departure event is linked to its original departure event.

Exit activities enable passengers to leave the railway system once arriving at the destinations:

$$ {A_{\text{exit}}} = \left\{ {\left( {e,e^{\prime}} \right)\left| { e \in E_{\text{arr}}, e^{\prime} \in E_{\text{exit}},st_{e}=st_{e^{\prime}}} \right.} \right\}. $$
(9)

In Fig. 1, the formulated event-activity network is shown for an example with four stations (i.e. A, B, C and D) and three trains numbered 1 to 3. The attributes corresponding to each event are enclosed in an ellipse, rectangle or circle that refer to an arrival/departure event, duplicate departure event or exit event, respectively. For instance, an ellipse with (dep,1,B) represents the departure event of train 1 at station B. A path is represented by a series of time-ordered events. For example, one of the paths available for a passenger who arrives at station A after time t1 but before time t2 and wishes to travel to station D is: (ddep,2,A) → (dep,2,A) → (arr,2,B) → (ddep,1,B) → (dep,1,B) → (arr,1,C) → (dep,1,C) → (arr,1,D). This path means that the passenger boards train 2 at station A, but transfers to train 1 at station B and stays in this train until the destination (i.e. station D).

Fig. 1
figure 1

Event-activity network

3.3 Weights of Activities

Usually, paths are perceived differently by passengers due to the path attributes like waiting time at the origin (torigin), in-vehicle time (tvehicle), waiting time at a transfer station (ttrans), and number of transfers (ntrans). A utility function is used to quantify the utility of each path by giving different weights on the path attributes. In this paper, the utility of a path r is quantified as:

$$ U_{r}={\beta_{1}}t_{\text{vehicle}}^{r}+{\beta_{2}}(t_{\text{origin}}^{r}+t_{\text{trans}}^{r})+{\beta_{3}}n_{\text{trans}}^{r}, $$
(10)

where β1, β2, β3 are the weights of the corresponding attributes of path r. Here, the values of β1, β2 and β3 are set as 1, 2 (Wardman 2004) and 10 (de Keizer et al. 2012) for each minute, respectively.

In this paper, the path utility calculation is realized in the procedure of path searching. This means that once a path is generated by a path search algorithm (e.g. shortest path algorithm, k-shortest path algorithm, etc.), the distance of this path is actually the utility of this path. For this purpose, different weights are assigned to different activities, as follows.

  • For each activity a = (e,e) ∈ ArunAdwell, the weight of a is set as \(\beta _{1}(\pi _{e^{\prime }}-\pi _{e})\).

  • For each activity a = (e,e) ∈ AddWAadW, the weight of a is set as \(\beta _{2}(\pi _{e^{\prime }}-\pi _{e})\).

  • For each passenger p, the weight of a transfer activity could be different depending on where the passenger started travelling. For an activity a = (e,e) ∈ Atrans, the weight of a is set as zero if ste = op (op is the origin of p). Otherwise (i.e. steop), the weight of a is set as a fixed value β3.

  • For each activity aAexit, the weight of a is set to the same positive value, since it is not used to distinguish paths.

The weights of all activities are contained in the set W. Thus, the formulated event-activity network is

$$ G=(E,A,W). $$
(11)

3.4 Searching the Optimal Path Perceived by Passengers

Let a passenger p have the attributes \((o_{p},d_{p},{t_{p}^{o}})\) referring to the origin, destination and actual arrival time at the origin, respectively. To search the optimal path perceived by p for the travel from op to dp, a pair of source and sink nodes should be given. Here, the sink node v is defined as

$$ v = \left\{ {e \in E_{\text{exit}}\left| {st_{e}=d_{p}} \right.} \right\}, $$
(12)

and the source node u is defined as

$$ u={\arg \min }\left\{ {\pi_{e}\left| {\pi_{e} \ge {t_{p}^{o}}} \right.}: e \in E_{\text{ddep}},st_{e}=o_{p} \right\}, $$
(13)

which means that the source node u is set as the duplicate departure event e at the origin station op, of which the occurring time πe is closest to the passenger’s arrival time at the origin \({t_{p}^{o}}\). Note that defining the source node this way takes the passenger’s choice about the boarding train at the origin into account. For example in Fig. 1, suppose (depp,1,A) is chosen as the source node for a passenger who plans to travel from station A to station D. Then, the passenger could take train 1 as the first boarding train, or also could wait a bit longer to take train 2 as the first boarding train.

With the assigned pair of source and sink node, the shortest path in utility can be searched, by performing a shortest path algorithm on the formulated event-activity network G, which by construction is actually a directed acyclic graph (DAG) with positive arc weights. Such a shortest path algorithm topologically sorts the nodes of DAG in passenger perceived times, thus making the predecessor node of an edge always appear before the successor node of the edge in a linear ordering (Cormen et al. 2009). Using the topological order, the shortest path is found in time complexity O(A + E).

Here, the optimal path perceived by a passenger p is represented by rp, which is first searched by the shortest path algorithm and then processed by excluding the duplicate departure events and the exit event. In other words, rp only consists of the events that directly serve the path. Based on rp, the departure/arrival events of p are extracted further, which correspond to the boarding/alighting actions. Here, Bp represents the set of departure events that correspond to the boarding actions of p at origin and transfer stations (if any), and Lp represents the set of arrival events that correspond to the alighting actions at transfer stations (if any) and destination.

Note that the way of deciding the source node in Eq. 13 is only for the passengers who are at the origins before travelling (and have not been denied for boarding). For the passengers who have already started travelling within trains, at transfer stations, or at the stations where they are forced to get off due to cancelled services, the ways of choosing the source nodes for searching paths are different, which are explained in Section 4.3.4.

4 Dynamic Assignment Model

The framework of dynamic passenger assignment during disruptions consists of three parts, as shown in Fig. 2.

  • Part I assigns each passenger to a planned path based on the original timetable.

  • Part II decides which passengers are affected under the disruption timetable due to delayed/cancelled services, and also decides when these affected passengers would re-plan the paths considering different locations of publishing service variations.

  • Part III simulates passenger loading and unloading procedures and also the path re-plannings of passengers because of service variations, denied boardings, or train congestion.

In what follows, the three parts are introduced successively. The used notation is described in Table 3.

Fig. 2
figure 2

Framework of the dynamic passenger assignment model during major disruptions

Table 3 Notation

4.1 Passenger Planned Path Assignment (Part I)

In part I, the original timetable is formulated as an event-activity network Gplan where the arrival events and departure events form the original ordered event list \(E_{\text {train}}^{\text {plan}}\). Passenger demand P is a given input, where each passenger pP is described with the attributes \((o_{p},d_{p},{t_{p}^{o}})\) that correspond to origin, destination and arrival time at the origin, respectively. The planned path \(r_{p}^{\text {plan}}\) of a passenger is searched by performing a shortest path algorithm on Gplan assuming that a passenger chooses the path with the minimum utility as shown in Eq. 10 to be the planned path.

4.2 Passenger Re-Plan Event Decision (Part II)

In part II, the disruption timetable is formulated as an event-activity network Gdis where the arrival and departure events form the updated ordered event list \(E_{\text {train}}^{\text {dis}}\). Comparisons are made between \(E_{\text {train}}^{\text {dis}}\) and the original event list \(E_{\text {train}}^{\text {plan}}\) to define the set \(E_{\text {train}}^{\text {cancel}}\) or \(E_{\text {train}}^{\text {delay}}\), which contains all events that are cancelled or delayed during the disruption. For each passenger p whose planned path is \(r_{p}^{\text {plan}}\),

  • if \(r_{p}^{\text {plan}} \cap E_{\text {train}}^{\text {cancel}} \neq \emptyset \), then \(r_{p}^{\text {plan}}\) is a cancelled path either partially or completely;

  • if \(r_{p}^{\text {plan}} \cap E_{\text {train}}^{\text {cancel}} = \emptyset \) and \(r_{p}^{\text {plan}} \cap E_{\text {delay}} \neq \emptyset \), then \(r_{p}^{\text {plan}}\) is a delayed path.

For the passengers whose planned paths are cancelled, they must reconsider path options. For the passengers whose planned paths are delayed only, they are also given the chance of re-planning paths in the model, while the possibility of staying with the original planned one is still kept in case no better alternative can be found. Here, the passengers whose planned paths are cancelled or delayed are called the affected passengers.

The affected passengers re-plan their paths at different locations and times, which is influenced by two factors: where they are at the moment the disruption occurs and how the information of service variations are delivered to them. The main purpose of Part II is to decide when and where an affected passenger will take the re-plan action, considering his/her location and two ways of publishing service variations, either at stations only or at both stations and trains.

4.2.1 Information of Service Variations is Published at Stations Only

Publishing service variations only at stations means that passengers can only know about the service variations at stations. Under this circumstance, a passenger would consider re-planning either at the planned origin/transfer station or at the station where his/her train is short-turned/cancelled. Figure 3 (Fig. 4) shows how to decide when and where a passenger p with a delayed (cancelled) planned path would re-plan, which is indicated by δp.

Fig. 3
figure 3

Deciding the re-plan events for passengers with delayed planned paths if disruption info is published at stations only

Fig. 4
figure 4

Deciding the re-plan events for passengers with cancelled planned paths if disruption info is published at stations only

The basic idea of Fig. 3 is that:

  • for a passenger p whose first planned boarding time at the origin is after the disruption start \(t_{\text {dis}}^{\text {start}}\), p re-plans at the origin (δp = μ),

  • for a passenger p whose first planned boarding time at the origin is before\(t_{\text {dis}}^{\text {start}}\) but the i th planned boarding (i ≥ 2 here) at a transfer station happens after\(t_{\text {dis}}^{\text {start}}\), p re-plans when arriving at the transfer station,

  • for a passenger p whose planned boarding time at the origin is before\(t_{\text {dis}}^{\text {start}}\) while p has no planned transfer or the planned transfers all happen before\(t_{\text {dis}}^{\text {start}}\), p will not re-plan (δp = ).

Figure 4 shows how to decide when and where a passenger p with a cancelled planned path would re-plan. The basic idea is that:

  • for a passenger p whose planned boarding time at the origin is after\(t_{\text {dis}}^{\text {start}}\), p re-plans at the origin,

  • for a passenger p whose planned boarding time at the origin is before\(t_{\text {dis}}^{\text {start}}\) but the i th planned boarding (i ≥ 2 here) at a transfer station happens after\(t_{\text {dis}}^{\text {start}}\),

    • p re-plans when arriving at the transfer station, if the transfer station is upstream relative to the short-turn station,

    • p re-plans when being forced to get off from the train at the short-turn station, if the transfer station is downstream relative to the short-turn station,

  • for a passenger p whose planned boarding times at the origin is before\(t_{\text {dis}}^{\text {start}}\) while p has no planned transfer or the planned transfers all happen before\(t_{\text {dis}}^{\text {start}}\), p re-plans when being forced to get off from the train at the short-turn station.

4.2.2 Information of Service Variations is Published at Both Stations and Trains

Figure 5 shows how to decide when and where a passenger p with delayed/cancelled planned path would re-plan, if service variations are published at both stations and trains.

Fig. 5
figure 5

Deciding the re-plan events for passengers with delayed/cancelled planned paths if disruption info is published at stations and trains

The basic idea of Fig. 5 is that:

  • for a passenger p whose planned boarding time at the origin is after the disruption start \(t_{\text {dis}}^{\text {start}}\), p re-plans at the origin,

  • for a passenger p whose planned boarding time at the origin is before\(t_{\text {dis}}^{\text {start}}\), the type of the latest occurring event e of the current train tr when the disruption starts determines δp:

    • δp is set as e, if e is an arrival event,

    • δp is set as e of which (e, e) is a run activity, if e is a departure event.

4.3 Passenger Realized Path Confirmation (Part III)

In part III, the passengers’ arrivals at the origins, the loading and unloading procedures and the re-plan actions are all implemented by discrete event simulation. Publishing train congestion information on trains or not is considered to constrain some passengers’ re-planned path choices. Note that publishing train congestion information at stations makes no sense for limiting passenger awareness of such information (i.e. all passengers can get any information published at stations), while publishing train congestion information at trains can let the passengers who are at the origins be unaware of such information. Therefore, an adaptive event-activity network \(G_{\text {dis}}^{*}\) is introduced, which is initialized as Gdis and further updated during the assignment by excluding some run activities of which the corresponding train congestions reach a specified level ratio. Passengers make re-planned path choices based on either \(G_{\text {dis}}^{*}\) or Gdis depending on whether they are informed with congestion information. This is explained in detail in Section 4.3.4.

In the following, the main algorithm (i.e. Discrete event passenger assignment), together with the three supporting algorithms (i.e. UpdateDep, UpdateArr and RePlan) are introduced successively.

4.3.1 Discrete Event Passenger Assignment

In Algorithm 1, different sets are initialized, and the previous system clock time is set as 0 (lines 1-3). In line 4, each event in \(E_{\text {train}}^{\text {dis}}\) is iterated over to implement a passenger arrival at the origin, and the loading or unloading procedure. \(E_{\text {train}}^{\text {dis}}\) is a given input, of which the contained events are previously sorted in time-ascending order and then in alphabetical order regarding the event type (arrival or departure), to ensure that the assignment proceeds with time, and an arrival event occurs before a departure event if their time instants are the same. In lines 5-6, the first element from \(E_{\text {train}}^{\text {dis}}\) is chosen as the current event e to be executed, and the current system clock time is set as the occurence time of e. In the loop starting from line 7, each arrival of a passenger at the origin between the previous and the current system clock time is simulated. In line 8, the origin arrival passenger p is included to the set Pcurr that contains all passengers who are currently staying in the railways. If p needs to re-plan at the origin, the function RePlan will be called to realize the re-plan action (lines 9-10). In line 11, p is excluded from P to avoid being included in Pcurr again.

If the current event e is a departure (line 12), then the passengers who want to board train tre are defined by Pboard (line 13). If Pboard is not empty (line 14), it is excluded from the set Pcurr (line 15) and the loadings of passengers in Pboard are implemented by calling the function UpdateDep (line 16). In line 17, the updated Pboard is included to Pcurr again. The reason of having lines 15 and 17 is that when executing UpdateDep, some passengers could be removed from Pboard to Pdrop, because they drop the railways due to denied boardings and no preferred alternatives can be found. Function UpdateDep also outputs Econgest and \(G_{\text {dis}}^{*}\), which are the set of departure events that correspond to potential congested run activities, and an adaptive event-activity network that excludes the potential congested run activities from Gdis.

figure a

If the current event e is an arrival (line 18), the passengers who want to alight from the arriving train are defined by Palight and the passengers who will re-plan paths when e occurs are defined by Preplan (line 19). If at least one of the two sets is not empty (line 20), the union PalightPreplan is excluded from Pcurr first (line 21) and then the function UpdateArr is called to implement the unloadings of passengers in Palight and the re-plan actions of passengers in Preplan (line 22). In line 23, the updated PalightPreplan is included to Pcurr again. The reason of having lines 21 and 23 is that when executing UpdateArr, some passengers could be removed from Palight to Parr because they reach the destinations, and some passengers could be removed from Preplan to Pdrop because they cannot find preferred re-planned paths and thus drop the railways. If train congestion information is published on trains (line 24), for each passenger who is dwelling at train tre and the next boarding train is highly congested as notified (lines 25-27), the passenger is given the chance of re-planning (line 28).

After finishing executing the current event, the previous system clock time is set to the current system clock time, and the current event is removed from the event list to be executed (lines 29-30).

4.3.2 Passenger Loading

figure b

In algorithm 2, if the available capacity \(cap_{tr_{e}}\) of a train tre is sufficient to cover all passengers Pboard who want to board the train, \(cap_{tr_{e}}\) is updated accordingly (lines 1-2). Then, for each pPboard, the current event e is excluded from the set Bp that contains all departure events corresponding to the boarding actions of p (lines 3-4). If the available capacity of a train can only cover part of the passengers in Pboard (line 5), \(cap_{tr_{e}}\) is updated accordingly (line 6) and then the passengers in Pboard are sorted in ascending order according to their arriving times at the current stations (line 7). Here, \(t_{p}^{\text {alight}}\) refers to the latest alighting time of passenger p, of which the value is initialized with 0 when p arrives at the origin and further be updated when p alights from a train at another station. Line 7 ensures the loading rule of first-come-first-served. The first \(cap_{tr_{e}}\) passengers in Pboard can board the train (lines 8-9), while the remainders are denied for boarding and RePlan is called for re-planning (line 10-12). If the available capacity of a train is zero, none of the passengers in Pboard can board the train, but only re-plan paths (lines 13-16).

Furthermore, if train congestion information is published and the congestion ratio of the train tre, \(\left (1-cap_{tr_{e}}/cap^{\max }_{tr_{e}} \right )\), has reached the specified congestion level ratio, then the departure event e that corresponds to the next run activity a of tre is added to Econgest (lines 19-20), while a is excluded from the adaptive event activity network \(G_{\text {dis}}^{*}\) (line 21). Here, \(cap^{\max }_{tr_{e}}\) represents the maximum number of passengers that train tre can hold.

4.3.3 Passenger Unloading

figure c

In algorithm 3, for each passenger p who wants to alight from the train tre, the available capacity of the train is updated accordingly (lines 1-2), and event e is excluded from the set Lp that contains all arrival events corresponding to the alighting actions of p (line 3). After that, an empty Lp means that passenger p has reached the destination (line 4), thus the actual destination arrival time \({t_{p}^{d}}\) is updated and p is removed from Palight to Parr (lines 5-7). If Lp is not empty, the latest alighting time \(t_{p}^{\text {alight}}\) is updated (lines 8-9). For each passenger who will re-plan path when e occurs, RePlan is called (lines 10-11).

4.3.4 Passenger Re-Planning

figure d

In line 1, the source and sink nodes (i.e. u and v) are determined for searching the re-planned path of passenger p (line 1). The sink node is always the exit event corresponding to the destination dp, while the source node u is different under different re-plan situations.

  • If Zj = Z1, u is set as the duplicate departure event that is closest to the passenger’s arrival time at the origin: \({t_{p}^{o}}\).

  • If Zj = Z2, u is set as the duplicate departure event that is closest to the current departure event e at the station ste.

  • If Zj = Z3Z4, u is set as the current arrival event e.

All re-plan situations are listed in Table 4.

Table 4 Re-plan situations

In line 2, the event-activity network G that is used to search the re-planned path of passenger p, is determined according to the values of FullInfo and Zj.

  • If FullInfo=Train, then train congestion information is published at trains only. Thus, G is set as \(G_{\text {dis}}^{*}\),

    • if Zj = Z2 and steop, which means passenger p re-plan paths due to denied boarding at the station that is not his/her origin, or

    • if Zj ∈ {Z3, Z4}.

    Passenger who satisfies either of the above conditions must have taken a train where he/she is notified with train congestion information.

  • If FullInfo=none, then train congestion information is published nowhere. Thus, G is always set as Gdis whatever Zj is.

In line 3, the optimal path r is searched through G, of which the destination arrival time is \({t_{r}^{d}}\) (line 4). Thus, the resulting delay of r is \(({t_{r}^{d}}-\hat {t_{p}^{d}})\) where \(\hat {t_{p}^{d}}\) is the planned destination arrival time of p.

If the delay is no longer than passenger’s maximum accepted delay η (line 5), r is chosen as the re-planned path (line 6), and the sets of events corresponding to the boardings and alightings are updated accordingly (line 7). Additionally for the re-plan situation of Z3 or Z4, a passenger who does not plan to alight from the train tre might now want to get off due to the re-planned path (lines 8-9). In such a case, the available train capacity, the set of alighting events, and the latest alighting time are all updated accordingly (lines 10-12).

If the delay of r is longer than η (line 13), the passenger will drop the railway. Thus, the set Pdrop and the set Pboard (or Preplan) are all updated accordingly (lines 14-15).

5 Time Complexity

Algorithm 1, the main algorithm working for passenger assignment, is based on three sub-algorithms (i.e. Algorithms 2,3 and 4), while Algorithms 2 and 3 also need to call Algorithm 4. Figure 6 shows the relations between the algorithms.

Fig. 6
figure 6

The relations between algorithms

In RePlan, lines 1, 3 and 7 require non-constant time. Line 1 takes O (|Eddep|) time, where Eddep represents the set of duplicate departure events. Line 3 takes O (|A| + |E|) time, where A and E refer to the activities and events contained in the formulated event-activity network, respectively. Line 7 takes \(O\left (\left | r_{p}^{\text {dis}}\right | \right )\) time, where \(r_{p}^{\text {dis}}\) refers to the re-planned path of passenger p, which contains all events that p will pass through. Thus, the time complexity of Algorithm 4 is

$$ \begin{array}{@{}rcl@{}} T_{Alg}^{4} &=& O\left( \left|E_{\text{ddep}} \right| \right)+O\left( |A|+|E|\right)+O\left( \left| r_{p}^{\text{dis}}\right| \right) ,\\ &\le& O\left( |E|\right)+O\left( |A|+|E|\right)+O\left( |E|\right),\\ &=& O\left( |A|+|E|\right). \end{array} $$

In UpdateArr, the for loop from line 1 to line 9 takes O (|Palight|) time, while the for loop from line 10 to line 11 takes O (|Preplan| ⋅(|A| + |E|)) time. Thus, the time complexity of Algorithm 3 is

$$ T_{Alg}^{3}=O\left( \left|P_{\text{alight}} \right| \right)+O\left( \left|P_{\text{replan}} \right| \cdot \left( |A|+|E|\right) \right). $$

In UpdateDep, line 7 takes O (|Pboard|log |Pboard|) time by using heapsort. Thus, lines 1-16 take O (|Pboard|log |Pboard|) + O (|Pboard| ⋅(|A| + |E|)) time. Because log |Pboard| ≪|A| + |E| and lines 17-21 take constant time, the time complexity of Algorithm 2 is

$$ T_{Alg}^{2} = O\left( \left|P_{\text{board}} \right| \cdot \left( |A|+|E|\right) \right) . $$

As for Algorithm 1, the while loop makes one iteration per event of \(E_{\text {train}}^{\text {dis}}\). Let N be the size of \(E_{\text {train}}^{\text {dis}}\), thus in all Nwhile iterations:

  • the for loop from line 7 to line 11 takes at most \(\sum \nolimits _{i = 1}^{N} {\left | {P_{{\text {ori}}}^{i}} \right |} \cdot \left ({\left | A \right | + \left | E \right |} \right )\) operations, where \(P^{i}_{\text {ori}}\) represents the set of passengers who arrive at the origins in the i th iteration. This is equal to O (|P|⋅(|A| + |E|)) time, where P represents the total passenger demand.

  • due to the calls of UpdateDep, lines 12 - 17 take at most \(\sum \nolimits _{i = 1}^{N} \left | {P_{{\text {board}}}^{i}} \right | \cdot \left ({\left | A \right | + \left | E \right |} \right )\) operations, where \(P^{i}_{\text {board}}\) represents the set of passengers who wish to board the train at the i th iteration. By defining m as the maximum number of boardings/alightings that a passenger may encounter, there must be \(\sum \nolimits _{i = 1}^{N} {\left | {P_{{\text {board}}}^{i}} \right |}=m{\left | P \right |}\). Because the maximum number of boardings/alightings corresponding to a passenger must be finite and relatively small, the time complexity is O(|P| ⋅ (|A| + |E|)).

  • due to the calls of UpdateArr, lines 18-23 take \(\sum \nolimits _{i = 1}^{N} {\left | {P_{{\text {alight}}}^{i}} \right |} + \left | {P_{{\text {replan}}}^{i}} \right | \cdot \left ({\left | A \right | + \left | E \right |} \right )\) operations, where \(P^{i}_{\text {alight}}\) (\(P^{i}_{\text {replan}}\)) represents the set of passengers who will alight from the train (re-plan paths) at the i th iteration. This is not larger than m |P| + |P| ⋅(|A| + |E|). Thus, lines 18-23 totally take O (|P| ⋅(|A| + |E|)) time.

  • lines 5-6 and lines 29-30 totally take O(N) time, where N is smaller than |E|.

If train congestion information is not published, the time complexity of Algorithm 1 thus is

$$ \begin{array}{@{}rcl@{}} T_{Alg}^{1} \!& =&\! O\left( {\left| P \right| \cdot \left( {\left| A \right| + \left| E \right|} \right)} \right) + O({\left| P \right|}\cdot(|A|+|E|)) + O\left( {\left| P \right| \cdot \left( {\left| A \right| + \left| E \right|} \right)} \right) + O(N), \\ \!&=&\! O({\left| P \right|}\cdot(|A|+|E|)). \end{array} $$

If train congestion information is published, in each while iteration of Algorithm 1, the for loop from line 25 to line 28, at most take |P| operations in case Pcurr = P and (PalightPreplan) = . In such a case, \(T_{Alg}^{1}\) becomes O (N ⋅|P|) + O (|P| ⋅(|A| + |E|)). As N < |A| + |E|, \(T_{Alg}^{1}\) is still O (|P| ⋅(|A| + |E|)), although train congestion information is published.

The notation used is given in Table 5.

Table 5 Notations used in proving the time complexity of Algorithm 1
Fig. 7
figure 7

The considered network

In summary, the time complexity of the proposed passenger assignment model is relevant to the size of the given passenger demand and the scale of the considered network. To reduce computational burden, one way is to group the passengers who share the same travel characteristics (e.g. the origins, the destinations, the arrival times at the origin, etc.). However, this is at the expense of assignment accuracy, since two passengers who have exactly the same travel characteristics could still be distributed to different trains if vehicle capacities are in short supply.

6 Case Study

6.1 Description

The model is applied to a subnetwork of the Dutch railways, where 17 stations are located and six train lines are operated (see Fig. 7). The disruption scenario is defined as a complete track blockage between stations Hze and Mz, which occurs from 7:57 to 9:00. Here, only the disruption timetable of the corridor where the disruption happens is shown (see Fig. 8), as the timetables of the other two corridors remain as planned. The number of nodes (events) and arcs (activities) in the network formulation are 2085 and 3539, respectively. In Fig. 8, the solid lines represent the services scheduled in the disruption timetable, while the dashed (dotted) lines represent the original scheduled services that are cancelled (delayed) in the disruption timetable.

Fig. 8
figure 8

Disruption timetable

Passenger demand is generated for the period from 7:00 to 10:00, which contains the time frame before the disruption starts, during the disruption and after the disruption ends, since passengers who start travelling during these hours could be influenced by the disruption. The total number of passengers who travel in the considered network during the considered period is 7515.

To consider information interventions, different schemes of information provision are set, which are listed in Table 6. Each row of Table 6 indicates the locations where service variations and train congestion information are published (i.e. ServiceInfo and FullInfo), the specified train congestion level (i.e. ratio) that triggers updating the congestion information, and the maximum accepted destination delay of each passenger (i.e. η). For example the current congestion ratio of a train is 0.85; if ratio is set as 0.85, then the operators update the congestion information by telling passengers that the next run of this train would be highly congested. However, if ratio is set as 0.9, no such information will be given to passengers, because the current congestion ratio of the train, 0.85, does not reach the level of 0.9. A train of which the congestion ratio currently reaches ratio, is thought to be potentially unable to satisfy all boarding demands for its next run. Thus, notifying some passengers with the congestion information can avoid them boarding the next run of the train, while some passengers who are not notified with information may still keep their choices. As for η, two kinds of values are set here, which are (\(\hat {t_{p}^{d}}-{t_{p}^{o}}\)) referring to the planned travel time of passenger p, and 63 min which is the defined disruption duration. The value of η may affect the number of passengers who drop the railways, which further affects the congestion of trains. Also baseline scenarios are created, in which neither service variations nor train congestion is provided. In these scenarios, passengers can only know the service variation when they really experience it themselves. For instance, a passenger knows he/she cannot board a train as planned when the train does not show up at the station due to delay or cancellation.

Table 6 Case study settings

6.2 Results

By applying the model on the defined disruption scenarios with the settings of Table 6, 18 results are obtained, which are shown in Table 7. In each result, three indicators are used, which are the number of dropped passengers, the number of denied boardings, and the travel time deviation. The computation time for scenario 9 is the least, which is 15 seconds, and the computation time for scenario 16 is the most, which is 26 seconds. The computation times for other scenarios are between these two.

Table 7 Results of disruption scenarios between stations Hze and Mz

The number of dropped passengers is calculated as |Pdrop|, and the number of denied boardings is calculated as \(\sum \nolimits _{p \in P} {{\lambda _{p}}}\) where λp represents the number of times a passenger being denied for boarding and P = ParrPdrop. The travel time deviation is calculated as

  • \(\sum \limits _{p \in {P_{{\text {arr}}}}} {\left ({{t_{p}^{d}} - \hat {t_{p}^{d}}} \right )} + \sum \limits _{p \in {P_{{\text {drop}}}}} {\left ({\hat {t_{p}^{d}} - {t_{p}^{o}}} \right )} \), when η is set as \(\hat {t_{p}^{d}}-{t_{p}^{o}}\), or

  • \(\sum \limits _{p \in {P_{{\text {arr}}}}} {\left ({{t_{p}^{d}} - \hat {t_{p}^{d}}} \right )} + {63}\left | {{P_{{\text {drop}}}}} \right |\), when η is set as 63,

where \({t_{p}^{d}}(\hat {t_{p}^{d}})\) represents the actual(planned) destination arrival time of passenger p, and \({t_{p}^{o}}\) represents the actual origin arrival time of passenger p. Note that \({t_{p}^{d}}\) could be smaller or larger than \(\hat {t_{p}^{d}}\), which means the total travel time deviation consists of both negative and positive individual travel time deviations.

6.2.1 Influence of Maximum Accepted Delay: η

It is found from Table 7 that the total travel time deviations in all cases are positive, which means that the actual travel times increase compared to the planned travel times. When the maximum accepted destination delay (i.e. η) is set as an individual’s planned travel time (i.e. \(\hat {t_{p}^{d}}-{t_{p}^{o}}\)), the travel time increases are the smallest, while the numbers of dropped passengers (i.e. 551 or 565) are the largest (scenarios 1-9). When η is set as the disruption lenth (scenarios 10-18), the travel time increases grow, while the numbers of dropped passengers reduce. These indicate that

  • the provided disruption timetable leads to 565 passengers to whom the increased travel time in the railways is at least equal to the planned travel time, and

  • the limited vehicle capacities lead to more travel time increase when more passengers remain in the railways to reach the destinations.

If operators aim for a low travel time increase while satisfying passenger demand as much as possible, one way is to design a disruption timetable that provides faster services and ensures less denied boardings by adjusting the schedules to distribute passengers wisely. However, this is rather challenging, since many factors (e.g. passenger behaviour, vehicle capacities, infrastructure restrictions, etc.) need to be considered in the rescheduling. Thus, another way is proposed, information intervention, which is easier to be implemented in practice. Here, information intervention means that operators provide passengers at different locations with different information about service variations or train congestion.

6.2.2 Influence of Information Intervention

When η is set as \(\hat {t_{p}^{d}}-{t_{p}^{o}}\) or 63 min, compared to not updating passengers with any information (scenario 9 or 18), providing information for them (scenarios 1-8 or 10-17) helps to reduce the number of dropped passengers, the number of denied boardings, and/or the travel time increase. This indicates that it is helpful to update passengers with certain information during disruptions.

When η is set as \(\hat {t_{p}^{d}}-{t_{p}^{o}}\), providing service variations at both stations and trains (scenarios 5-8) always lead to less travel time increases compared to the cases in which service variations are announced at stations only (scenarios 1-4). However, publishing train congestion information does not make any sense, since no one has been denied for boarding even though train congestion information is not published. This indicates that

  • if vehicle capacities are not in short supply, publishing service variations at both stations and trains is able to reduce more travel time increase, compared to publishing service variations at stations only.

This is because by additionally receiving service variations on trains, the on-board passengers at the moment the disruption occurs can re-plan paths just at the next stop of the train rather than several stops later where they get off from the train, and such earlier re-plans help to find better alternatives which result in less travel time increases.

When η is set as 63 min, more passengers remained in the railways and thus some passengers were denied for boarding due to insufficient vehicle capacities. Under this circumstance, additionally publishing train congestion information on trains helps to reduce travel time increase, if ratio is set to an appropriate value. For example when service variations are published at stations only, compared to not publishing train congestion (scenario 13), publishing such information on trains leads to better performance when ratio is set as 0.8 or 0.9 (scenario 10 or 11), or does not change performance when ratio is set as 1 (scenario 12). These phenomena are also found in the cases where service variations are published at both stations and trains (scenarios 14-17). These indicate that

  • if vehicle capacities are in short supply, the performance of publishing train congestion on reducing travel time increase is influenced by the value of ratio.

For example if ratio is set as 0.8 and the current congestion ratio of train tr1 is 0.85, then the information that tr1 is highly congested is published to on-board passengers, which prevent them from boarding the next run of tr1, while the passengers who wait at their origins to board the next run of tr1 still keep their choices. In this way, passengers who demand for boarding the next run of tr1 are distributed, since tr1 is thought to be highly congested now and may be unable to satisfy all demands later. If there must be some passengers being denied for boarding a train, avoiding them to choose the train may help them find better alternatives compared to the ones they can find after being denied. It is also possible that all subsequent demands are satisfied if these demands are small, or lots of passengers get off before the next run, thus avoiding some passengers boarding the train might not be helpful since the avoided passengers may not be able to find better alternatives. Clearly, the setting of ratio is important, which decides whether publishing train congestion is good or not. One way to ensure the accuracy of ratio is to assign each train with a customized ratio that varies with times and locations according to the estimated boarding demand and alighting amount. However these are also hard to be estimated accurately, as during the period from the departure of the current run to the departure of the next run, there could be extra demand or alightings emerging. In this paper, a general value of ratio is set to to all trains, while it would be interesting to enable a dynamic customized ratio to each train in future research.

6.2.3 Impacts on Passengers Who Start Travelling Before/During the Disruption

In the model, the passengers who start travelling before the disruption, but are still within the railways at the moment the disruption occurs, are also considered explicitly. According to the case study results, these passengers are affected a lot by the disruption, thus overlooking them in the assignment model is unreasonable. In Figs. 9 and 10, the individual delays of scenario 1 and 10, are shown respectively, which are distinguished by passengers’ travelling start time. As few passengers who start travelling after the disruption ends (i.e. 9:00) are delayed (9 individuals in scenario 1 or scenario 10), only the individual delays of passengers who start travelling before or during the disruption are shown. It is found that under the same setting of η (i.e. the maximum acceptable destination delay), individual delays are not significantly different. Thus, scenario 1 is chosen as the representative of setting η to individual planned travel time, and scenario 10 is chosen as the representative of setting η to the defined disruption lenth. Individual delay is only calculated for the passenger who actually arrived at the destination later than planned. Thus, individual delay is calculated as \({t_{p}^{d}}-\hat {t_{p}^{d}}\) for pParr, if \({t_{p}^{d}} > \hat {t_{p}^{d}}\). For pPdrop, individual delay is computed as the corresponding value of η. Note that in Figs. 9 and 10, individual delays are shown in ascending order, and an individual numbered in Fig. 9 does not correspond to the individual numbered the same in Fig. 10.

Fig. 9
figure 9

Individual delays of scenario 1 (η=individual planned travel time)

Fig. 10
figure 10

Individual delays of scenario 10 (η=disruption length)

Figures 9 and 10 both show that passengers who start travelling before the disruption are delayed more seriously. Most individual delays are below 50 minutes in Fig. 9, while in Fig. 10, there are a lot of individual delays reaching 60 minutes. This indicates that most passengers’ planned travel times are below 50 minutes and it is hard for them to find the alternatives of less than 50 minutes delay under the current disruption timetable, while the congestion issue increases passenger delays further. To reduce passenger delays, one way is to improve the disruption timetable by providing passengers with better alternatives (i.e. less resulting delays), which could be done by incorporating passenger responses into timetable rescheduling. Additionally, it is found that there are 21 passengers in scenario 10 being delayed, not because of service variations (i.e. their planned paths are not cancelled/delayed) but due to denied boardings only. Under these circumstances, increasing vehicle capacities or providing alternatives outside the railways (e.g. shuttle buses), would be helpful to reduce passenger delays.

7 Conclusions and Future Research

In this paper, a dynamic passenger assignment model is proposed considering major disruptions that require trains to be cancelled or short-turned. Information interventions are introduced by delivering the information of service variations and the information of train congestion at different locations. By applying the model on part of the Dutch railway network where a complete track blockage is assumed during one morning peak hour, it is found that when vehicle capacities are always sufficient (i.e. no denied boarding), publishing service variations at both stations and trains helps to reduce the travel time increase due to the disruption, while additionally publishing train congestion does not make any sense. When vehicle capacities are in short supply (i.e. denied boardings exist), additionally publishing train congestion can reduce the travel time increase due to the disruption, of which the performance depends on how a train is defined as highly congested in order to proactively avoid some passengers boarding the next run of the train.

Although only one case is performed in this paper, more applications could be performed with the proposed model. For example, considering the fluctuation of day-to-day passenger demand and the frequency of disruptions, reasonable vehicle capacity reservations for improving the service resilience during disruptions can be proposed. Besides, the proposed assignment model will be applied on larger networks and combined with rescheduling models in the future, where passengers will be grouped to speed the computation.