A rolling horizon optimisation model for consolidated hump yard operational planning

A rolling horizon optimisation model for consolidated hump yard operational planning

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx Contents lists available at ScienceDirect Journal of Rail Transport Planning & Ma...

2MB Sizes 1 Downloads 18 Views

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

Contents lists available at ScienceDirect

Journal of Rail Transport Planning & Management journal homepage: www.elsevier.com/locate/jrtpm

A rolling horizon optimisation model for consolidated hump yard operational planning Sumit Raut, Sudhir Kumar Sinha∗, Harshad Khadilkar∗∗, Shripad Salsingikar∗∗∗ Decision Sciences and Algorithms Lab, TATA Consultancy Services Ltd., Andheri (E), Mumbai, 400–093, India

ARTICLE INFO

ABSTRACT

Keywords: Logistics Railway hump yard operations Mixed integer linear programming Rolling horizon

This paper presents an optimisation formulation for consolidated planning of railway hump yard operations. The objective is to minimise the average dwell time of railway cars in the yard, while satisfying constraints related to (i) incoming (outgoing) train arrival (departure) times and composition, (ii) car movement sequencing, and (iii) the limited capacity and number of classification tracks. We present a mixed-integer linear programming formulation that combines three stages of decision making; inbound train humping, railcar classification and outbound train construction. The consolidated approach enables a natural linking between capacity constraints at various stages of the system. However, the scale and complexity of the resulting problem requires some relaxation, with the optimisation model providing a high-level plan, and a lowlevel heuristic handling the detailed implementation. The high-level optimiser determines hump schedule of the inbound trains, block-to-classification track assignment, and pull-out schedule at coarse level by dividing the planning horizon into discrete time intervals and trains into groups of consecutive cars (segments). The low-level heuristic converts the resulting instructions into finegrained decisions spatially (at the individual car level) and temporally (the actual duration required for each action). The proposed approach is implemented on a rolling horizon basis, and is used to solve a 42-day, 52246-car example.

1. Introduction Freight rail traffic forms a substantial fraction of all rail movements, especially in the United states. The proportion of freight moved by railway is approximately 40% by ton-miles and represents a 60 billion USD industry (US Department of Transportation: Federal Railroad Administration, 2010, 2012). As a result, the efficient management of rail cars throughout the network is critical to the smooth functioning of freight operations. Individual railcars often travel from origin to destination via more than one freight train service, through several intermediate points known as classification yards. These yards are facilities for disassembling incoming trains into individual cars, sorting the cars into groups based on their eventual destination (blocks), and assembling them into outbound trains. They act as consolidation nodes in a rail freight network, analogous to hub airports in an airline network. In the US, the ‘Class I’ railways have 51 major classification yards and process over 28 million cars per year (Dick and Dirnberger, 2014). On average, a car spends two-thirds of its time in yards during its journey from origin to destination. The majority of time spent in the yard accounts

Corresponding author. Corresponding author. ∗∗∗ Corresponding author. E-mail addresses: [email protected] (S. Raut), [email protected] (S.K. Sinha), [email protected] (H. Khadilkar), [email protected] (S. Salsingikar). ∗

∗∗

https://doi.org/10.1016/j.jrtpm.2018.09.002 Received 12 February 2018; Received in revised form 18 September 2018; Accepted 19 September 2018 2210-9706/ © 2018 Elsevier Ltd. All rights reserved.

Please cite this article as: Raut, S., Journal of Rail Transport Planning & Management, https://doi.org/10.1016/j.jrtpm.2018.09.002

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Fig. 1. Layout of a typical hump yard.

for non-value-added idle time (Dirnberger and Barkan, 2007; Lin and Cheng, 2009). The efficient operational planning at the yard will reduce dwell times of cars (the time spent from arrival to departure) and therefore will improve overall network efficiency. A hump yard is a type of classification yard that uses gravity to direct cars onto their designated classification tracks. The lower portion of Fig. 1 depicts the typical layout of a hump yard. It is divided into three main areas: (i) receiving yard, (ii) classification bowl, and (iii) departure yard, each of which consists of a set of parallel tracks. The upper portion of Fig. 1 shows the corresponding processes taking place in the hump yard. The inbound train, on arrival, is stationed at one of the tracks of the receiving yard. Its locomotives are uncoupled, cars are inspected for structural integrity and safety, and the pneumatic brakes are released. The hump engine pushes the entire inbound train over the hump, and each car is dissembled and directed onto its designated classification track. The pull-out engine pulls a group of rail cars from the departure end of the classification track to their designated track in the departure yard. The cars are assembled in accordance with predefined standing order of the blocks in the outbound trains. The outbound trains depart from the departure yard after necessary technical inspections. The optimisation formulation presented in this paper is designed to solve a realistic problem instance, first defined in the 2014 Problem Solving Competition organized by the Railway Applications Section of the Institute for Operations Research and Management Sciences (INFORMS, 2014). Consequently, our objectives and constraints (and accompanying assumptions) are based on the requirements stated by INFORMS RAS. The major characteristics of the formulation presented in this paper are as follows:

• The receiving and departure yards have unlimited number and length capacity. Track capacity constraints are only of significance in the classification yard. • A limited number of hump engines, pull engines, and classification tracks are available. The classification tracks have finite length capacity. • The arrival times and car details of inbound trains are known in advance (deterministically). The car details include their positions • •

• •

in the trains, their lengths, and their final destinations (blocks). The cars of a specified block are usually not positioned consecutively in an inbound train, but are distributed throughout the train. Every inbound train must be fully processed (humped) for a successful solution outcome. The humping process for a given train, once started, cannot be preempted by another train, but can be paused for some time if required. This is known as single-stage sorting (Boysen et al., 2012). A fixed time duration is required for humping each car in a train, regardless of its length. The hump duration of a train is thus directly proportional to the number of cars that it contains. Each humped car must be assigned to a classification track, creating lines of cars belonging to the same outbound block (final destination). A track may have multiple outbound blocks at a time, as well as more than one classification track may simultaneously be assigned to the same block. Also, this assignment can change from time to time. If a block is split in multiple lines on a track, then only one line can be pulled out for an outbound train as all cars in a block need to stay together in the outbound train. Further, when a block is split across multiple tracks, a pull engine can only process cars from one classification track at a time. The model presented in the paper simplifies this operational setting of the hump yard by not allowing cars from different blocks to be allocated to the same track at the same time. But, a track can be allocated to different blocks over the period of time. Outbound train services to various destinations are scheduled to depart at fixed times every day. Each outbound train contains a specified ordered set of outbound blocks. The outbound train may not include an assigned block, if (i) there is no car of this block in the classification yard at the time the train is built, or (ii) it is not feasible to pull out the block. The trains have finite capacity, and can be ‘built’ only within a defined time window before departure. In the instance presented in this study, the outbound trains are not delayed past their scheduled departure times. The limited number of pull engines places a restriction on number of pull jobs active at a given time. The pull engine requires a fixed amount of time to perform a single track pull, irrespective of the number of cars being pulled. The operational constraint enforces one-to-one assignment of pull engines to classification tracks.

In summary, given the arrival (departure) times and the composition of the inbound (outbound) trains, the problem is to compute the hump times of the inbound trains, block-to-track assignments and the assembly schedule of the outbound trains. The plan should adhere to operational constraints and minimise average dwell time of rail cars in the yard. The design of a good operational plan is challenging as it is subject to a number of interdependent constraints due to limited resources and specific classification requirements. 2

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

We emphasise the inventory balance of rail cars at the classification tracks at each discrete time point over the stated planning horizon, and use this as the core of our mathematical modelling based solution approach. The proposed solution approach is an iterative process based on a rolling horizon framework, similar to the one described in Sethi and Sorger (1991). At each step, an operational plan is generated for a reduced horizon, and this horizon shifts forward in the next step. One of the key features of our solution approach is a consolidated decision process for hump and assembly schedules, as well as block-to-track assignment decisions adhering to railcar standing order constraints. The combination of discrete resources (railcars, classification tracks) into larger and fewer objects (segments, groups of tracks) help us to formulate a mathematical model which determines hump schedule of the inbound trains, block-to-classification track assignment, and pull-out schedule simultaneously at coarse level. To the best of our knowledge, such a mathematical model for the hump yard scheduling problem has not been previously published in literature. The outline of the paper is as follows: the following section provides an overview of the relevant literature on operational planning at a classification yard. Section 3 elaborates on the solution approach, along with notation and mathematical model. Section 4 presents the results of the computational experiments. The paper concludes in Section 5 with suggestions for further research. 2. Literature review Freight transportation by railroad involves planning at different levels of decision making and stages of operation. This includes problems of yard location (where to locate yards), railroad blocking (what blocks to make and how to route traffic over these blocks), train schedule design (decides on train route and days of operation), block-to-train assignment (which block is assigned to which train), train dispatching (which train to move and at what time), locomotive scheduling (which locomotives is assigned to which train), and so on (Ahuja et al., 2005; Patty, 2015). This paper investigates an operational planning problem at a classification yard. Planning of hump yard operations has been addressed in literature for over three decades. Initial studies were limited to addressing subsets of the overall problem, due to computational constraints. There is a stream of work focused on analysing schemes of sorting cars under multi-stage sorting settings in the classification yard. The comprehensive review of the quantitative approaches to classification yard operations is given in Boysen et al. (2012). Below we present a brief summary of studies relevant to our problem setting. Yagar et al. (1983) presented an algorithm to select a subset of inbound trains for humping, according to load and priority. The selected trains were then sequenced using a dynamic programming approach to minimise throughput cost. More recently, Şahin and Ahuja (2011) also studied the hump sequencing problem by characterising it as a single-machine scheduling problem with stepwise tardiness cost. They developed mathematical programming formulations to solve for the best hump order. The proposed heuristic algorithms were tested on a real-life data set of a medium size US rail yard. Kraft (2000, 2002a,b) described the development of a ‘Terminal Priority Movement Planner’, which improves connection reliability in hump yards. The hump sequencing and block-to-track assignment problems are decoupled and solved sequentially. The hump sequencing problem is formulated as a mixed integer non-linear programming model and solved using breadth-first branch and bound search. The optimisation model minimises delays associated with holding of outbound trains to protect connections. The block-to-track assignment is developed using a rule based approach which minimises the number of re-hump cars. He et al. (2000) presented a fuzzy multi-objective mathematical model for the rail yard dispatching problem, combining the objectives of yard throughput and on-time service. The model considers outbound train size, assembly due time, and classification/ assembly start times as fuzzy variables. The plan generates classification and assembly schedules as well as assignments of cars to the outbound trains. They used hybrid approach of genetic algorithm and local search to solve the model. Subsequently, He et al. (2003) presented an integrated model for the dispatching problem considering limited resources of engines, hump and tracks. This model forgoes fuzzy assumptions on variables. The problem is formulated as a mixed 0–1 programming, decomposed into several interacting sub-problems and solved using heuristics. Both of the models do not consider allocation of cars to classification tracks as well as standing order of cars (blocks) in inbound (outbound) trains. Li et al. (2016) studied similar rail yard dispatching problem considering various train-size limitations. They used a heuristic approach based on harmony search to solve the problem. They analysed benefits of dynamic sequencing of inbound train classification and outbound train assembly against static sequencing, i.e., first-come first service and first-departure first-service. Bohlin et al. (2011a, b) studied the operational planning problem of a Swedish hump yard. They allocate classification tracks to outbound trains based on known arrival/departure times and composition of inbound trains. Unlike the present study, they limit the use of most classification tracks to at most one outbound train at a time. The few mixed-occupancy tracks are re-humped at prespecified times. They modelled the problem using mixed integer programming and proposed both the exact and heuristic based solution approaches. Bohlin et al. (2012) presented an alternate extended integer programming model of the same problem and devised a column generation approach based on branch-and-price. The solution approach was able to find optimal solutions for all the tested problem instances with computation time of less than 13 min. In the same operational setting, Bohlin et al. (2015) reformulated the problem as an arc-based integer program and presented a rolling-horizon solution framework. Shi and Zhou (2015) studied a variant of the yard planning problem for computing hump times (for inbound trains) and assembly schedules (for outbound trains). The spatial capacity constraints were modelled using a cumulative flow count-based representation in the proposed mixed integer programming model. The tight valid inequalities using lot-sizing framework were introduced for improving the quality of the linear programming relaxation. They also proposed heuristics to determine hump sequence of the inbound trains, which helped reduce the search space for the mathematical model. Importantly, two prior studies have addressed the exact problem instance that is studied in the current work. Haahr and Lusby (2016) proposed a ‘matheuristic’ framework based on decomposition into three interdependent sub-problems, (i) hump sequencing 3

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Fig. 2. Illustration of the rolling horizon framework.

(ii) block-to-track assignment and (iii) pull allocation. The hump sequencing and pull allocation was solved using optimisation based solution approaches, whereas block-to-track assignment was solved using heuristics. The major difference between Haahr and Lusby (2016) and the present approach is our inclusion of all three decision areas (humping, classification, and pull-outs) into a single optimisation framework. In our view, this consolidated approach enables tighter coupling between inventory input and output. While computational considerations have restricted the exploitation of its full potential, we believe that the insights presented in Section 5 represent significant steps towards achieving maximum performance from existing hump yard infrastructure. On the other hand, Khadilkar and Sinha (2016) proposed a rule-based framework for managing hump yard operations. They defined rules based on the state of the classification bowl, for taking decisions related to train selection for humping, block to track assignment, and pull-outs. The simulation approach allowed for higher fidelity and more flexible modelling, but did not achieve the same level of optimality. Khadilkar and Sinha (2016) were only able to match the dwell times of Haahr and Lusby (2016) when the authors allowed for delayed train departures and the occupation of the same classification track by more than one block of cars. 3. Solution methodology The proposed solution approach is a mathematical model, mixed-integer linear programming model, embedded in a rolling horizon framework. The model emphasises on balancing inventory of rail cars at the classification tracks and synchronizing operations at various stages of the system. It decides on hump sequence, block-to-track assignment and pull-outs concurrently. However, the scale and complexity of the resulting problem requires some relaxation. Therefore, we combine discrete resources into larger and fewer objects while developing the mathematical model which generates plan at coarse level. Later, a low-level heuristic maps this to finer level of detail. The operational plan of the entire planning horizon H is generated on a rolling horizon basis (background in Sethi and Sorger (1991), and illustration in Fig. 2). Here, the plan is generated for a rolling time horizon H in each step, and is implemented (frozen) H . The start and end times of the horizon move forward by τ in the next step. for a duration We begin the explanation of the solution methodology by introducing notation, and follow this by the modelling framework and assumptions. The processing algorithm is explained in Section 3.3. 3.1. Notation Inbound trains: Let I be the set of all inbound trains in H . Each inbound train i I arrives at time ai and constitutes a set of m railcars Ci = {ci1, ci2, …} , where cim is the car at position m in the inbound train i. Let m i be the length (in feet) of this car, and bi be its designated outbound block (destination). The problem definition assumes a constant time required for processing each car over the hump. Classification tracks: The set of classification tracks is given by K , each track k has finite length Wkmax . Outbound train services: The set of outbound trains is denoted by J . This set is composed of a daily repeating pattern of trains with the same departure times and the same block configuration. We denote the set of trains departing on day t by Jt , with J = Jt . Each outbound train service j departs every day at a specified time dj , and carries a set Bj of outbound blocks. It has a maximum length capacity V jmax . On a given day t, we denote an instance of j by otj with a departure time dtj , equivalent to time dj on day t. Bj has a specified standing order n in train service j. All cars attached to otj Outbound train configuration: Each outbound block bnj should follow the block standing order, so that cars belonging to block b1j are grouped at the front of the train, followed by cars belonging to bj2 , up to the last block in the current train. The problem instance that we have studied contains a strict many-to-one mapping between blocks and outbound trains, such that Bj Bj = for every pair of trains (j, j ) . This implies that a block is served by exactly one outbound train, but an outbound train may have multiple blocks. In other words, the block of the car at position m in the inbound train i (bim ) is attached to a unique outbound train j with a specified standing order for that block in the outbound train (bnj ). The actual departure of car cim may happen on any day t (outbound train otj ), subject to the various problem constraints. A fixed time window of duration δ is provided for building each outbound train otj . This implies that cars can be pulled from classification , dtj ]. Note that after assembly of the outbound train, a finite tracks and attached to otj only within the time interval Atj = [dtj amount of time is spent on completing necessary activities such as inspection, coupling of the engine, etc. before departure of the outbound train. This can be accounted into the model by modifying upper bound of the assembly time window. In the current model implementation, the rolling horizon H is selected such that at most one instance of each outbound service j remains active. Furthermore, the daily departure time dj is assumed to be fixed. A comprehensive list of terms and notation has been provided in Appendix B. 4

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Fig. 3. Equivalence of activity durations in the current problem.

3.2. Modelling framework We use a discrete representation of time, by splitting the planning horizon H into P equal time intervals. We assume pull time , time spent to perform a single track pull by a pull engine, as a length of the time interval. The duration of pull time accounts for the pull operation as well as the time required to get ready for the next pull. This selection introduces operational requirement of a minimum time gap between consecutive pull outs by a pull out engine implicitly, without using additional variables and constraints H in the mathematical model. The set P of time intervals consists of P = {1, …, P } . Here, P = . Humping of incoming trains is also

mapped to the time interval , by defining the number of cars that can be humped in this time as a segment. An illustration of this equivalence is given in Fig. 3. In our test case, we are given that the discrete time intervals are = 20 minutes long and the humping rate α is 2 cars per minute, thus the maximum number of cars in one segment is 40 (with any mix of outbound blocks). If an inbound train i I contains more than 40 cars, it is split into multiple segments. The last segment of i may have fewer cars than this number. Let Si be the set of segments of inbound train i and siq be the qth segment in this train. We denote by iq, b the total length of all cars in siq with outbound block b B , where B is the set of all possible outbound blocks. All siq must be processed sequentially in order of q, and one train must be completed before another can be humped. A segment s of inbound train i becomes available for processing only after its preceding segments (q < q) get processed. This earliest time of availability (called the release time rs ) of a segment s at the qth position in train i, is given as ai + (q 1) . Fig. 4 schematically represents the components of a hump yard, using the notation introduced in this section. Modelling the humping process: The high-level optimiser maps the segments as defined above, to β-duration time intervals for humping. Based on our definition of a segment, only one segment can be humped in one time interval. Additionally, the mapping of segments to time periods is subject to the availability of space in the classification tracks at those times. This constraint ensures that the cars of a segment are humped without stoppage, and is also responsible for linking the three functional portions (hump, classification and pull-out). To avoid partial humping of trains, all segments siq Si are allocated in consecutive time intervals based on order q. This feature, introduced for modelling simplicity, is more restrictive than the more general problem definition which allows stoppages. The consecutive allocation constraint can be relaxed while still preventing partial humping of a train: for example, by i between first and last segment allocations of i. Note that the rolling forbidding allocation of a segment belonging to any train i horizon H may end before a given train is fully humped. This is allowed in the model, with a pre-processing code ensuring that the remaining segments are allocated at the start of the next optimisation iteration. Note that the model does not explicitly account for

Fig. 4. An illustration of various portions of the hump yard. 5

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

safety gaps in the humping process. We can artificially induce these gaps by introducing dummy (non-existent) cars at the end of each train. Modelling outbound block to classification track allocation: During each rolling window H, we assume that a classification track can be allocated to at most one outbound block. The same track can be assigned to another block in a subsequent window, provided that it is empty at the start of the window. This ensures that each track is reserved for a single outbound block for at least the freeze duration τ. Even though the block-to-track assignment remains static within each rolling window of length H, it is dynamic over the total planning horizon H . The residual capacity available for each outbound block at the start of a rolling window is the unoccupied length of the tracks reserved for this block, carried over from a previous window. More than one track can be reserved for a given block (but not vice versa). However, such parallel classification tracks reserved for a given block are treated as a single track, with its length equal to the total length of the reserved tracks. This simplifies the computational procedure. The mapping back to the actual layout is handled by the low-level heuristic described in Section 3.3.3. Modelling pull-outs and outbound train building: Analogous to the hump allocation, pull-outs from classification tracks are mapped to time periods by the high-level optimiser. We assume that the space freed up by pull-outs is available immediately for newly humped cars (no time lag). Therefore, we implicitly assume that the pull out gets executed first at the start of the time interval and thereafter cars can be humped on the tracks. However, a car being humped in a given time interval cannot be pulled out in the same time interval. In practice, the layout of the yard, i.e., the switches and the number of connecting tracks between classification and departure yards, may be the limiting factor. The number of pull-out engines, E max , constrains the maximum number of parallel pullout jobs assigned in a single time interval. The feasibility of a pull-out is driven by the departure time of the outbound train (must be less than δ time units away) and its remaining capacity. At most one classification track can be pulled to a given outbound train in a single interval. The optimisation formulation assigns pull-outs from blocks (perhaps split into multiple tracks) to outbound trains. The low-level heuristic picks the actual classification track belonging to the assigned block. Fig. 5 illustrates an example of parallel tracks and their representation in the optimisation formulation. Here two tracks k1 and k2 with capacities of W1max and W2max respectively are reserved for the same block, and are filled up to lengths W1 and W2 respectively. The model represents these tracks as a single track of length W1max + W2max . The maximum pull-out length assigned in one time period is limited by the model to min(W1 + W2, min(W1max, W2max )) , in order to ensure physical feasibility of the pull-out. Since one pull-out job can pull only one track at a time, this limit ensures that the assigned pull-out length can be provided by a single track. The mathematical model does not track individual movement of a car from hump to pull out. These details are derived using output of the (high-level) mathematical model in the (low-level) post processing step. This hierarchical split introduces sub-optimality in the plan generation process, but is necessary because of the large size of the problem instance. The test case provided by INFORMS (2014) accounts for an average throughput of 50 cars per hour, via 58 classification tracks to 16 outbound trains. 3.3. Operational plan generation process The process begins by setting up the start/end times of the rolling window. The computational procedure at each iteration is divided into three parts: preprocessing, optimisation and post-processing. The preprocessing module sets up initial states of the inbound trains, classification tracks and outbound trains as per end state of the previous iteration. The optimisation module generates a high level plan on the basis of the initial state of system, in addition to the objective and constraints described below. The post-processing module maps the optimisation output to specific car-level details such as exact hump times, and selection of the correct classification tracks for pull-out. The horizon keeps rolling forward in steps of τ, until all inbound trains are humped and all classification tracks become empty, i.e., the processing of all incoming cars has been completed. Fig. 6 illustrates the entire procedure of plan generation, which is further elaborated in the following subsections. Sample inputs/outputs are given in Appendix A and the full set of input data is available at https://www.researchgate.net/publication/ 320181413_RAS14_TCS_Solution_Source_Code_and_Data. 3.3.1. Pre-processing At a given iteration θ under rolling horizon framework, let H = [H begin, H end] be the current rolling window, with end H = H begin + H . We define P P to consist of time indices within the window H , P = {p , …, p¯} . The pre-processing steps are as ¯ follows:

Fig. 5. An example of physically separated tracks and their model representation. 6

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Fig. 6. Flowchart of the plan generation process.

1. Get all inbound trains which have arrived at or before time H end and are yet to finish their humping. Let I be set of all such trains. The set Si consists all the segments of train i I which have not processed and have release time rs H end . That is, Si Si , with the equality holding unless the train arrives too late to be humped entirely before H end or is partially humped. Further, S = S . Note that I will also include any partially humped train of previous step, say i¯ . For this partially humped i I train i¯ , only first q¯ < |Si¯ | segments were processed in the previous step. Thus, the segment s ¯q¯ + 1 should get processed first in i

current planning window. 2. Generates list of blocks associated with the current set of available cars, both in segments as well as at the classification bowl. Let B denote this set of blocks, B B. 3. Based on block-to-track allocation at previous step, sets indicator variable 1bk = 1, if the track k K is assigned to block b B at previous step and is still non-empty, else 0. Next, calculate inventories of the blocks at the start of H . The starting inventory of ¯ k is current occupied length of track k. ¯ k , where W block b B , I¯b = k K 1bk W H end) (dtj H begin ) . Let J be set of 4. Identifies outbound trains whose assembly time window Atj overlaps with H , i.e., (dtj ¯ these outbound trains. Further dj , Vj and n¯ j denotes scheduled departure time, current length and standing order of the block corresponding to the last assembled car of the train j J respectively.

3.3.2. Mathematical model The mathematical model in each window H concurrently (i) allocates segments to time periods, (ii) assigns blocks to tracks (iii) decides on pull outs of blocks at each time period, while maximizing a weighted sum of pull out lengths. The decision variables are:

xbk :binary decision variable, 1 if block b B is allocated to track k K , 0 otherwise ysp :binary decision variable, 1 if segment s S is processed at time p P , 0 otherwise z bp :binary decision variable, 1 if block b B is being pulled-out at time p P , 0 otherwise Ibp :end-of-period inventory of block b B at time p P Ubp :pull-out length of block b B at time p P Vjp :length of outbound train j J at time p P As the mathematical model does not specify hump and pull out details of individual cars, it is not possible to include dwell time of cars in the objective function. Note that throughput of a system is defined as output per unit time. For a classification yard, this is stated as (Dirnberger and Barkan, 2007):

Throughput (cars per day) =

Volume (car count) Dwell time (days)

With fixed volume, higher throughput results in a lower value of the dwell time. Therefore, we use maximizing the weighted sum of pull out lengths (throughput) in the objective function (1) as an alternative of minimizing dwell times. The selected weights define a linear function of time with negative slope, i.e., the value of weight decreases linearly as the time progresses. The first term in the objective function rewards pull-outs in the current time period, while the second term penalises the delaying of pull-outs to later time 7

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

periods. However, it is important to ensure that blocks are pulled out in their current standing order (bnj before bnj + 1) regardless of the number of cars available. Failing to pull an earlier block would mean that the relevant cars are stranded for a full 24-h, waiting for the next day's outbound train. Not only does this increase their dwell time, but it also reduces the freedom of assigning those tracks to other outbound blocks. The objective function must therefore be designed such that pulling a track containing a small number of cars of an earlier block (with a consequent delay to pulling later blocks), is more preferable than omitting to pull the earlier block altogether. The most extreme case of this kind is when there is one car of block bnj with the shortest possible length min , while the largest classification track of length W max is completely occupied by cars of block bnj + 1. It must still be preferable to pull the single car before the full track. As a result, we need:

+

min

) W max

(1

Pull single car now

W max

>

Pull full track now, and never pull single car

Pull full track in next period

<

min

W max

The description of the model uses two functions: time(p) and pos(.) . Function time(p) returns associated value of time to index p and pos(.) returns corresponding sequence number/standing order of a segment in an inbound train, a car in an inbound train and a block in an outbound train. The mathematical model is described below: Objective

max

(1 b

p) Ubp

(1)

p

Segment allocation and sequencing

ysp

1

s

S

ysp

1

p

P

(2)

p

(3)

s

ysp = 0

s

S ,

ysp = y s p

p

s, s

p

P : time(p) < rs

Si ,

i

I ,s:s

P , p = p + pos(s )

pysp ¯

ysp

p

ysp

pos(s ) > pos(s ) (5)

s

S ,s

p

ysp ¯

p

s

pos(s )

pysp + (|P | + 1) 1

p

(4)

s

s¯, s¯ = si¯q¯ + 1

S ,s

s¯, s¯ = si¯q¯ + 1

(6) (7)

p

Block to classification track assignment

xbk

1

k

K

(8)

b

xbk 1bk = b

1bk

k

K

(9)

b

N max

xbk

b

B

(10)

k

Inventory balance

Ibp = I¯b +

lbs ysp

¯

Ibp = Ib (p

1)

Ubp

+

b

¯

¯

s

lbs ysp

B

Ubp

b

B ,p

s

xbk Wkmax

Ibp

b

B ,p

(11)

P

{p } ¯

(12)

P

(13)

k

Pull outs

z bp

E max

p

P

(14)

b

z bp

1

p

P ,

j

J

(15)

b Bj

8

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

z bp = 0

j

J ,

p

j,

P : time(p) < dj

z bp = 0

b

Ubp

z bp W max

Ubp

I¯b

Ubp

Ib (p

Ubp

xbk Wkmax

¯

b

Bj,

j J

b

b

time(p) > dj

p

(16)

P

B ,p

(17) (18)

P

(19)

B b

1)

+ (1

B, p xbk

{p } ¯ b

P

) W max

(20)

B ,p

P ,

k

(21)

K

Outbound train construction and block order

Vjp = V¯j +

Ubp

¯

Vjp = Vj (p

1)

j

¯

b Bj

+

J

Ubp

j

(22)

J ,p

P

b Bj

Vjp

V jmax

z bp

1

j b

p, p

J ,p

zb p

{p } ¯

(23) (24)

P

b, b

Bj, b : b

b

pos(b) < pos(b ),

j

J , (25)

P ,p:p
z bp = 0

b

Bj : pos(b) < n¯ j ,

j

J

P ,b

B

b

B ,k

(26)

p

Non-negativity constraint

Ibp, Ubp, Vjp

xbk

{0,1}, ysp

0

j

{0,1}, z bp

J ,p {0,1}

(27)

K,

s

S ,p

P

(28)

Here, constraint 2 ensures that a segment is allocated to at most one time interval. Constraint 3 ensures that at any given time interval only one segment is processed. Constraint 4 restricts the allocation of a segment prior to its release time. Constraint 5 ensures allocation of all the segments of an inbound train at consecutive time periods. Constraint 6 states that the first unprocessed segment of partially humped train should be processed first. It is designed to ensure that the designated first segment to be humped (s¯ ) is actually the first segment of any train that is processed in the current rolling window. The first term on the right hand side is active (non-zero) only if segment s is processed in the current window. In this case, the inequality ensures that s is processed after s¯ . If s is not to be processed at all, the first term is equal to 0, and the second term essentially deactivates the constraint. Constraint 7 allows allocations of other segments if and only if the first unprocessed segment of partially humped train gets allocated. It ensures that if even s¯ is not processed in the current time window, no other segment s is processed either. Constraint 8 restricts allocation of a track to at most one block. Constraint 9 fixes allocation of a track to the previously allocated block if the track is non-empty at the start of H . Constraint 10 sets an upper bound on the maximum number of tracks allocated for a block. We use N max = 5 in our experiments. Constraints 11 and 12 are inventory balancing constraints for the first and rest of the periods, respectively. It states that the endof-period inventory of a block at a given time interval is the sum of the end-of-period inventory of that block at the previous time interval and inflow of inventory of block corresponding to segment allocation at that interval minus outflow of inventory due to pull outs. Constraint 13 places a limit on the maximum inventory of block at any instant as sum of track length of tracks assigned to that block. Constraint 13 only ensures that the total inventory of each block is at most equal to the total length of all tracks allocated to that block. Our post-processing algorithm ensures, on a car-by-car basis, that cars are directed to classification tracks that can accommodate them. Furthermore, in order to ensure against corner cases (where none of the tracks has residual capacity to accommodate a particularly long car), we reduce the effective capacity Wkmax by a length equal to the longest car in our data set. Constraint 14 enforces that the maximum number of pull outs at given time interval should be less than or equal to the number of pull out engines, whereas, constraint 15 allows only one pull out of the blocks assigned to the same outbound train. Constraint 16 does not allow pull outs for blocks of an outbound train outside its assembly time window by setting appropriate values of pull out indicator variable to 0. Similarly, Constraint 17 sets the value of pull out indicator variable to 0 of block for which there does not exist an active outbound train in H . Constraint 18 ensures that pull out length for a block at a time instant is greater than zero only when corresponding binary decision variable of pull out z bp assigned a value of 1. Here, W max is the maximum of track lengths. Constraints 19 and 20 ensure that the maximum pull out length of a block at any given time interval should be less than the end-of-period inventory of that block at the previous time interval. Constraint 21 sets the pull out length of a block to be less than the minimum of track lengths of tracks assigned to that block. 9

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Constraints 22 and 23 state that the increment in length of the outbound train at a given time interval is equal to the pull-out length of the blocks assigned to the said outbound train. Constraint 24 restricts the length of the outbound train to be less than the specified maximum length for the said train. Constraint 25 ensures the standing order of blocks in the outbound train by restricting pull-out event for a given block at a given time interval if there is a pull-out event for the blocks positioned later to the said block at time before the current time interval. Constraint 26 does not allow pull outs for blocks of an outbound train whose standing order are less than the standing order of block corresponding to last assembled car of an outbound train by setting appropriate values of pull out indicator variable to 0. 3.3.3. Post-processing Given the optimisation model outputs; segment allocation, block-to-track assignment and pull out, the post processing step details out individual movement of a car from its humping to departure. The step also specifies hump times of the inbound trains as well as assembly details of the outbound trains. The post-processing step: 1. Create a list of hump and pull out events for each block within the freeze time interval [H begin , H begin + ] using detail of segment allocation and pull outs. As a segment consists of cars of multiple blocks, its allocation results in hump events for each of the constituent blocks. The cars in each segment are humped in their standing sequence in the incoming train. Therefore, the hump time of a specific car is equal to the sum of (i) the time at which its segment commences humping, and (ii) its standing order in the segment divided by the humping rate α. 2. Process events of each block in order of their occurrence: (a) If there is a pull out, i.e., b such that pull out length Ubp > 0 , then first select a track with largest possible available length of inventory (capped by pull-out length) from the set of tracks allocated to b. Next, pull out cars from the selected track one by one (in First-In-First-Out basis) until total length of cars pulled out exceeds Ubp or selected track becomes empty. Assign cars to the outbound train and update details on track, cars and outbound train. (b) If there is a hump event, then first sort tracks assigned to this block in descending order of residual capacity of the track. The cars assigned to this hump event are pushed one by one into the track with the largest residual capacity. While allocating a car, tracks are examined one by one (as ordered earlier) for available space to accommodate this car. The current heuristic can be altered by changing the logic of (i) selection of pull-out track and corresponding pull-out length (ii) order of tracks for assigning humped cars. For example, it may possible to remove the cap on pull-out length at a given time period, i.e., allow pull-out of the largest possible available length of inventory. Further the tracks for assigning humped cars can be selected in order of minimum available residual capacity. These changes will impact solution quality. The current set of rules is selected based on initial experiments with a few alternatives and this can be improved further. 4. Computational results We use data instance provided in 2014 Problem Solving Competition INFORMS (2014) for the experimental study. The dataset has 702 inbound trains (52246 cars, 47 distinct blocks) over a period of 42 days. Table 1 provides a few descriptive statistics of the inbound trains, which indicates diversity in the configuration of inbound trains. Fig. 7 depicts daily profile of arrivals in terms of total car length. The number at the top of each bar represents the count of inbound trains on a given day. There are 16 outbound train services scheduled to depart each day, with a predefined maximum capacity V jmax between 6800 and 9000 feet. One instance of each outbound service departs at a fixed time on each day, carrying a predefined set of outbound blocks. No outbound block departs as a constituent of more than one train (many to one relationship between blocks and trains). The data of the outbound trains contains 3 trains each with 1 & 2 blocks, 6 trains with 3 blocks and 1 train each with 4, 5, 6 & 8 blocks. Three cases of capacity for the classification bowl considered: 42, 50 and 58 tracks respectively. The total lengths of tracks for these three scenarios are 96354, 109853, 122489 feet respectively. The tracks vary in their length Wkmax in the range of 1351–2913 feet. The problem setting defines the time required to pull out any classification track to be 20 min, and the time required to hump each car to 30 s ( = 2 cars per Table 1 Descriptive statistics of inbound trains, with the full set of 702 trains divided in three different ways: train length, number of cars, and number of outbound blocks. Train length

Cars

Distinct blocks

Interval (x100 ft)

# of trains

Interval (number)

# of trains

Interval (number)

# of trains

0–14 14–28 28–42 42–56 56–70 70–84 84–98

67 73 171 195 130 59 7

0–25 25–50 50–75 75–100 100–125 125–150 150–175

68 86 189 211 96 50 2

0–5 5–10 10–15 15–20 20–25 25–30 30–35

62 50 212 265 96 15 2

10

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Table 2 Average dwell times for cars (in hours), compared with results from prior literature. Numbers in parentheses denote execution times (in minutes). The decomposition results are from Haahr and Lusby (2016). The rule-based results are for the simulation framework described in Khadilkar and Sinha (2016), but without allowing for train departure delays. Num. of Tracks

58 50 42

Decomposition

Rule-based

Gap

D

R

100

13.09 h (8.7 m) 13.12 h (8.5 m) 14.27 h (9.5 m)

14.83 h (9.5 m) 14.92 h (10.8 m) 22.09 h (25.3 m)

13.3% 13.7% 54.8%

R

D D

Consolidated

Gap

C

100

14.37 h (4.3 m) 14.47 h (4.6 m) 16.30 h (12.0 m)

9.8% 10.3% 14.2%

C

D D

Table 3 Average dwell time of cars (in hours) and average car length (in feet) at different areas of the hump yard. Areas

Receiving yard Classification bowl Departure yard Total

Average time spent by cars

Average car lengths

58 track

50 track

42 track

58 track

50 track

42 track

1.3 h 10.0 h 3.0 h 14.3 h

1.5 h 9.9 h 3.0 h 14.4 h

3.6 h 9.6 h 3.1 h 16.3 h

3976 ft 29603 ft 9000 ft 42579 ft

4452 ft 29307 ft 9066 ft 42826 ft

10457 ft 28120 ft 9147 ft 47724 ft

Table 4 Distribution of average dwell time (in hours) of inbound trains at the receiving yard, split by the number of distinct blocks in each train. Blocks

Trains

Cars

Average dwell time

(number)

(number)

(average)

58 tracks

50 tracks

42 tracks

0–5 5–10 10–15 15–20 20–25 25–30 30–35

62 50 212 265 96 15 2

8 42.6 66.4 89.3 107.8 126.8 117

3.1 h 1.0 h 0.9 h 0.9 h 1.0 h 1.3 h 3.8 h

3.0 h 1.0 h 1.0 h 1.1 h 1.1 h 1.4 h 3.8 h

4.4 h 1.8 h 2.1 h 2.9 h 4.4 h 7.6 h 20.3 h

Fig. 7. Incoming train and car details. The height of the bars indicates total length of cars, while numbers above each bar denote the number of trains.

minute). The current hump yard setting has E max = 3 pull out engines. The algorithm has been implemented in C++ with IBM® ILOG® CPLEX® Optimisation Studio 12.4 libraries. All the experiments are carried out on a computer with Intel® Core™ i5-2400 3.10 GHz x 4, with 4 GB RAM running on Ubuntu 14.04 LTS. The source code, input data, and sample output data are available at https://www.researchgate.net/publication/320181413_RAS14_TCS_ 11

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Solution_Source_Code_and_Data. First, we compare performance of consolidated optimisation based approach with the decomposition based approach proposed by Haahr and Lusby (2016), and the rule based simulation approach proposed in Khadilkar and Sinha (2016). The simulation algorithm proposed in the latter study has been modified to enforce train departure times (no delays). In the results shown for the consolidated approach, we have chosen H = 3 hours and = 20 minutes. These parameters were chosen to give a good trade-off between computational time and solution quality (average dwell time), after some initial testing. Note that the maximum execution time for an optimisation run is set at 5 min. The results of three scenarios are summarized in Table 2. Haahr and Lusby (2016) also provided an estimate on lower bound of 12.57 h for the average dwell time, assuming that railcars make their earliest departure. For this problem instance, we observe that the performance of the consolidated approach lies between the decomposition approach and the rule-based simulation approach, while the computation times are frequently the lowest of the three. The performance gaps are largest for the most constrained case, with 42 classification tracks. Even though the decomposition method given in Haahr and Lusby (2016) determines hump sequencing independently without considering the details of classification bowl, it can alter block-to-track assignment at short time interval than τ as in the consolidated approach. The decomposition based approach determines pull outs, on a reactive basis, whenever a car fails to get free space at the bowl during humping of an inbound train. This flexibility helps the decomposition based approach to perform better as compared to consolidated approach, especially when the number of classification tracks is less. Additionally, our modelling assumptions such as one logical unit of track in place of parallel track, allocation of segments of an inbound train at consecutive time periods without gap, allocation of one and only one block to a track at a specified time, also affect the optimality of the result. 4.1. Effect of number of classification tracks on hump yard performance Table 2 suggests that the capacity of the classification bowl plays an important role in the overall performance of the hump yard. Here we analyse this aspect in greater detail. Table 3 describes two key performance measures (average dwell time and average car length) computed for each of the three holding areas in the hump yard. Note that these two measures are analogous to waiting time per customer and queue length in a queueing system. We observe that there is a significant increase in the values of these measures at the receiving yard with a decrease in the number of classification tracks. A similar trend can be seen in Fig. 8, which depicts inventory

Fig. 8. Comparison of inventory levels in the 58-, 50- and 42-track cases. 12

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Fig. 9. Dwell time distributions of the rail cars in the 58-, 50- and 42-track cases.

variation over the time periods in each area of the hump yard. Note that the lower portions of the bars (receiving yard inventory) in the 58-track case are significantly smaller than those in the 42-track case. There are no major differences between the 50- and 58track cases. Fig. 9 depicts dwell time distributions of rail cars for each of these instances. Similar to the inventory levels, the dwell times distributions are nearly identical for the 50- and 58-track cases. However, the 42-track case has a longer tail (and hence higher average dwell time). Table 4 shows the distribution of average dwell time of inbound trains in the receiving yard, split by the number of outbound blocks carried by each train. We observe a large value of average dwell time for the trains with either a very low number ( 5) or a very high number ( 25) of blocks. The discrepancy gets further amplified as we reduce the number of classification tracks from 58 to 42. The large dwell time for trains with very few blocks can be explained by the low average number of cars that such trains carry (an average of 8 cars for trains with 5 blocks). As the mathematical model is set to maximize total pull out length, the humping of such short trains is delayed by the optimiser, in favour of longer trains. On the other hand, the delays experienced by the trains at the other end of the table ( 25 blocks) are explained by the capacity constraints of the classification bowl. Since the problem formulation disallows re-humping of trains, a hump is scheduled only when the entire train can be processed in one run. This is feasible only when at least each of the constituent (incoming) blocks of the inbound train get one allocation of classification track. The lack of availability of unallocated classification tracks limits the hump opportunities for trains with many outbound blocks. Fig. 10 shows the average track occupancy distribution for the entire time horizon H . It can be interpreted as the average state seen by the optimiser when scheduling hump operations during each iteration. This state is computed based on the track occupancies, sorted in ascending order, sampled at hourly intervals. We see that in the 58-track case, approximately 12 tracks are unallocated (0% occupied) when the optimisation run starts. Blocks that are not allocated any tracks at the start of the run can be accommodated in empty tracks. By comparison, only approximately 2 tracks are unallocated during iterations of the 42-track case. This leaves the optimiser with fewer options to accommodate new blocks. The effect of this tighter constraint is seen in Table 3. Note that the inventory of cars/trains at the receiving yard (before the hump process) is much larger for the 42-track case. This difference largely accounts for the difference in dwell times seen in the three test cases. The high track occupancy in the 42-track case is demonstrated by Fig. 11, which depicts (with different colours) the block assignment of the first 10 tracks (y-axis) through a period of 10 days (xaxis). The black portions correspond to times when the tracks were empty, while the different colours show occupancy by different

Fig. 10. Comparison of average track occupancy (unordered) in the 58- and 42-track cases. 13

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Fig. 11. Block-to-track allocations for 10 classification tracks over 10 days for the 42-track case. Empty periods are shown in black, while other colours denote assignment to some block. A change in colour signifies a change in the assigned block.

outbound blocks. We note from the negligible proportion of black portions that the tracks are occupied nearly all of the time. The retention period of a given block can vary from a few hours to several days, depending on the rate of incoming cars for that block, and on the capacity of the relevant outbound trains. 4.2. What-if analysis Variations in the modelling assumptions help us to understand the characteristics of the proposed solution, as well as the dynamics (such as bottlenecks) in the problem instance that we have addressed. In this section, we describe a what-if analysis of the model, performed through (i) relaxation of operational constraints, and (ii) changes in values of operational/optimisation parameters. Detailed results are presented in Table 5, and a summary of the various case studies (marked as CS) is as follows. Note that these results depend on heuristics (in rolling horizon and post processing) as well as optimisation setting (time -out). CS1 Changing the inter-arrival times of inbound trains: The original problem instance shows peaks and troughs in the arrival patterns for incoming trains, as shown in Fig. 7. Intuitively, one would expect operations to be more efficient if the arrivals were uniformly distributed over the planning horizon. We see from the first entry in Table 5 that for uniformly distributed arrivals (constant time gap of 90 min), the dwell times are lower than their respective values from Table 2. At the other extreme, the dwell times for batch arrivals (all trains for a given day arriving together at midnight) are significantly higher than the baseline values. CS2 Relaxing outbound block standing order constraint: This case study allows outbound trains to be constructed in a similar way as inbound trains, without enforcing block standing order. However, the outbound blocks are still directed to their correct outbound trains. Classification tracks are allowed to hold cars in any order, as long as they belong to the same outbound train. As expected, this assumption greatly improves the capacity utilisation of classification tracks, resulting in lower dwell times. This type of operational practice seems reasonable where the movements of trains are between yards only. CS3 More tracks with smaller individual capacities: In Fig. 10, we observe that only approximately 2 tracks are unallocated for many of the optimisation iterations in the 42-track case. However, the allocated tracks are not efficiently utilised - many of them are largely empty. Therefore, we did a case study where we select the 8 longest tracks from the set of 42, and divide each of the selected tracks into two. Each piece has half the length capacity of the original track. Thus, the changed configuration has 50 tracks. The subsequent optimisation run results in a significant improvement in average dwell time. CS4 Varying the number of pull-out engines: The rate of outbound train assembly is driven by the availability of pull-out engines. As expected, an increase in the number of pull-out engines from 1 onwards, initially improves dwell times. This is especially apparent for the most constrained configuration of 42 tracks. However, the improvement is not consistent beyond 3 pull-out engines. The most likely explanation for this feature is the fact that trains still need to be built within the window of = 4 hours, and one outbound train Table 5 Average dwell times for cars under different operational setting. Scenario CS1 Varying inter-arrival times CS2 Relaxing block standing order CS3 More tracks with smaller lengths CS4 Number of pull-out engines

58 tracks

50 tracks

42 tracks

Uniform Batch

14.08 h 18.29 h 13.64 h

14.07 h 18.36 h 13.64 h

1 2 3 4

17.97 h 14.54 h 14.37 h 14.35 h

17.64 h 14.71 h 14.47 h 14.41 h

15.26 h 19.66 h 13.64 h 14.64 h 26.33 h 16.69 h 16.30 h 15.99 h

14

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

can have at most 1 pull-out in a 20-min period. Therefore, increasing the number of pull-out engines in isolation does not increase the number of actual pull-outs. 5. Conclusions Optimal solutions to the three-stage processing problem such as the hump yard system are difficult to compute. Our survey showed that the traditional approach is to decompose the problem into constituent stages, solve the stages independently (possibly with heuristics), and combine to produce the final solution. By contrast, the approach described in this paper chose to maintain the integrity of the physical system (hump yard). The difficulty of the resulting optimisation formulation was reduced by, (i) introducing a rolling horizon for the solution, (ii) defining discrete decision instants, and (iii) a judicious combination of discrete resources (railcars, classification tracks) into larger and fewer objects (segments, total available block length). We showed that the resulting solution on one problem instance had similar performance to the ones proposed in prior literature. Additionally, it would have the advantage of generic applicability (without bespoke rule building) for other related instances. We believe that our approach represents a viable state-aggregation alternative to traditional decomposition based optimisation methods. In the future, we aim to reduce the optimality gap introduced by the modelling assumptions made in this paper, using finer parameter tuning and/or by relaxing the simplified but restrictive constraints used in this work. Acknowledgements This study was contributed to the RAS Problem Solving Competition 2014 held by INFORMS Railway Application Section. The authors thank the RAS organizing committee for their problem design and organization. Appendix A. Input and output The hump yard planning problem requires inputs on (i) inbound trains' arrival schedule and their configuration (ii) outbound trains' schedule and their configuration (iii) hump yard infrastructure detail and (iv) operational parameters. The key output includes (i) hump schedule (ii) block-to-track assignment, and (iii) pull-out schedule. The 2014 Problem Solving Competition (INFORMS, 2014) had a prescribed format for inputs and outputs of the hump yard planning problem, outlined in the tables below. The full data sets, the description, and the problem statement are also available at https://www.informs.org/Community/RAS/Problem-SolvingCompetition/2014-RAS-Problem-Solving-Competition. In addition, we have uploaded the full source code and results at https:// www.researchgate.net/publication/320181413_RAS14_TCS_Solution_Source_Code_and_Data. Table A.6 Input: Input trains data.csv. Train name

Arrival time

Train36_219 Train39_238 Train29_425

219 238 425

Table A.7 Input: Cars data.csv. Car id

Inbound train name

Seq. no.

Car length

Outbound block

1 2 3

Train37_1729 Train37_1729 Train37_1729

1 2 3

58 60 60

FLL SEA IND

Table A.8 Input: Outbound train schedule.csv. Train name

Scheduled departure time

Length capacity

Train02 Train09 Train10

900 630 510

7500 7200 7500

15

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Table A.9 Input: Outbound train configuration.csv. Train name

Block name

Standing order

Train02 Train02 Train02

RSW SEA SAN

1 2 3

Table A.10 Input: Classification track data.csv. Track name

Available length (ft)

C15 C17 C18

1416 1351 1437

Table A.11 Input: Parameters.csv. Parameter

Value

Number of hump jobs Number of pullout jobs Time between train humping Humping rate Pullout time per track Start build time offset

2 3 20 min 2 cars per minute 20 min 4h

Table A.12 Output: Train humping.csv. Train Name

Humping start time

Humping end time

Number of stops

Total stop time

Train36_219 Train39_238 Train29_425

280 260 460

315 274 492

0 0 0

0 0 0

Table A.13 Output: Block-to-track assignment.csv. Line no.

Block name

Track name

Start time

Pullout time

Pullout length

Outbound train day

Pullout job id

1 2 3

DTW MSP SAT

C31 C46 C69

265 266 294

280 280 300

65 390 124

1 1 1

1 2 3

16

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Table A.14 Output: Railcar itinerary.csv. Car id

Hump time

Line id

Car dwell time

Outbound train name

Departure day

1 2 3

1760 2120 1761

123 105 127

1001 611 1121

Train18 Train02 Train14

2 2 2

Appendix B. Glossary of terms and notations Table B.15 Glossary of terms. Terms

Description

Assembly time window Arrival Block (Outbound block) Block-to-track assignment Car Car sequence number Classification bowl (tracks)

Time between start of build time offset (see below) and train departure.

The time at which an inbound train arrives at the hump yard. A set of cars that has been purposefully sequenced together in a departing train because they share a common attribute (such as destination). The selection of specific classification tracks for holding cars of specific outbound blocks. In the optimisation framework defined in this paper, the block-to-track assignment is a one-to-many map. A railway carriage, the smallest unit of rolling stock in this work. The position of a car in an inbound/outbound train, computed starting from the locomotive. Classification tracks are a set of parallel tracks used for sorting cars from inbound trains, into the correct order for assembling an outbound train. The area where these tracks are located is called the classification bowl. Departure The time at which an outbound train departs from the system, carrying a set of cars computed by the optimisation algorithm. Departure yard The area that contains parallel tracks for assembling outbound trains. Hump Literally, a hump or rise between the receiving yard and the classification bowl. Inbound trains are carried to the top of the hump, individual cars are disengaged and are allowed to roll down under gravity into the classification bowl. Hump engine An engine (locomotive) which carries an inbound train from the receiving yard to the top of the hump in the yard. Humping process The process of moving all cars in a given inbound train into the correct tracks in the classification bowl. Humping rate The number of cars that can roll down under gravity from the top of the hump into the classification bowl, in one unit of time. Inbound train A train which arrives in the receiving yard, with a predefined set of cars for sorting and onward journeys. Line A set of consecutive cars standing in the same classification track, in such a way that they can be pulled out simultaneously by one engine. Outbound train A train which carries cars which have been sorted and ordered in the classification bowl, onwards to their destinations. Pull-out The process of moving cars from the classification bowl to the departure yard. Pull out engine An engine (locomotive) which pulls cars from the classification bowl to the departure yard. Pull-out length The total length of cars that are simultaneously pulled by a pull-out engine in one discrete job. Pull-out time per The time required for a pull-out engine to engage a line of cars in a classification track, carry them to their track correct position in the outbound train, disengage, and clear the departure yard. Receiving yard A set of parallel tracks on which inbound trains can park upon arrival and await humping. Segment A set of consecutive cars in an inbound train, which can be humped in one discrete time interval as defined by the optimisation algorithm. Standing order The order in which cars or blocks of cars are placed, either in inbound/bound trains or on a classification track. Start build time offset The time window before departure of an outbound train, which is available for assembling its constituent cars in the departure yard.

17

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Table B.16 Notations.

1bk ai α bim bnj

Bj B β cim Ci dj

dtj

δ E max γ H H

H begin H end H i¯ I¯b Ibp I I J Jt

J K q i, b m i

min

N max n¯ j otj

P P p ¯ p¯ rs siq Si

Si

Ubp Vjp V jmax V¯ j

Wkmax W max

indicator variable, 1 if the track k is assigned to block b at previous step and is still non-empty, else 0. arrival time of the inbound train i humping rate outbound block of the car cim specified standing order n in the train service j

set of constituent blocks in the outbound train j list of blocks associated with the current set of available cars iteration θ, both in segments as well as at the classification bowl. unit pull-out time car at position m in the inbound train i set of rail cars in the inbound train i departure time of the outbound train j departure time of the train service j on day t

build time offset number of pull-out engines weight in the optimisation objective function, guarding against stranding of cars in lightly filled classification tracks rolling horizon length rolling window at iteration θ start of the rolling window H end of the rolling window H

planning horizon partially humped train inventory of block b at the start of H end-of-period inventory of block b at time p set of all inbound trains set set set set

of of of of

inbound trains arrived on or before H end and yet to finish processing outbound trains trains departing on day t the outbound trains whose assembly time window overlaps with H

set of classification tracks total length of all cars in siq with outbound block b

length (in feet) of car cim length of the shortest car in the data set an upper bound on the maximum number of tracks allocated for a block standing order of the block corresponding to the last assembled car of the train j instance of train service j J on day t set of time intervals set of (ordered) time indexes in the horizon H first index in P last index in P release time of a segment s qth segment of the inbound train i set of segments of inbound train i

set of all the unprocessed segments of train i I with release time rs rolling horizon step length iteration number under rolling horizon framework pull-out length of block b at time p length of outbound train j at time p maximum length capacity of the outbound train j

H end .

current length of the outbound train

track length of track k length of the longest classification track

(continued on next page) 18

Journal of Rail Transport Planning & Management xxx (xxxx) xxx–xxx

S. Raut et al.

Table B.16 (continued)

¯k W xbk ysp z bp

current occupied length of track k binary decision variable, 1 if block b is allocated to track k, 0 otherwise binary decision variable, 1 if s is processed at time p, 0 otherwise

binary decision variable, 1 if b is being pulled-out at time p, 0 otherwise

References Ahuja, R.K., Cunha, C.B., Şahin, G., 2005. Network Models in Railroad Planning and Scheduling. INFORMS. Chapter 3. pp. 54–101. Bohlin, M., Dahms, F., Flier, H., Gestrelius, S., 2012. Optimal freight train classification using column generation. In: Workshop on Algorithmic Approaches for Transportation Modelling, Optimization, and Systems, Ljubljana, Slovenia. Bohlin, M., Flier, H., Maue, J., Matúš, M., 2011a. Hump yard track allocation with temporary car storage. In: International Seminar on Railway Operations Modelling and Analysis, Rome, Italy. Bohlin, M., Flier, H., Maue, J., Mihalák, M., 2011b. Track allocation in freight-train classification with mixed tracks. In: Workshop on Algorithmic Approaches for Transportation Modelling, Optimization and Systems, Saarbrucken, Germany. Bohlin, M., Gestrelius, S., Dahms, F., Mihalák, M., Flier, H., 2015. Optimization methods for multistage freight train formation. Transport. Sci. 50, 823–840. Boysen, N., Fliedner, M., Jaehn, F., Pesch, E., 2012. Shunting yard operations: theoretical aspects and applications. Eur. J. Oper. Res. 220, 1–14. Dick, C.T., Dirnberger, J.R., 2014. Advancing the science of yard design and operations with the csx hump yard simulation system. In: Joint Rail Conference. Colorado Springs, USA. Dirnberger, J.R., Barkan, C.P., 2007. Lean railroading for improving railroad classification terminal performance: bottleneck management methods. Transport. Res. Rec.: J. Transport. Res. Board 52–61 1995. Haahr, J.T., Lusby, R.M., 2016. A matheuristic approach to integrate humping and pullout sequencing operations at railroad hump yards. Networks 67, 126–138. He, S., Song, R., Chaudhry, S.S., 2000. Fuzzy dispatching model and genetic algorithms for railyards operations. Eur. J. Oper. Res. 124, 307–331. He, S., Song, R., Chaudhry, S.S., 2003. An integrated dispatching model for rail yards operations. Comput. Oper. Res. 30, 939–966. INFORMS, 2014. Ras problem statement- railroad hump yard block-to-track assignment. https://www.informs.org/Community/RAS/Problem-Solving-Competition/ 2014-RAS-Problem-Solving-Competition, Accessed date: 30 September 2014. Khadilkar, H., Sinha, S.K., 2016. Rule-based discrete event simulation for optimising railway hump yard operations. In: IEEE International Conference on Industrial Engineering and Engineering Management, Bali, Indonesia. Kraft, E.R., 2000. A hump sequencing algorithm for real time management of train connection reliability. J. Transport. Res. Forum 30, 95–115. Kraft, E.R., 2002a. Priority-based classification for improving connection reliability in railroad yardspart i: integration with car scheduling. J. Transport. Res. Forum 56, 93–105. Kraft, E.R., 2002b. Priority-based classification for improving connection reliability in railroad yardspart ii: dynamic block to track assignment. J. Transport. Res. Forum 56, 107–119. Li, H., Jin, M., Song, R., He, S., Song, J., 2016. Dynamic railcar connection planning in classification yards. Transport. Lett. Int. J. Transport Res. 8, 77–89. Lin, E., Cheng, C., 2009. YardSim: a rail yard simulation framework and its implementation in a major railroad in the US. In: Rossetti, M.D., Hill, R.R., Johansson, B., Dunkin, A., Ingalls, R.G. (Eds.), Winter Simulation Conference, Piscataway, USA, pp. 2532–2541. Patty, B.W. (Ed.), 2015. Handbook of Operations Research Applications at Railroads, vol. 222 Springer, New York. Şahin, G., Ahuja, R.K., 2011. Single-machine scheduling with stepwise tardiness costs and release times. J. Ind. Manag. Optim. 7, 825–848. Sethi, S., Sorger, G., 1991. A theory of rolling horizon decision making. Ann. Oper. Res. 29, 387–415. Shi, T., Zhou, X., 2015. A mixed integer programming model for optimizing multi-level operations process in railroad yards. Transp. Res. Part B Methodol. 80, 19–39. US Department of Transportation: Federal Railroad Administration, 2010. National Rail Plan Progress Report. US Department of Transportation: Federal Railroad Administration, 2012. Freight Railroad Background. Yagar, S., Saccomanno, F.F., Shi, Q., 1983. An efficient sequencing model for humping in a rail yard. Transport. Res. Gen. 17, 251–262.

19